📜  Git壁球

📅  最后修改于: 2020-12-14 01:20:17             🧑  作者: Mango

吉特南瓜

在Git中,术语squash用于将先前的提交压缩为一个。这不是命令;相反,它是一个关键字。壁球是将特定组的更改转发给他人之前的一项出色技术。您可以使用引人注目的交互式rebase命令将多个提交合并到单个提交中。

如果您是Git用户,那么您必须已经意识到挤压提交的重要性。特别是如果您是开源贡献者,那么很多时候,您必须使用压缩的提交来创建PR(拉请求)。如果您已经创建了PR,也可以压缩提交。

让我们了解如何压缩提交?

Git壁球提交

作为Git的负责任贡献者,有必要使协作过程高效且有意义。 Git以不同的方式提供了一些强大的协作工具。 Git壁球是可促进高效且减轻痛苦协作的强大工具之一。

南瓜不是任何命令。相反,它是git交互式rebase下可供您使用的众多选项之一。壁球允许我们重写历史记录。假设我们在项目工作期间进行了很多提交,将所有提交压缩为大提交比推送是正确的选择。让我们了解如何压缩两个提交。

步骤1:检查提交历史记录

要检查提交历史记录,请运行以下命令:

$ git log --oneline

给定的命令将在一行中显示历史记录。我们可以跟踪历史记录并选择我们要压缩的提交。考虑以下输出:

步骤2:选择要压缩的提交。

假设我们要压缩最后的提交。要压缩提交,请运行以下命令:

$ git rebase -i HEAD ~3

上面的命令将打开您的默认文本编辑器,并将压缩最后三个提交。编辑器将打开,如下所示:

从上面的图像中,我们可以看到先前的提交显示在编辑器的顶部。如果我们想将它们合并为一个提交,则必须在编辑器顶部用南瓜替换pick。要在编辑器上书写,请按“ i ”按钮进入插入模式。编辑文档后,按:wq保存并退出编辑器。

步骤3:更新提交

按下回车键后,将打开文本编辑器的新窗口以确认提交。我们可以在此屏幕上编辑提交消息。

我正在编辑我的第一个提交消息,因为它将是所有三个提交的组合。考虑下图:

上图是用于确认提交合并的编辑器屏幕。在这里,我们可以更新提交消息。要在此编辑器上进行编辑,请按“ i ”按钮进入插入模式,然后编辑所需的文本。按:wq键,保存并退出编辑器。

当我们退出编辑器时,它将显示更新的描述。考虑以下输出:

上面的输出列出了对存储库所做的更改的描述。现在,提交已被压缩。在git日志的帮助下检查提交历史以进行确认。考虑以下输出:

步骤4:推送压缩的提交

现在,我们可以将此压缩的提交推送到远程服务器上。要推送此压缩的提交,请运行以下命令:

$ git push origin master

要么

$ git push -f origin master

上面的命令将把更改推送到远程服务器上。我们可以在远程存储库中检查此提交。考虑下图:

从上图可以看到。新提交已添加到我的远程存储库。

壁球的缺点

压榨没有明显的缺点。但是我们可以考虑一些可能影响项目的事实。这些事实如下:

挤压提交并重新设置基础将更改存储库的历史记录。如果任何贡献者不注意更新的历史记录,则可能会产生冲突。我建议您提供干净的历史记录,因为它比另一个更有价值。尽管我们可以在参考日志中查看原始历史记录。

还有另一个缺点,由于挤压,我们可能会失去粒度。使用Git时,尽量减少南瓜。因此,如果您不熟悉Git,请尝试远离壁球。