Git 互动基础
示例
此示例旨在描述如何gitrebase在交互模式下使用。期望人们对什么gitrebase是什么以及它做什么有一个基本的了解。
使用以下命令启动交互式变基:
git rebase -i
该-i选项指的是交互模式。使用交互式变基,用户可以更改提交消息,以及重新排序,拆分和/或压缩(组合为一个)提交。
假设您要重新排列最后三个提交。为此,您可以运行:
git rebase -i HEAD~3
执行上述指令后,将在文本编辑器中打开一个文件,您可以在其中选择如何重新确定提交的基础。就本示例而言,只需更改提交的顺序,保存文件并关闭编辑器即可。这将根据您已应用的订单开始重新设置基准。如果选中,gitlog您将看到以指定的新顺序提交的内容。
重措提交消息
现在,您已经确定提交消息之一是模糊的,并且您希望它更具描述性。让我们使用相同的命令检查最后三个提交。
git rebase -i HEAD~3
这次我们无需更改提交将被重新安排的顺序,而是将pick默认值reword更改为您要更改消息的提交。
当您关闭编辑器时,重新设置将启动,并且将在您要重新编写单词的特定提交消息处停止。这将使您可以将提交消息更改为所需的任何内容。更改消息后,只需关闭编辑器即可继续。
更改提交的内容
除了更改提交消息,您还可以调整提交所做的更改。这样做只是改变pick到edit一个承诺。Git到达该提交时将停止,并在登台区域中提供提交的原始更改。您现在可以通过取消暂存或添加新更改来适应这些更改。
一旦登台区域包含您要在该提交中进行的所有更改,请立即提交更改。将显示旧的提交消息,并且可以对其进行调整以反映新的提交。
将单个提交拆分为多个
假设您已经进行了一次提交,但是稍后又决定可以将该提交分成两个或多个提交。使用与以前相同的命令,替换pick为edit并按Enter。
现在,git将停止在您标记为编辑的提交,并将其所有内容放入暂存区域。从那时起,您可以运行gitresetHEAD^将提交放入工作目录。然后,您可以按不同的顺序添加和提交文件-最终将单个提交拆分为n个提交。
将多个提交压缩为一个
假设您已经完成了一些工作并且有多个提交,而您认为这些提交可以是单个提交。为此,您可以执行gitrebase-iHEAD~3,并替换3为适当数量的提交。
这次更换pick与squash替代。在重新设置基准期间,您指示要压缩的提交将被压缩在先前的提交之上;而是将它们变成单个提交。