Git 的交互式 rebase 中的“pick”有什么作用?

use*_*447 14 git

当我这样做时,我git rebase --interactive有六个基本命令:pickrewordeditsquashfixupexec

命令有什么作用pick?是cherry-pick提交还是确实如此checkout

ang*_*son 15

来自帮助文章

pick
pick只是意味着包含该提交。当变基正在进行时,重新排列 pick 命令的顺序会更改提交的顺序。如果您选择不包含提交,则应删除整行。

为了完整起见,这里还有其他命令:

reword
reword命令与 类似pick,但使用它后,变基过程将暂停并给您一个更改提交消息的机会。提交所做的任何更改都不会受到影响。 如果您选择提交,您将有机会修改提交,这意味着您可以完全添加或更改提交。您还可以在继续变基之前进行更多提交。这允许您将大型提交拆分为较小的提交,或者删除提交中所做的错误更改。 此命令允许您将两个或多个提交合并为一个提交。一个提交被压缩到它上面的提交中。Git 让您有机会编写描述这两个更改的新提交消息。 这与 类似,但要合并的提交的消息被丢弃。该提交只是合并到其上方的提交中,并且较早的提交的消息用于描述这两个更改。 这允许您针对提交运行任意 shell 命令。
edit
edit
squash

fixup
squash
exec


use*_*447 3

根据实验, git 的交互式 rebase 中的pick命令的工作方式与gitcherry-pick --ff相同。根据文档,其行为方式如下:

\n\n
\n

如果当前 HEAD 与cherry-pick\xe2\x80\x99ed 提交的父级相同,则将执行快进到该提交。

\n
\n\n

(参见: https: //git-scm.com/docs/git-cherry-pick

\n