您可以从 git 提交中挑选一个或多个帅哥吗?

Can you cherry-pick a hunk or hunks from within a git commit?

当我在我的工作区中进行阶段提交时,我通常使用 -p 选项来完成每个更改。我发现这对于确认我的更改以及检查拼写错误和其他愚蠢的错误很有用。

我通常 rebase 在我的开源开发工作中,当开发分支变得陈旧时。但是,有时我想在我的工作区中的一个丢弃分支上测试一些东西,但我不想要整个分支,因为它很长并且包含许多尚未合并的提交。我可以 git cherry-pick 但这似乎抓住了 entire 提交。有时这些提交很大,我不想要整个事情。

有没有什么方法可以通过 cherry-pick 获取提交,但在提交之前逐个检查提交块,因为它已应用于暂存区域?

据推测,用户随后只会暂存他们想要的提交组件。

不确定这是最简单的方法,但从原子角度看它可能看起来像

# first you cherry-pick without committing
git cherry-pick -n <commit-hash>

# then you unstage everything
git reset

# and stage hunk by hunk as usual
git add -p

# finally you discard everything else
git stash --keep-index