Git Squash 简化

2025-05-26

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它会显示两条消息,还记得第二个提交消息标签吗?它来自那里。

致谢

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

祝你有美好的一天😊

文章来源:https://dev.to/pb/git-squash-simplified-3ba1
PREV
10+ 个 React 富文本编辑器
NEXT
成为更优秀的 JavaScript 开发人员的 10 个 GitHub 存储库