如果我在一个特性分支上工作了很长时间(几周),并且我想定期将主分支rebase到我的分支中,那么我是否应该总是切换到主分支、拉取最新的代码,然后再切换回特性分支并将主分支rebase到我的分支?
如果我在一个特性分支上工作了很长时间(几周),并且我想定期将主分支rebase到我的分支中,那么我是否应该总是切换到主分支、拉取最新的代码,然后再切换回特性分支并将主分支rebase到我的分支?
假设我已经在功能分支上,我只需执行以下操作:
git fetch && git rebase origin/master
你可以像注释中提到的那样,使用git fetch origin master:master
只获取master
,但我更喜欢获取所有内容以获得完整的本地表示远程仓库。
而且,由于你没有直接在master
上工作,你可以忽略master
,并在origin/master
上进行变基,它已经通过fetch更新了。
git fetch
不会以任何方式更改本地的 master
,那么它如何帮助将特性分支推进到 master
上?(我的答案则通过变基对 master
进行快进,因此 master
被推进,特性分支也被推进。) - mattgit rebase origin/master
中忘记了 origin/
。我已经相应地编辑了答案,并解释了我的推理。 - VonCfetch
更新所有远程跟踪分支,包括 origin/master
:fetch = +refs/heads/*:refs/remotes/origin/*
:参见 https://git-scm.com/book/en/v2/Git-Internals-The-Refspec。 - VonC
git fetch origin master:master
。 - matt