git pull拉回操作中的合并
在前面一个博客,我们将到了非快进式推送的非强制性的另一种解决办法,那就是先拉回在提交,这里的拉回其实包含了两个操作:获取远程仓库的数据,将本地数据进行合并。可以这样写:git pull = git fetch + git merge
git merge命令用于合并分支,它的命令行格式为:git merge [options...] <commit>...大多数情况下的合并我们只需要提供一个commit分支就可以了,默认将指定分支合并到当前分支中。合并后的提交以当前分支的提交作为第一个父提交,以为第二个父提交,合并操作也支持多个与当前工作分支进行合并
默认情况下,合并后的结果会自动提交,我们可以通过设置选项来指定手动提交,通过命令:git merge --no-commit <commit>...模式可以指定合并先将结果放入暂存区,让用户手动对合并结果进行检查、更改,然后手动提交
合并操作并非总会成功,下面将详细介绍
合并一:自动合并
这一类合并不会报错,不需要用户来处理相应的错误,主要分为三种
修改不同的文件
如果两个(或者多个,这里只介绍两个)用户user1/user2各自的本地提交中修改的是不同的文件,那么第二次进行合并推送的提交将能正确合并并提交,不会遇到任何麻烦
修改相同文件的不同区域
首先需要说明的是,文件的修改是分区域的,可以具体到修改哪一行,通过命令cat > fileName.suffix进行逐行修改
当user1用户修改了index.txt文件的第一行第二行并进行提交与上游推送,然后user2用户同样修改