Git 什么是;挑选;以吉特';什么是交互式重新基址?

Git 什么是;挑选;以吉特';什么是交互式重新基址?,git,Git,当我执行git-rebase-interactive时,我有六个基本命令:pick,reword,edit,squash,fixup和exec pick命令的作用是什么?它是cherry pick提交还是checkoutit?pick用于包含提交 默认情况下,系统会为您提供一个目录,其中包含您选择要重设基础的提交。目录按日期升序排序。重新排列pick命令的顺序会在您启动重新基址时更改提交的顺序。它只是按原样使用提交-也就是说,不会对其进行任何修改 拾取(简称p)是默认操作。在这种情况下,它会 按

当我执行git-rebase-interactive时,我有六个基本命令:
pick
reword
edit
squash
fixup
exec


pick
命令的作用是什么?它是
cherry pick
提交还是
checkout
it?

pick用于包含提交


默认情况下,系统会为您提供一个目录,其中包含您选择要重设基础的提交。目录按日期升序排序。重新排列pick命令的顺序会在您启动重新基址时更改提交的顺序。

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

拾取(简称p)是默认操作。在这种情况下,它会 按原样重新应用提交,其内容或消息不做任何更改

从:

选择

pick
仅表示包含提交。重新排列pick命令的顺序会在重基进行时更改提交的顺序。如果选择不包含提交,则应删除整行

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

改写

reword
命令类似于
pick
,但是在使用它之后,重基过程将暂停,并给您一个更改提交消息的机会。提交所做的任何更改都不受影响。
编辑

如果您选择编辑提交,您将有机会修改提交,这意味着您可以完全添加或更改提交。您还可以在继续重基之前进行更多提交。这允许您将大型提交拆分为较小的提交,或者删除提交中的错误更改。
挤压

此命令允许您将两个或多个提交合并为一个提交。提交被压缩到其上方的提交中。Git让您有机会编写一条新的提交消息来描述这两个更改。
修复

这类似于挤压,但要合并的提交已丢弃其消息。提交被简单地合并到它上面的提交中,早期提交的消息用于描述这两个更改。
exec

这使您可以对提交运行任意shell命令


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


相反,
pick
不像
git checkout
那样在提交时获取整个回购的状态。根据实验,git的交互式rebase中的pick命令的工作方式与git的cherry pick--ff相同。根据文件,其作用如下:

如果当前头部与精心挑选的提交的父级相同,则将执行该提交的快进


(请参阅:)

可能重复的否,它不是它的副本。没有回答问题“是樱桃拣还是签出”。您可能希望检查已接受的答案@user983447这些答案对您有帮助吗?求你了。如果没有,请澄清您的需求。不确定我是否理解正确。当我使用“pick”包含一个提交时,它实际上会接受我们在该提交中所做的更改,并生成一个新的提交。因此,尽管“拾取的”提交在git历史中看起来是相同的,但实际上它是一个具有不同哈希的新提交。@Sta_Doc完全正确,这是rebase的本质,您不会得到相同的哈希。无论rebase产生什么样的提交,它们都是全新的。@Sta_Doc知道父提交会影响提交哈希值的计算,因此,如果您将提交“移动”或“复制”到另一个父提交上,其哈希值将发生变化,即使其他所有内容都相同。非常正确!在对提交A、B、C进行交互重定基时,我包括了几个旧的提交(比如,提交D、E),很快就发现D、E以新的哈希结束。我把它们包括进来只是为了确保我没有错过任何重新设置基础的承诺。这是一个很有价值的教训,在进行交互式重基时,只需包括我们需要更改的那些提交。