我和一个朋友正在Github上做一个小项目。我们俩都不太有经验。
我提交了一个成功合并的pull请求,但是,我的朋友没有更新他的本地存储库来包含这些最新的更改。
当我的朋友再次执行push
时,他覆盖了我所有的更改。
我如何保留我和他的大部分编辑(不包括冲突)?
我试着根据我最后一次提交创建一个分支,然后将说的分支与主分支合并,但是这样做不起作用,因为主分支被认为是"最新的",现在我迷路了。
解决此问题的最佳方法是先执行fetch
,然后执行merge
或rebase
。我建议使用rebase
来保持您的历史线性和干净。
fetch
在不触及自己的分支的情况下更新远程分支的副本。git pull
将有效地执行fetch
,然后执行merge
。
解决问题的命令链如下所示
git fetch
git rebase origin/master master
# ... Solve conflicts ... (continue the rebase with 'git rebase --continue')
git push
如果你的朋友在你解决冲突的时候提交了,你应该在push之前执行git pull --rebase
。但是当你尝试push
时,git会告诉你这个,所以我不会担心它,直到它向你尖叫。