【git】3.2git分支-分支的新建与合并
资料来源
场景
(1) 由master分支切换到新创建分支branch1,并在branch1上做过修改并提交;
(2) 需要对项目打些补丁,但这些改动不需要和branch1的问题混在一起处理;
注1:这种情况下,需要从branch1切换到master,然后新建一个分支branch2,做对项目打补丁的工作;
1.分支创建与切换-git checkout -b 分支名
(1) git checkout -b branch1
(2) git checkout master
注1:在从branch1切换到master之前,需要保证branch1上所做的修改都已经提交;
(3) git checkout -b branch2
2.分支合并-git merge
(1) 当branch2的改动完成后,可以切换到master分支,并执行合并操作,即git checkout master, git merge branch2;
(2) 将分支branch2合并到master分支后,可以删掉branch2,即执行git branch -d branch2;
(3) 接着,可以切换到branch1,继续分支branch1的工作,即执行git checkout branch1;
注1:此时,branch2分支上所做的工作并没有包含到branch1分支中那个,可以使用git merge master命令将master分支合并入branch1分支,也可以等branch1分支完成后,将branch1合并到master分支;
(4) branch1分支工作完成后,提交,然后切换到master分支,即执行git checkout master;
(5) 将branch1分支上的改动合并到master分支,即git merge branch1;
注1:步骤(5)中,master分支所在提交并不是branch1分支所在提交的直接祖先,这种情况下,git会做一个简单的三方合并,其中的三方为当前master分支所在提交, 当前branch1分支所在提交以及master与branch1分支的共同祖先;
(6) 将branch1分支合并到master分支后,可以删掉branch1,即git branch -d branch1;
3.遇到冲突时的分支合并
注1:如果在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,git不能干净的合并它们;
注2: 在存在合并冲突的情况下,可以使用git status查看那些因包含合并冲突而处于未合并状态(unmerged)的文件;
注3: git会在有冲突的文件中加入标准的冲突解决标记"<<<<"与">>>>",可以打开这些包含冲突的文件,手动解决冲突;
(1) 手动解决冲突;
(2) 对解决掉冲突的文件执行git add操作;
(3) 执行git status确认所有的合并冲突都已经被解决;
(4) 执行git commit操作完成合并并提交;