我克隆了一个远程存储库,它有几个分支,在其中一个分支上工作,提交更改并推送。 在一段时间间隔之后,同事们进一步修改了远程存储库(在此期间我可能忘记了如何使用git),我需要进行更多更改。我不需要保留任何本地更改。 首先,我尝试通过
使我的本地回购更新git fetch --all
然后我尝试通过
切换到所需的分支git checkout -f branchname
但是git说
Your branch is behind 'origin/branchname' by 85 commits, and can be fast-forwarded.
所以我认为这意味着我的本地分支卡在对应于等效远程分支的提交后面,尽管做了一个我希望使我的repo等于远程分区的提取。什么是最清晰,最直接的方式?我可以从一个新的克隆开始,但这看起来有点粗糙。
答案 0 :(得分:4)
在git checkout -f branchname
之后,执行git pull origin branchname
答案 1 :(得分:4)
你只需要运行:
git merge origin/branchname
为什么?
使用git fetch --all
,您已经检索了同事提交的所有提交内容。您只需将它们集成到本地分支中即可。由于它表示您的分支可以快进,因此您只需运行git merge origin/branchname
。
剩余:即使branchname
和origin/branchname
被链接在一起(我们说branchname
跟踪origin/branchname
),它们也不一样。因此,您必须在origin/branchname
上合并(或变更)branchname
,以便origin/branchname
中的所有提交都显示在branchname
答案 2 :(得分:1)
我使用git up。除了更新所有本地分支机构外,它还会暂存和取消您拥有的任何本地更改。自从我使用它以来,我保存了很多关键笔画。