2

因此,我偶尔会犯错误,即按下 up 键的次数太多或太少,最终导致我的 repo 中出现额外的提交,然后我必须处理这些提交git commit -am "changed foo"./foo_test是否可以让 git 拒绝其消息与先前提交的提交的消息匹配的任何提交?

4

2 回答 2

6

与其直接拒绝它,为什么不直接撤消它呢?

# Leaves all changes as 'changes to be committed', but
# uncommits the most recent commit
git reset --soft HEAD~
# Leaves all changes as changed working copy files (ie,
# unstages them as well)
git reset HEAD~
# Lets you edit the most recent commit message 
git commit --amend
# Lets you do bulk surgery on your revision history, deleting
# or merging dozens of commits in one operation
git rebase -i <last good commit, eg origin/mainline>

如果您真的希望这被彻底拒绝,请查看.git/hooks/prepare-commit-msg- 您可以在此处添加一个脚本以获取最新的提交消息(通过git cat-file commit HEAD)并将其与传入的提交消息进行比较。如果它们匹配,exit 1则中止提交。

于 2012-04-18T06:53:31.347 回答
0

使用提交后挂钩脚本进行检查。

如果相同,则 git reset --mixed HEAD~1

于 2012-04-18T06:58:17.030 回答