10

git commit -amend我有时会在我真的想打字时不小心打字git commit --amend。Git 检测到并询问我

$ git commit -amend
error: did you mean `--amend` (with two dashes ?)

这很棒。

但是,有时我写git commit -ammend了然后 git 会接受它并将我的拼写错误视为git -a -m "mend",所以它只是使用日志消息“mend”提交。

我正在寻找一种方法来阻止 git 这样做。我试图定义一个别名,git commit -ammend但现在失败了。你对如何处理这个问题有什么建议吗?

4

1 回答 1

6

git commit --amend(正确拼写)实际上比git commit -a -m "mend". 前者将重写现有的提交,用新的提交替换它,所以这或多或少是一个破坏性的命令。然而,后者只会创建一个你不打算做的提交。这是一个建设性的命令,它不会重写任何现有的历史,而只是添加它。

添加您不打算添加的提交可能很麻烦,但根本不是问题。您可以使用简单地撤消该提交(不会丢失任何内容)git reset --soft HEAD~1。这会将分支指针重置为之前的提交,而不会影响您的工作目录。

当然,您也可以撤消对提交的修改,但这是一个更具破坏性的命令,您需要小心谨慎。

所以我个人不会为 Git 以错误的方式解释它而烦恼。是的,这很烦人,但仅此而已。当你注意到它时,只需撤消它。

我个人建议,特别是如果你发现自己更频繁地修改提交,为git commit --amend. 我个人使用git amend. 您可以使用以下 ocmmand 进行设置:

git config --global alias.amend "commit --amend"

-C HEAD如果您不想触发编辑但只想保留原始提交消息,也可以添加(我经常这样做,所以这是我使用的别名):

git config --global alias.amend "commit --amend -C HEAD"
于 2016-12-22T16:51:48.817 回答