Git pull和Git push冲突分析
发布时间 2024-02-10 20:15:04

  通常情况下,在团队开发中,即使指定了开发成员要开发的模块,但或多或少还是会存在交叉使用文件的情况,也就是 Git 冲突发生的原因。

原则

  使用 Git 的最重要的原则就是,git push 前必须先 git pull 看看是否存在冲突,这样会最大程度的减少对远程分支的影响,让问题交给冲突方自己解决。

  下面就是我们可能遇到的 Git 冲突问题:

一、git pull 冲突

1、解决冲突

场景 1

正在开发中未 commit,此时如果 git pull 发生冲突

  • 先 stash 备份
  • git pull
  • 再恢复 stash

  stash 操作可以使用 vscode 的 GitLens 插件快速解决

1
2
3
4
5
git stash

git pull

git stash pop # 此处需要处理工作区冲突

场景 2

开发完已经 commit,此时如果 git pull 发生冲突

  • 手动 merge 冲突
  • 提交合并 commit

  由于当前是通过 merge 的方式,所以会额外产生一个合并 commit。
  (如果修改的比较少,我们也可以直接 git reset 回退一下版本)

2、思考总结

  其实在上面的冲突场景 1 中,除了 stash 存储的方案,我们还可以直接 commit,这样就变成了冲突场景 2,但显示是不推荐的 😂

二、git push 冲突

1、问题分析

  从 git 使用原则上来讲,这种情况是不应该发生的。问题出现的原因也很简单就是在 git push 前,没有 git pull。

  但那天脑袋一热还真就没有先 git pull 再 git push,并且好巧不巧还发生了冲突该怎么办呢?

2、解决冲突

开发完成,直接 git push 发生冲突

  • 先 git pull
  • 然后就回到了前面的 场景 2
上一页
2024-06-11 00:39:23
下一页