发布于 2025-12-10 1 阅读
0

Git Squash 简化

Git Squash 简化

如果您刚刚开始成为开源贡献者或计划成为开源贡献者,您可能会遇到开源项目,这使得您在打开拉取请求之前或之后将所有提交压缩为一个提交。

作为初学者,您可能会觉得很有挑战性,因为担心会弄乱其他人的提交,但所有这些都可以通过使用正确的工具和扩展来消除。

在这篇文章中,我将帮助您克服这种恐惧,也将帮助您掌握并适应压缩提交。

让我们从定义本身开始。

git 中的压缩提交是什么意思?

Git 中的“压缩”意味着将多个提交合并为一个提交。

何时压缩提交?

您可以在任何时间点压缩提交,但强烈建议在进行更正或提出建议时压缩提交,并且您不想在 git 历史记录中添加额外的提交来说明您所做的更正。

我应该使用哪些工具才能使其更容易和无错误?

我建议使用VSCode作为代码编辑器,并安装GitLens扩展。在本教程中,我也将使用 VSCode。


那就让我们开始吧!

1. 首先,您必须更改 Git 的默认代码编辑器。

Git 自带 nano 作为其默认代码编辑器。为了使用 GitLens 扩展,你需要将 Git 的默认代码编辑器更改为 Visual Studio Code。
为此,请在终端中输入以下命令



 git config --global core.editor "code --wait"


Enter fullscreen mode Exit fullscreen mode



这会将 git 中的默认代码编辑器从 nano 更改为 vscode。

现在您已一切就绪。

假设你已对代码进行了更正并提交了更改。完成后,让我们概览一下你想要压缩的提交。
要列出提交,请在终端中输入以下命令(请确保你位于你想要压缩提交的目录/git仓库中。)



git log --oneline


Enter fullscreen mode Exit fullscreen mode

这是我的输出

Git 日志
主题:水母

现在让我们压缩这些提交

为了压缩提交,我们没有任何明确的命令,例如git squashgit 中的命令,而是使用 rebase 方法来实现提交的压缩。

因此,要压缩您所做的提交,请输入以下命令:



git rebase -i HEAD~N


Enter fullscreen mode Exit fullscreen mode

其中N是要压缩的提交数量

我将压缩最近的 2 次提交,因此我的终端将如下所示

Git 变基
按下 Enter 键后

变基窗口
主题:水母

从下拉菜单中选择要压缩的提交
壁球下拉列表

并从下拉菜单中选择reword,以便在压缩时编辑提交消息。

选择选项后,您的 vscode 窗口可能如下所示

复述
主题:水母

开始 Rebase

现在让我们点击Start Rebase来开始 rebase



点击“Start Rebase”按钮后,编辑器中会打开一个新的提交消息选项卡。正因如此,我们将 vscode 设置为 Git 的默认代码编辑器,以便在 vscode 中直接打开此选项卡,从而进一步简化编辑提交消息的操作,无需费力记住 nano 代码编辑器的快捷键,从而彻底省去这些步骤,使您的工作流程更加优化和高效。

由于我们已经为上一次提交选择了 reword 选项,它将要求我们编辑该提交消息的提交消息。



重新奖励提交消息

我将保持原样,因此请按 Ctrl+S 或 Cmd+S(MacOS 用户)
一旦您保存并关闭此选项卡,新的 rebase 提交选项卡将打开,它将再次确认您想要在压缩提交中拥有的消息。

提交消息重新定基

再次,我将保持原样,因此请按 Ctrl+S 或 Cmd+S(MacOS 用户)并关闭该选项卡。



太棒了!你成功压缩了提交。恭喜🎉
平方输出

再次在终端中输入以下命令即可看到



git log --oneline


Enter fullscreen mode Exit fullscreen mode

这是输出

压扁

你可以看到“修复错误”提交被压缩了,因为我们没有修改前一个提交,所以它保持不变。当你输入时,git log它会显示两条消息,还记得第二个提交消息标签吗?它来自那里。

致谢

非常感谢你阅读这篇文章,希望这篇文章能帮助你更轻松、更快速地压缩你的提交。欢迎提出任何建议,如果你喜欢我的作品,可以通过Twitter或LinkedIn与我联系。

祝你有美好的一天😊

文章来源:https://dev.to/pb/git-squash-simplified-3ba1