我克隆了一个远程存储库,它有几个分支,在其中一个分支上工作,提交更改并推送。
在一段时间内,同事们进一步修改了远程存储库(在这段时间内,我可能忘记了如何使用git),我需要做更多的更改。我不需要保留任何本地更改。
首先,我尝试通过以下方式更新本地回购协议
git fetch --all
然后我试着通过
git checkout -f branchname
但是吉特说
Your branch is behind 'origin/branchname' by 85 commits, and can be fast-forwarded.
因此,我认为这意味着我的本地分支被困在对应于等效远程分支的提交之后的某个地方,尽管我做了一个取回,我希望这样做可以使我的repo与远程分支相等。最清楚和最直接的方法是什么?我可以从一个新的克隆开始,但这看起来有点粗糙。
最佳答案
你只要跑:git merge origin/branchname
为什么?
使用git fetch --all
,您已经检索到您的同事所做的所有提交。你只要把它们整合到你当地的分支机构就行了。因为它说你的分支可以快速转发,所以你只需运行git merge origin/branchname
。
余数:即使branchname
和origin/branchname
链接在一起(我们说branchname
跟踪origin/branchname
),它们也不一样。因此,您必须在origin/branchname
上合并(或重新定位)branchname
才能使origin/branchname
中的所有提交都显示在branchname