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
当我完成一项功能时,通常我想要的是自动修复提交,然后在合并到 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