Git 交互式变基中的"pick"有什么作用?

  • 本文关键字:作用 pick Git 交互式 git
  • 更新时间 :
  • 英文 :


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

pick命令有什么作用?它是cherry-pick提交还是checkout提交?

来自帮助文章:

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

为了完整起见,下面是其他命令:

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

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

如果当前 HEAD 与挑选提交的父级相同,则将执行此提交的快进。

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

在交互式变基中选择提交意味着 Git 使用相关提交所做的更改并使用原始元数据(消息、作者、日期等(提交它们。所以一个pick看起来很像git cherry-pick.

相反,pick不会像git checkout那样在提交时获取整个存储库的状态。只是提交所做的更改

Pick 用于包含提交。

默认情况下,您将获得一个您选择变基的提交的目录。目录按日期升序排序。重新排列 pick 命令的顺序会更改启动变基时提交的顺序。

它只是按原样使用提交 - 也就是说,不会对其进行任何修改。

选取(简称 P(是默认操作。在这种情况下,它将 按原样重新应用提交,其内容或消息没有变化

最新更新