当我真的想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
定义一个别名,但现在失败了。您对如何处理此问题有任何建议吗?
答案 0 :(得分:4)
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"