首页 > 解决方案 > 我是否需要 git pull main 而不仅仅是 git fetch 才能从最新的 main 重新定位另一个分支?

问题描述

我正在一个名为 branchA 的分支上工作。main已被另一个人更新并推送到远程。

我可以吗:

git co branchA # Make sure to be on branchA
git fetch
git rebase main

没有将远程main更改合并到我的本地main分支中,git pull因为 rebase 违背了远程副本,或者我需要这样做:

git fetch
git checkout main
git pull # to get the changes applied to local main
git checkout branchA
git merge main

标签: git

解决方案


您的第一个变基方法应该使用远程跟踪分支origin/main而不是本地main,因为后者不会通过单独执行 fetch 来更新:

git checkout branchA
git fetch origin
git rebase origin/main

相同的逻辑适用于执行合并的版本:

git checkout branchA
git fetch origin
git merge origin/main

如果要使用本地main分支,则必须在单独的步骤中专门对其进行更新:

git checkout main
git pull origin main

推荐阅读