Git冲突处理测试

   手动制造冲突并使用Git进行处理。

  练习:

  首先创建一个测试文件 readme.txt

  

  存入一些测试数据

  

  查看此时仓库状态

  

  将测试文件加到暂存区

  

  提交并推送到远程

  

  将测试文件同步到测试分支

  

  修改测试文件

  

  对比文件

  

  将修改后的文件提交到远程仓库

  

  在网页上进行合并,将分支合并到master分支上

  切换到master分支

  对测试文件进行修改

  

  添加修改提交并推送到远程

  

  出现冲突,不能推送到远程,远程仓库的版本比本地的新,需要先将远程的修改同步到本地

  在将其推送到远程。

  建议向远程仓库推送之前先pull一下,看远程仓库是否有更新,然后在进行push操作

  将远程仓库的代码pull到本地,提示冲突

  

  对比冲突文件

  

  Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<<HEAD是指主分支修改的内容,

  >>>>>分支 是指分支上修改的内容,手动处理冲突:一般将标记去掉,其余保留。

  处理之后添加到暂存区提交

  

  

  在将其推送到远程仓库,对比前后右上角master的标志,发现MERFING自动消失

  

  冲突处理完成。

我们大部分时候都是创建自己的分支在自己的分支上面进行开发,推送到远程与主分支进行合并的,

  如果遇到冲突,如果是一个文件有冲突,可以在远程网页上进行冲突的处理然后进行合并。

  但是如果冲突的文件大于一个在远程就无法解决冲突,需要在本地进行解决。

采用git 命令进行冲突处理

# 取远程仓库中的代码
git fetch origin
# 在本地创建一个分支,和远程主机上的冲突分支建立连接,并切换到这个分支
# Branch 'ceshi' set up to track remote branch 'leilong' from 'origin'.                
git checkout -b ceshi origin/leilong
#在当前分支上合并master(需要保证本地master与远程仓库的master上是同步的)
git merge master
如果发生冲突,需要手动解决。    
冲突的文件在开发工具中会标红提示,需要手动的解决这些冲突。可以采用上面的方法进行处理
手动解决冲突后重新添加文件索引。
再次进行commit提交。会发现分支旁边的 merging消失。

Step 2: Merge the changes and update on GitHub.
# 切换回master分支,将新创建的分支合并到master上推送到远程,冲突解决
git checkout master
git merge --no-ff ceshi  (分支名)
git push origin master
原文地址:https://www.cnblogs.com/leilong/p/8611958.html