MENU

git多人协作开发冲突解决

October 30, 2021 • Read: 178 • 学习

基本内容

在我们在用Git进行多人开发的时候,会遇到没及时拉取最新仓库代码就直接上手写的情况(或者说你正在写,人家就推送了),这种时候我们写好后push就会发现无法推送,查看信息可以得知是远端仓库已经有更新了,本地不是最新版,这就产生冲突了。

先放一张整体流程图:

gitworkflow

一般的流程都是:

git add .
git commit -m "your msg"
git push origin master

随后发现报错:

pushfail

当我们在提交之后就可以使用下面这个命令

git reset HEAD^

将本地仓库退回至上一个版本,同时将上一次提交的内容退回至工作区
此时还不可以拉取最新版,需要先将自己修改过的内容先存到堆栈区
然后再从远端仓库拉去最新的版本,最后在取出堆栈区的文件和拉取的文件对比

git stash [save "your msg"]
git pull
git stash pop

resetHEAD^

stash

pull

conflict

其中:冲突标记<<<<<<<=======之间的内容是别人修改的,=======>>>>>>>之间的内容是自己修改的

最简单的编辑冲突的办法,就是直接编辑冲突了的文件,把冲突标记删掉,把冲突解决即可

拓展

在解决这个问题时涉及一些命令:

  • git diff: 比较工作区和暂存区(如无则为HEAD)内容
  • git reset HEAD: 清理暂存区,恢复至工作区
  • git reset --hard HEAD: 清理暂存区和工作区(修改内容丢失
  • git log: 查看版本号
  • git reset [版本号]: 恢复至指定版本
  • git checkout <filenem>: 若暂存区为空,则直接回复上一个版本(HEAD)的指定文件至工作区
本文作者:ZGGSONG
本文链接:https://assets.zggsong.cn/archives/gitconflict.html
版权声明:本站所有未注明转载的文章均为原创,并采用CC BY-NV-SA 4.0授权协议,转载请注明来源

Last Modified: November 1, 2021
Archives QR Code Tip
QR Code for this page
Tipping QR Code