2012-04-18 16 views
2

私はときどきアップキーを押す回数が多すぎたり少なすぎたりして、./foo_testの代わりにgit commit -am "changed foo"をやります。その結果、私のレポに余計なコミットが必要になります。以前にコミットされたコミットのメッセージと一致するメッセージを持つコミットをgitで拒否させることは可能ですか?前のコミットと同じメッセージでgitコミットを拒否しますか?

+2

をリセット: 'Gitは-a'をコミットがとにかく良い習慣ではないと考えられます。毎回何をコミットするのかを検討することをお勧めします。したがって、共通のワークフローは 'git status'、' git add 'または' git add -a'、そして 'git commit'です。 – penartur

+0

あなたはpre-commitフックを設定することができます。http://mark-story.com/posts/view/using-git-commit-hooks-to-prevent-stupid-mistakesこの場合、それはちょうどそれを元に戻すのは簡単です。 – ngm

答えて

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

0

確認のためにコミット後のスクリプトを使用してください。

同じ場合は、Gitはサイドノートと同じように--mixed HEAD〜1

関連する問題