Git 互动基础

示例

此示例旨在描述如何git rebase在交互模式下使用。期望人们对什么git rebase是什么以及它做什么有一个基本的了解。

使用以下命令启动交互式变基:

git rebase -i

该-i选项指的是交互模式。使用交互式变基,用户可以更改提交消息,以及重新排序,拆分和/或压缩(组合为一个)提交。

假设您要重新排列最后三个提交。为此,您可以运行:

git rebase -i HEAD~3

执行上述指令后,将在文本编辑器中打开一个文件,您可以在其中选择如何重新确定提交的基础。就本示例而言,只需更改提交的顺序,保存文件并关闭编辑器即可。这将根据您已应用的订单开始重新设置基准。如果选中,git log您将看到以指定的新顺序提交的内容。

重措提交消息

现在,您已经确定提交消息之一是模糊的,并且您希望它更具描述性。让我们使用相同的命令检查最后三个提交。

git rebase -i HEAD~3

这次我们无需更改提交将被重新安排的顺序,而是将pick默认值reword更改为您要更改消息的提交。

当您关闭编辑器时,重新设置将启动,并且将在您要重新编写单词的特定提交消息处停止。这将使您可以将提交消息更改为所需的任何内容。更改消息后,只需关闭编辑器即可继续。

更改提交的内容

除了更改提交消息,您还可以调整提交所做的更改。这样做只是改变pick到edit一个承诺。Git到达该提交时将停止,并在登台区域中提供提交的原始更改。您现在可以通过取消暂存或添加新更改来适应这些更改。

一旦登台区域包含您要在该提交中进行的所有更改,请立即提交更改。将显示旧的提交消息,并且可以对其进行调整以反映新的提交。

将单个提交拆分为多个

假设您已经进行了一次提交,但是稍后又决定可以将该提交分成两个或多个提交。使用与以前相同的命令,替换pick为edit并按Enter。

现在,git将停止在您标记为编辑的提交,并将其所有内容放入暂存区域。从那时起,您可以运行git reset HEAD^将提交放入工作目录。然后,您可以按不同的顺序添加和提交文件-最终将单个提交拆分为n个提交。

将多个提交压缩为一个

假设您已经完成了一些工作并且有多个提交,而您认为这些提交可以是单个提交。为此,您可以执行git rebase -i HEAD~3,并替换3为适当数量的提交。

这次更换pick与squash替代。在重新设置基准期间,您指示要压缩的提交将被压缩在先前的提交之上;而是将它们变成单个提交。