我的问题是,我在另一个本地分支中有一个旧的提交 [包含abc.cpp、def.cpp]。
现在几个月后,我想使用这些更改,但在我的当前分支中,abc.cpp已经升级了。那么如果我挑选这个提交,它会将旧的abc.cpp的更改集成到新的abc.cpp [最近的工作目录副本]中吗?
我的问题是,我在另一个本地分支中有一个旧的提交 [包含abc.cpp、def.cpp]。
现在几个月后,我想使用这些更改,但在我的当前分支中,abc.cpp已经升级了。那么如果我挑选这个提交,它会将旧的abc.cpp的更改集成到新的abc.cpp [最近的工作目录副本]中吗?
git cherry-pick
将从一个分支应用提交到另一个分支,但不像正式合并那样保留其他分支原始的历史或血统。git format-patch
和git apply
进行更加手动的操作。cherry-pick
是将一个提交(或一系列提交)作为补丁应用到您的分支上(嗯,几乎像是一个补丁)。git checkout -
" 知道如何检出,"git merge -
" 知道如何合并之前所在的分支一样,"git cherry-pick
" 现在也理解 "git cherry-pick -
" 从上一个分支中挑选。cherry-pick
: 允许 "-
" 作为 '@{-1}
' 的缩写-
" 缩写对于类似于 "checkout
" 和 "merge
" 的 "cherry-pick
" 很方便。
git cherry-pick
很快就能够从“上一个分支”中挑选出需要的提交了(在git 1.8.5/1.9中)。请参见下面的答案。 - VonC