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 | git stash |
场景 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