git commit --amend 是危险的

git commit --amend is dangerous

我有时会不小心输入 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 定义一个别名,但暂时失败了。您对如何处理这个问题有什么建议吗?

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

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

当然,你也可以撤消对commit的修改,但这是一个更具破坏性的命令,你需要小心一点。

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

我个人建议为 git commit --amend 创建一个别名,尤其是当您发现自己更频繁地修改提交时。我个人使用git amend。您可以使用以下命令进行设置:

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

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

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