Git快速入门

一.Git安装及环境配置

下载Git https://git-scm.com/,全部默认配置即可
右键Git Bash Here 配置名字和邮箱

git config --global user.name "xx"
git config --global user.email "xx@qq.com"

用 git config --global --list查看
在这里插入图片描述

二.Git基本命令

在这里插入图片描述

示例

  • 在一个文件打开Git Bash,输入git init初始化仓库,在该文件会出现一个隐藏文件.git

在这里插入图片描述

  • 创建一个txt文件,使用git status查看状态,可以看到文件处于Untracked的状态(因为是新建的文件)
    在这里插入图片描述
  • 使用git add .将文件提交到暂存区,. 代表所有文件,当然也可以指定文件名提交。可以看到文件的状态变成了No commits yet的状态

在这里插入图片描述
使用 git commit -m "first commit"提交到本地仓库, - m “xxx”指的是本次提交添加的备注信息
在这里插入图片描述
以上就把文件提交到了本地仓库

可以通过git log查看提交日志
在这里插入图片描述
修改hello.txt文件,在文件添加hello
在这里插入图片描述
再一次查看状态
在这里插入图片描述
git add .提交到暂存区
在这里插入图片描述
git commit -m "second time"提交到本地仓库

git log查看日志,可以看到两次提交记录
在这里插入图片描述

版本回退

git reset --hard commitID ,commitID可以通过git log查看,我们回退到第一次提交的版本
在这里插入图片描述
可以看到hello已经没有了
在这里插入图片描述
但是版本回退以后又想回去怎么办?使用git reflog查看所有的日志,找到第二次提交的日志

在这里插入图片描述
使用git reset --hard 310dc1b即可回去
在这里插入图片描述
可以看到hello又存在了
在这里插入图片描述

三.分支

查看当前分支:git branch
在这里插入图片描述
创建新的分支:git branch name
在这里插入图片描述
切换分支:git checkout name
在这里插入图片描述
创建并切换分支:git checkout -b name

在新的分支上创建一个hi.txt,此时只有dev01分支有此文件
在这里插入图片描述
合并分支::git merge name,我们一般在master分支上合并其他分支
在这里插入图片描述
删除分支(删除分支时要切换到其他分支):
git branch -d name 删除分支时,需要做各种检查,比如修改的数据是否合并到了主分支
git branch -D name 不做任何检查,强制删除
在这里插入图片描述

分支冲突

主分支的hello文件
在这里插入图片描述
新建分支dev git branch dev

切换到dev分支 git checkout dev,并修改hello.txt
在这里插入图片描述
提交到本地仓库,此时master的hello.txt中依旧是hello master,但是dev分支中的hello.txt中为hello dev
在这里插入图片描述
切换回master,修改hello.txt
在这里插入图片描述
提交到本地仓库
在这里插入图片描述

此时master分支、dev分支都对hello.txt文件进行了修改

我们尝试合并,可以发现有冲突提示
在这里插入图片描述
查看hello.txt
在这里插入图片描述
需要我们手动解决冲突,选择我们想要的数据后,再提交到本地仓库即可

四.推送到Github远程仓库

首先设置Github的SSH Key
https://blog.csdn.net/u013778905/article/details/83501204

添加远程仓库:

git remote add <远端名称> <仓库路径>

远端名称,默认是origin,取决于远端服务器设置

仓库路径,从远端服务器获取此URL
在这里插入图片描述

在这里插入图片描述
查看远程仓库:git remote
在这里插入图片描述
推送到远程仓库:
git push [-f] [--set-upstream] 远端名称 本地分支名:远端分支名

如果远程分支名和本地分支名称相同,则可以只写本地分支
git push origin master

-f 表示强制覆盖
–set-upstream 推送到远端的同时并且建立起和远端分支的关联关系

git push --set-upstream origin master
如果当前分支已经和远端分支关联,则可以省略分支名和远端名
git push 将master分支推送到已关联的远端分支

克隆: git clone <仓库路径> [本地目录]
在这里插入图片描述
抓取:git fetch [remote name] [branch name]
抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
如果不指定远端名称和分支名,则抓取所有分支

拉取 :git pull [remote name] [branch name]
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
如果不指定远端名称和分支名,则抓取所有并更新当前分支

分支冲突
在一段时间,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时B用户晚于A用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jumanji_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值