在Git中,术语squash用于将先前的提交压缩为一个。这不是命令;相反,它是一个关键字。壁球是将特定组的更改转发给他人之前的一项出色技术。您可以使用引人注目的交互式rebase命令将多个提交合并到单个提交中。
如果您是Git用户,那么您一定已经意识到Squash提交的重要性。特别是如果您是开源贡献者,那么很多时候,您必须使用压缩的提交来创建PR(拉请求)。如果您已经创建了PR,也可以压入提交。
让我们了解如何压入提交?
Git Squash提交
作为Git的负责人,有必要使协作过程高效且有意义。 Git以不同的方式提供了一些强大的协作工具。 Git壁球是可促进高效且减轻痛苦协作的强大工具之一。
壁球不是任何命令;它不是命令。相反,它是git交互式rebase下可供您使用的众多选项之一。壁球允许我们重写历史记录。假设我们在项目工作期间进行了许多提交,将所有提交压缩为大提交比推送是正确的选择。让我们了解如何压缩两个提交。
第一步: 检查提交历史记录
要检查提交历史记录,请运行以下命令:
给定命令将历史记录显示在一行中。我们可以跟踪历史记录并选择我们要压缩的提交。考虑以下输出:
第2步: 选择要Squash的提交../strong>
假设我们要压缩最后的提交。要压缩提交,请运行以下命令:
上面的命令将打开您的默认文本编辑器,并将压缩最后三个提交。编辑器将打开,如下所示:
从上图可以看到先前的提交显示在编辑器的顶部。如果要将它们合并为一个提交,则必须在编辑器顶部用 squash pick 替换 pick 。要在编辑器上书写,请按" i "按钮以插入模式进入。编辑文档后,按: wq 保存并退出编辑器。
步骤3: 更新提交
按输入键时,将打开文本编辑器的新窗口以确认提交。我们可以在此屏幕上编辑提交消息。
我正在编辑我的第一条提交消息,因为它将是所有三个提交的组合。考虑下图:
上图是编辑器屏幕,用于确认合并提交。在这里,我们可以更新提交消息。要在此编辑器上进行编辑,请按" i "按钮进入插入模式,然后编辑所需的文本。按下: wq 键,以保存并退出编辑器。
退出编辑器时,它将显示更新的说明。考虑以下输出:
上面的输出列出了对更改的描述已在存储库上进行。现在,提交已被压缩。在git日志的帮助下检查提交历史以进行确认。考虑以下输出:
步骤4: 推送压缩的提交
现在,我们可以将此压缩的提交推送到远程服务器上。要推送此压缩的提交,请运行以下命令:
或
$ git push-f origin master
上面的命令会将更改推送到远程服务器上。我们可以在远程存储库中检查此提交。考虑下图:
从上图可以看到。新的提交已添加到我的远程存储库中。
Squash的缺点
Squash没有明显的缺点。但是我们可以考虑一些可能影响项目的事实。这些事实如下:
挤压将提交并重新设置基础会更改存储库的历史记录。如果任何贡献者不注意更新的历史记录,则可能会产生冲突。我建议您提供干净的历史记录,因为它比另一个更有价值。尽管我们可以在参考日志中检查原始历史记录。
还有另一个缺点,由于挤压,我们可能会失去粒度。使用Git时,尽量减少南瓜。因此,如果您不熟悉Git,请尝试远离壁球。