Git入门笔记(三)

分支管理

分支管理是Git中非常重要的管理,使用分支可以使你在开发主线中分离出来,在不影响开发主线的情况下继续工作,例如开发测试版、测试功能之类的。接下来介绍几个基础操作。

创建分支

现在我们需要创建一个叫test的分支,并切换至分支:

1
git checkout -b test

实际上这是两条命令的简写:

1
2
git branch test
git checkout test

第一条命令,代表创建一个test分支;

第二个命令,代表切换到test分支。

查看所有分支

我们使用不带任何参数的git branch命令即可查看所有分支,并且该命令会将当前分支用*号标注出来。

image-20220426203906050

删除分支

1
git branch -d test

这样我们就删除了test分支了。如果test分支包含我们未合并到分支的更改,它会报出错误:

1
2
error: The branch 'test' is not fully merged.
If you are sure you want to delete it, run 'git branch -D test'.

此时,我们如果的的确确不想要这些更改了,我们就按照错误信息中的操作,使用-D强制将它删除即可:

1
git branch -D test

分支合并

分支出来的往往是测试的分支,我们需要将他合并会主分区。

首先,我们切换会主分支:

1
git checkout main

接着我们使用合并指令:

1
git merge test

合并完成后我们就可以删除分支了:

1
git branch -d test

合并冲突

合并分支肯定会出现两边在同一处地方不同修改的问题,这时,我们就需要去解决冲突。

我们现在在分支下修改一个文件,然后我再在主分支下修改同一文件,使得分支与主分支的文件不同。

当我们运行合并分支指令git merge test,它会报出错误:

1
2
3
Auto-merging git.md
CONFLICT (content): Merge conflict in git.md
Automatic merge failed; fix conflicts and then commit the result.

git.md自动合并失败了,我们需要去手动解决合并错误。这时,我们通过任何一种文本的方式打开我们冲突的文件git.md,Git会将冲突的地方帮我我们标注出来:

1
2
3
4
5
<<<<<<< HEAD
First.Third.
=======
First.Second.
>>>>>>> test

<<<<<<< HEAD表示当前分支;

=======是分割线;

>>>>>>> test表示Test分支。

接下来,我们根据实际情况,保留我们需要的部分,将文件进行修改,这里我们演示将两个部分合并:

1
2
First.Third.
First.Second.

解决冲突内容后,我们使用提交到本地库的操作,将修改后的文件提交:

1
2
git add .\git.md
git commit -m '主干分支冲突解决'

这时,我们就解决了合并冲突了。最后我们可以将不需要的分支删除:

1
git branch -d test

我们的本地分支合并工作就完成了。