创建修正提交

Beginner

This tutorial is from open-source community. Access the source code

简介

在 Git 中,修正提交(fixup commit)是一种特殊类型的提交,用于修正之前的提交。当你想对已经提交的内容进行小的更改,而无需创建新的提交时,通常会使用它。当你在一个有许多贡献者的大型项目中工作时,修正提交特别有用,因为它们允许你进行小的更改而不会干扰其他人的工作。

创建修正提交

假设你正在和其他几位开发者一起处理一个项目,你发现几天前提交的一个内容中有个小错误。你想修复这个错误,但又不想创建一个新的提交并干扰其他开发者的工作。这时修正提交就派上用场了。通过创建一个修正提交,你可以进行必要的更改而无需创建新的提交,并且在下次变基(rebase)时,修正提交会自动与原始提交合并。

例如,你的任务是将字符串“hello,world”写入hello.txt文件,并将其作为一个“修正”提交添加到提交信息为“添加了 file1.txt”的提交中,以便在后续的变基操作中能自动合并。

对于这个实验,我们使用来自https://github.com/labex-labs/git-playground的仓库。

  1. 克隆仓库,进入该目录并配置身份:
git clone https://github.com/labex-labs/git-playground
cd git-playground
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
  1. 创建一个hello.txt文件,在其中写入“hello,world”并将其添加到暂存区:
echo "hello,world" > hello.txt
git add.
  1. 要创建一个修正提交,你可以使用git commit --fixup <提交>命令:
git commit --fixup cf80005
## 这是提交信息为“添加了 file1.txt”的提交的哈希值。

这将为指定的提交创建一个修正提交。请注意,在创建修正提交之前,你必须先暂存你的更改。4. 创建修正提交后,你可以使用git rebase --interactive --autosquash命令在下次变基时自动将修正提交与原始提交合并。例如:

git rebase --interactive --autosquash HEAD~3

打开交互式编辑器时,你无需更改文本,保存即可退出。这将对最后 3 次提交执行变基操作,并自动将任何修正提交与其对应的原始提交合并。

这是运行git show HEAD~1命令的结果:

[object Object]

总结

修正提交(fixup commits)是一种有用的工具,用于对之前的提交进行小的更改,而不会干扰其他开发者的工作。通过创建一个修正提交,你可以进行必要的更改,并在下次变基(rebase)时让它们自动与原始提交合并。