你想知道的所有Git分支命令都在这

git branch 分支名
复制代码

通过git branch 命令就可以快速创建一个本地分支,这个分支会基于当前提交对象创建一个指针。而这个命令只会创建一个分支,并不会自动切换到新分支中,本例中我们是处于master分支中。

image-20211103211153983

HEAD相当于一个标识,用来指向当前所在的分支

分支切换

要想切换分支,就需要使用gIt checkout命令

//切换分支
% git checkout testing
​
//查看分支
% git branch -a
  master
* testing
复制代码

此时HEAD就指向testing分支了

image-20211103211752154

当我们针对master分支和testing分支分别做修改,看看分支份分叉会变成什么样

image-20211103215019877

可以看到两个分支从一开始的位置走上了不同的道路

合并分支

假如testing分支是你同事的分支,现在需要合到master分支然后push到远程分支,那就需要使用merge命令进行合并

% git merge testing  
复制代码

此命令会将testing分支合并到当前分支中,我目前的分支是master,合并后两个分支的代码就到一起了,后续就可以基于master进行push或者继续提交代码。

合并后如果你不想要testing分支,可以将该分支进行删除

删除分支

git branch -d testing
复制代码

分支冲突时如何合并

假如你有两个分支都对同一个文件进行了修改,当你将其中一个分支合并到另一个分支就会出现冲突

 % git merge testing
Auto-merging test.md
CONFLICT (content): Merge conflict in test.md
复制代码

因为testing分支和master分支都对test.md文件做了修改,当将testing分支合并到master分支时就会出现冲突

任何因包含合并冲突而有待解决的文件,都会以未合并状态标识出来。 Git 会在有冲突的文件中加入标准的冲突解决标记,这样你可以打开这些包含冲突的文件然后手动解决冲突。 出现冲突的文件会包含一些特殊区段,看起来像下面这个样子:

sssssTEST
<<<<<<< HEAD
ssss
ssssssssasasa
=======
​
sss
ssssss
>>>>>>> testing
​
复制代码

这表示 HEAD 所指示的版本(也就是你的 master 分支所在的位置,因为你在运行 merge 命令的时候已经检出到了这个分支)在这个区段的上半部分(======= 的上半部分),而 testing 分支所指示的版本在 ======= 的下半部分。 为了解决冲突,你必须选择使用由 ======= 分割的两部分中的一个,或者你也可以自行合并这些内容。 例如,你可以通过把这段内容换成下面的样子来解决冲突:

sssssTEST
ssss
ssssssssasasa
ssssss
复制代码

在你解决了所有文件里的冲突之后,对每个文件使用 git add 命令来将其标记为冲突已解决。 一旦暂存这些原本有冲突的文件,Git 就会将它们标记为冲突已解决。

分支的管理

查看所有分支

 % git branch
* master
  test
​
复制代码

会显示出所有分支,*号代表现在检出的那一个分支(也就是说,当前 HEAD 指针所指向的分支)。

查看每一个分支最后提交

% git branch -v
* master bc5b518 [ahead 5] sss
  test   1be830c ss
复制代码
查看所有本地分支对应跟踪的远程分支
 % git branch -vv             
  master d230c50 [origin/master: ahead 6] ss
* test   1be830c ss
复制代码

此时可以看到,master对应的远程分支是origin/master,test还没有和远程分支建立关联

设置已有的本地分支跟踪一个远程分支

% git branch -u origin/master
​
% git branch -vv             
  master d230c50 [origin/master: ahead 6] ss
* test   1be830c [origin/master] ss
​
复制代码

该命令会将当前所使用的本地分支与一个远程分支建立映射关系,当然此命令也可以作为修改对应的远程分支

删除远程分支

% git push origin --delete 远程分支名
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员蛋蛋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值