git冲突的产生:
首先用户A新建一个文件conflict,并在里面添加内容
然后通过add,commit,push将该文件上传到远端仓库
然后用户B通过pull将程序拉下来之后,也在这个文档里面进行编辑,并且内容不一样
如果这个时候其中一个人push,第二个人就会产生冲突
这里假设B先push,然后A再push
就会产生这样的一个错误
大概的意思是远端仓库有你没有的内容,也就是用户A的push,用户B并没有进行更新,并且也对同一个文件进行了修改,产生了冲突,通过git pull后git会自动为冲突的文件添加一定的标志信息
<<<<<<<HEAD
内容1
=======
内容2
>>>>>>[commit_id]
其中内容1为当前用户产生冲突的内容,内容2为上传用户的冲突内容
通过命令git show [commit_id] 就可以查看提交用户的信息
如果觉得是提交的大佬的代码更牛,可以通过命令git merge --abort撤销本次的分支合并,当前的内容就会回到git push前,也就是取消掉git的冲突注释
如果还是想要保存自己写的内容,删除掉git的注释内容,重新再进行add ,commit ,push操作即可,本次操作会覆盖掉前一个人的提交
如果想撤销掉本次的一个提交,可以先通过git log查看自己的commit_id然后通过git revert commit_id,本地将会回退该版本,然后重新push即可,git会给commit 的备注前面自动加上Revert
总结:
冲突发生的原因:两个用户都对同一个文件进行了修改并提交,后提交的会发生冲突
发生冲突之后通过git pull,git会在冲突的地方显示相应的冲突注释,如果还是要继续提交,直接进行修改后重新push即可,取消合并则可以通过git merge --abort撤销本次分支合并
push之后如果想要撤销本次push则可以通过git log通过复制自己的commit_id之后通过git revert来回退到指定提交版本,然后再重新push