如何简洁地请求“从另一个分支挑选仅涉及特定文件的提交”?即命令git log ..other-branch afile
会列出在other-branch中未合并的所有涉及“afile”的提交;那么如何请求将这些相同的提交应用到当前分支上?
如何简洁地请求“从另一个分支挑选仅涉及特定文件的提交”?即命令git log ..other-branch afile
会列出在other-branch中未合并的所有涉及“afile”的提交;那么如何请求将这些相同的提交应用到当前分支上?
git cherry-pick $(git log --reverse --pretty=format:"%H" filename)
git log --reverse --pretty=format:"%H" filename
命令会以反序列列出修改 filename
的所有提交版本的 SHA 值,确保提交按正确的顺序合并。我们将这个列表提供给 git cherry-pick 命令进行操作。
如果你使用 Magnus Bäck 提供的另一种版本,则可以使用以下命令:git cherry-pick $(git rev-list --reverse HEAD -- filename)
git rev-list
而不是 git log
。此外,您可能需要使用 --reverse
以正确顺序应用 cherry-picks,对吧?我们最终会得到这样的结果:git cherry-pick $(git rev-list --reverse HEAD -- filename)
。 - Magnus Bäck
git cherry-pick
的参数就可以完成工作。但肯定有更好的方法。) - gcbenison