Git:自动修复功能分支中的提交

Git: auto-fixup a commit in a feature branch

当我完成一项功能时,通常我想要的是自动修复提交,然后在合并到 master 之前强制推送到远程源。

我最终在 master 之上变基,这样我就可以修复一个提交,因为我发现了一个我想更改的小东西,但我不希望将该更改作为一个单独的提交。所以我以交互方式变基,修复最后一次提交,然后强制推送。有没有办法一步完成?

假设你想修复最后一次提交,你可以修改那个提交。编写更改后,只需发出:

$ git commit -a --amend --no-edit

不过,您仍然需要用力推动。

下面是上面使用的 git commit 个选项的细分:

-a, --all: 
Tell the command to automatically stage files that have been modified and 
deleted, but new files you have not told Git about are not affected.

--amend: 
Replace the tip of the current branch by creating a new commit.

--no-edit: 
Use the selected commit message without launching an editor. 
For example, `git commit --amend --no-edit` amends a commit without changing 
its commit message.

您可以在进行修复提交时使用 git commit --fixup <commit>rebase -i 中省去手动编辑提交列表的步骤。然后,如果 rebase.autoSquash 设置为 true,git rebase -i 将自动将包含此提交的行转换为提交正下方的 fixup 行以修复。

git commit -a --amend --no-edit && git push -f