git:所有本地分支都在遥控器后面。如何将它们全部带到远程状态?

时间:2013-06-24 14:35:32

标签: git branch

我克隆了一个远程存储库,它有几个分支,在其中一个分支上工作,提交更改并推送。 在一段时间间隔之后,同事们进一步修改了远程存储库(在此期间我可能忘记了如何使用git),我需要进行更多更改。我不需要保留任何本地更改。 首先,我尝试通过

使我的本地回购更新
git fetch --all

然后我尝试通过

切换到所需的分支
git checkout -f branchname

但是git说

Your branch is behind 'origin/branchname' by 85 commits, and can be fast-forwarded.

所以我认为这意味着我的本地分支卡在对应于等效远程分支的提交后面,尽管做了一个我希望使我的repo等于远程分区的提取。什么是最清晰,最直接的方式?我可以从一个新的克隆开始,但这看起来有点粗糙。

3 个答案:

答案 0 :(得分:4)

git checkout -f branchname之后,执行git pull origin branchname

答案 1 :(得分:4)

你只需要运行:

git merge origin/branchname

为什么?

使用git fetch --all,您已经检索了同事提交的所有提交内容。您只需将它们集成到本地分支中即可。由于它表示您的分支可以快进,因此您只需运行git merge origin/branchname

剩余:即使branchnameorigin/branchname被链接在一起(我们说branchname跟踪origin/branchname),它们也不一样。因此,您必须在origin/branchname上合并(或变更)branchname,以便origin/branchname中的所有提交都显示在branchname

答案 2 :(得分:1)

我使用git up。除了更新所有本地分支机构外,它还会暂存和取消您拥有的任何本地更改。自从我使用它以来,我保存了很多关键笔画。