0

我发现自己对必须运行完整的程序来修改 git 中的提交感到恼火,我想知道哪种方法是自动化它们的最佳方式。所以,而不是这样做:

$> git add .
$> git commit --amend
$> git push -f

我很想这样做

$> amend_commit

shell脚本是唯一的方法吗?我正在使用 ZSH。

谢谢你们。

4

3 回答 3

1

虽然自动强制推送是一个非常糟糕的主意,因为它会重写历史并且使用同一存储库的其他人都会讨厌你,但你也可以定义一个 git 别名而不是 shell 别名,例如

git config alias.amend '!git add . && git commit --amend && git push -f'

或者如果您不想编辑提交消息,那么

git config alias.amend '!git add . && git commit --amend -C HEAD && git push -f'

然后你就可以git amend使用它了。

于 2017-05-22T13:51:28.617 回答
0

您可以只创建一个别名。这应该有效:

alias amend_commit="git add . && git commit --amend && git push -f"
于 2017-05-22T13:43:19.210 回答
0

您可以通过使用-a标志来删除其中一个步骤git commit来自动添加任何更改:

git commit -a --amend
git push -f

正如另一位用户已经评论的那样,将自动强制推送折叠到此工作流程中似乎很危险。

建议不要修改已经推送的分支。我会说这是你应该相对不经常做的事情,除非你使用的工作流允许可变特性分支(用于变基等)。

于 2017-05-22T13:50:01.490 回答