假设1月1日,我分叉(origin
)并克隆(本地)github仓库(upstream
)。我在X
上创建了一个分支master
。并且,开始致力于X
。随着时间的推移,我一直将提交推送到origin
。
我一直在origin
master
upstream
更新master
的{{1}}。 (通过我当地的回购)。
当我创建分支master
时,X
上存在错误,因此,X
目前存在此错误。最近,upstream
的主分支更新了一个提交错误修复的提交。
我的问题是:如何将此特定提交提取到我的X
?
master
&的{p> upstream
个分支origin
都已更新。
答案 0 :(得分:0)
您有3个选项:
X
重新投放到upstream/master
。upstream/master
合并到X
。<sha fix>
)到X
。在选择其中任何一项之前,请务必先从上游获取更改:
# First fetch upstream/master
$ git fetch upstream
然后,这里有各种选项的命令:
$ git rebase upstream/master X
# With X checked out
$ git merge upstream/master
# With X checked out
$ git cherry-pick <sha fix>
一般情况下,我建议使用rebase
使分支与其上游分支同步,但您可能决定要使用merge
。我建议不要使用cherry-pick
,因为如果您最终要将X
合并回master
,您最终会重复提交,这会导致代码回归有些情况。