新成员如何新建自己的分支(创建一个本地分支)
git branch 分支名
复制代码
通过git branch 命令就可以快速创建一个本地分支,这个分支会基于当前提交对象创建一个指针。而这个命令只会创建一个分支,并不会自动切换到新分支中,本例中我们是处于master分支中。
HEAD相当于一个标识,用来指向当前所在的分支
分支切换要想切换分支,就需要使用gIt checkout命令
//切换分支
% git checkout testing
//查看分支
% git branch -a
master
* testing
复制代码
此时HEAD就指向testing分支了
当我们针对master分支和testing分支分别做修改,看看分支份分叉会变成什么样
可以看到两个分支从一开始的位置走上了不同的道路
合并分支假如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 远程分支名
复制代码
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com