3

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

git fetch --all

然后我尝试切换到所需的分支

git checkout -f branchname

但 git 说

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

所以我认为这意味着我的本地分支被卡在与等效远程分支相对应的提交后面的某个地方,尽管我希望我的 fetch 可以使我的 repo 等于远程分支。最清晰和最直接的方法是什么?我可以从一个新的克隆开始,但这似乎有点粗糙。

4

3 回答 3

4

之后git checkout -f branchname,做git pull origin branchname

于 2013-06-24T14:38:49.973 回答
4

你只需要运行:

git merge origin/branchname

为什么 ?

使用git fetch --all,您已经检索了同事所做的所有提交。您只需要将它们集成到您的本地分支中。既然它说你的分支可以快进,你只需要运行git merge origin/branchname.

余下:即使branchnameorigin/branchname连在一起(我们说branchname轨道origin/branchname),它们也不一样。所以你必须合并(或变基)才能让所有提交出现origin/branchnamebranchnameorigin/branchnamebranchname

于 2013-06-24T14:39:07.507 回答
1

我为此使用git up。除了更新所有本地分支外,它还将暂存和取消暂存您拥有的任何本地更改。自从我使用它以来,为我节省了很多按键。

于 2013-06-24T18:46:17.833 回答