1.环境准备:
首先创建一个仓库:
git init
git clone + 仓库地址
至此可以看见初始化之后的环境如下:
2.创建分支
git checkout -b user1
3.在不同的分支下更改同一文件内容
- 在分支user1下,对README.md进行修改。 然后将README.m进行提交。
- 在分支master下,对README.md进行修改。 然后将README.m进行提交。
- 进行merge合并,并修改冲突文件
- 正常提交
必须在进行commit提交之后才能够进行合并,且可能会出现如下情况:
在主分支的基础上,新建了其他分支,进行修改,改完之后,切回主分支,发现主分支的内容也被修改,反复切换分支,发现分支确实切换了,但是内容显示的确实新建分支的内容,难道主分支也同步被修改了?
答案是:没有修改,原因是我们在新建的分支上做了修改之后没有做提交版本,现在只需要切换到新建的分支,对当前的修改做一次提交,问题就解决了!
完整命令如下:
vim README.md
git add README.md
git commit -m "add information in user1"
git checkout master
vim README.md
git add README.md
git commit -m "add information in user1"
git status
此时可以看到merge冲突,即两个分支在同一个文件中进行了修改,git不知道保存哪些内容,需要我们进行手动更改保存。
打开READMA.md,进行修改,如下图所示:
git 以
========
为分割,上面是master进行修改的内容(HEAD是当前指针),下面是user1分支修改的内容,手动进行修改,得到想要的内容进行提交。我们需要保存两个分支的内容,则只保留2、4行,正常add 、 commit 、 push git 即可。
更新分支代码:
git checkout master
git push -u origin user1 # 更新到分支
git checkout user1
git merge master
查看README.md可以看到两个分支的文件内容是一致的了。
4. 合并分支不同文件
在master分支和user1分支下分别建立一个新的文件,然后进行以下命令。
git branch
vim user1.c
git add user1.c
git commit -m "add user1.c in user1"
git checkout master
ls
vim master.c
git add master.c
git commit -m "add master.c in master"
git merge user1
ls
git checkout user1
ls
git merge master
git push origin master
ls
可以看到,两个分支下的文件一致了。
注:本文仅在初始的仓库中进行测试,仓库已有代码,需要进行对应的push 和 pull操作。
版权归原作者 果果冻冻 所有, 如有侵权,请联系我们删除。