当我执行git rebase --interactive
时,我有六个基本命令:pick
,reword
,edit
,squash
,fixup
和{{ 1}}。
exec
命令有什么作用?它是pick
提交还是cherry-pick
它?
答案 0 :(得分:1)
来自help article:
<强>
pick
强>
pick
仅表示包含提交。重新排列pick命令的顺序会改变rebase正在进行时的提交顺序。如果您选择不包含提交,则应删除整行。
为了完整性,以下是其他命令:
<强>
reword
强>
reword
命令与pick
类似,但在使用它之后,rebase进程将暂停,并为您提供更改提交消息的机会。提交所做的任何更改都不会受到影响 的edit
强>
如果您选择edit
提交,您将有机会修改提交,这意味着您可以完全添加或更改提交。在继续rebase之前,您还可以进行更多提交。这允许您将大型提交拆分为较小的提交,或者删除提交中的错误更改 的squash
强>
此命令允许您将两个或多个提交组合到一个提交中。提交被压缩到它上面的提交中。 Git让您有机会编写描述这两种更改的新提交消息 的fixup
强>
这与squash
类似,但要合并的提交会丢弃其消息。提交只是简单地合并到它上面的提交中,并且先前的提交消息用于描述这两个更改 的exec
强>
这允许您针对提交运行任意shell命令。
答案 1 :(得分:1)
在交互式rebase中选择提交意味着Git使用有问题的提交所做的更改,并使用原始元数据(消息,作者,日期等)提交它们。因此,单个@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home)
{
NavUtils.navigateUpFromSameTask(this);
}
return super.onOptionsItemSelected(item);
}
看起来很像pick
。
相反,git cherry-pick
在pick
之类的提交时间内不会采用整个仓库的状态。只是提交所做的更改。
答案 2 :(得分:1)
根据实验,git的交互式rebase中的 pick 命令与 git cherry-pick --ff 的工作方式相同。根据文档,这样做是这样的:
如果当前HEAD与cherry-pick'ed提交的父级相同,则将执行此提交的快进。
答案 3 :(得分:0)
Pick用于包含提交。
默认情况下,您将获得一个您选择要进行rebase的提交的目录。目录按日期按升序排序。重新排列pick命令的顺序会改变启动rebase时提交的顺序。
答案 4 :(得分:0)
它只是使用提交 - 也就是说,不会对它进行任何修改。
pick(简称p)是默认操作。在这种情况下它会 按原样重新应用提交,不更改其内容或消息