2016-03-19 10 views
3

私は非常にばかげています。時には、developブランチとは対照的に間違ったmasterブランチに「機能ブランチ」をマージしてしまい、もちろん痛みや苦しみにつながります。ローカルブランチを不変にする方法はありますか?

すでにこれが起こっているのは2回目ですから、ローカルでブランチを不変にする方法があるのだろうかと思います。

私はすでに直接言ったブランチにコミットを行うことから私を防ぐために this pre-commit hookで試してみたが、これはのようにマージを停止されていない

:ローカルにすべての可能な変更を防止する方法はあり

git checkout master 
git merge wip 

ブランチ?そうでない場合は、少なくとも変更がプッシュされないようにすることは可能ですか?

+0

間違ったコミットをして、あなたがそれらをプッシュするまで、あなただけの 'マスターをreset'という問題がないマージ:ブランチ(例えば、diffのために)、あなただけ直接それを参照することができますバック。 – max630

答えて

2

ローカルブランチを変更できません(マージ操作の前に実行されるローカルフックはありません)。ただし、ブランチでコミットするつもりがない場合は、チェックしないでください。あなたがmasterブランチをチェックアウトしようとすると、それは失敗します今

$ git checkout some-other-branch 
$ git branch -D master 

:あなたはそれが既にチェックアウトしている場合、ローカルブランチを削除

$ git checkout master 
error: pathspec 'master' did not match any file(s) known to git. 

あなたが上流masterを参照する必要がある場合

$ git diff origin/master 
+0

上記のブランチをローカルに削除するとリモートサーバ上で削除される危険性はありますか? – Shoe

+0

これは追加のリスクをもたらすとは考えていません。 – larsks

関連する問題