简介
🧑💻 刚接触 Git 或 LabEx 吗?我们建议从 Git 快速入门 课程开始。
在 Git 中,修正提交(fixup commit)是一种特殊类型的提交,用于修正之前的提交。当你想对已经提交的内容进行小的更改,而无需创建新的提交时,通常会使用它。当你在一个有许多贡献者的大型项目中工作时,修正提交特别有用,因为它们允许你进行小的更改而不会干扰其他人的工作。
🧑💻 刚接触 Git 或 LabEx 吗?我们建议从 Git 快速入门 课程开始。
在 Git 中,修正提交(fixup commit)是一种特殊类型的提交,用于修正之前的提交。当你想对已经提交的内容进行小的更改,而无需创建新的提交时,通常会使用它。当你在一个有许多贡献者的大型项目中工作时,修正提交特别有用,因为它们允许你进行小的更改而不会干扰其他人的工作。
假设你正在和其他几位开发者一起处理一个项目,你发现几天前提交的一个内容中有个小错误。你想修复这个错误,但又不想创建一个新的提交并干扰其他开发者的工作。这时修正提交就派上用场了。通过创建一个修正提交,你可以进行必要的更改而无需创建新的提交,并且在下次变基(rebase)时,修正提交会自动与原始提交合并。
例如,你的任务是将字符串“hello,world”写入hello.txt文件,并将其作为一个“修正”提交添加到提交信息为“添加了 file1.txt”的提交中,以便在后续的变基操作中能自动合并。
对于这个实验,我们使用来自https://github.com/labex-labs/git-playground的仓库。
git clone https://github.com/labex-labs/git-playground
cd git-playground
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
hello.txt文件,在其中写入“hello,world”并将其添加到暂存区:echo "hello,world" > hello.txt
git add.
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)时让它们自动与原始提交合并。