2011-11-07 8 views
3

gitワークフローは、できるだけリニアなコミットツリーを実現するために、ローカルのトピックブランチのリベースに基づいています。しかし時には合併する必要があり、私たちはそれを許します。マージコミットを押したときにGitサーバに警告する

マージコミットをサーバにプッシュしようとすると、ユーザに警告するように私のgitサーバを設定するにはどうすればよいですか?私はユーザーに警告して、本当にやりたいことを確認するようにお願いしたいと思います。

答えて

3

gitの標準バージョンを使用している場合、あなたの質問に示唆されるようにこれを対話的に行うことはできません。 1つの可能性のある選択肢は、特定の文字列、たとえばMerge Reviewedを含まないマージコミットを拒否するサーバー上にpre-receiveフックを持つことです。このようなマージコミットを導入するプッシュを受け取ったときのpre-receiveフックによるエラー出力は、プッシュする前に履歴リライト(git commit --amendまたはgit rebase)を使用してその文字列またはリベースを線形履歴に追加することを提案します。

+0

gitフックでちょっと読んでみると、 'update'フックはクライアントとの対話型通信が可能なので、実際は完璧であるようです。 (stdoutは、リモートgitクライアントにリダイレクトされ、プッシュを行いますが、stdinの場合は逆さまです)。しかし、私のニーズに合わせて使用​​したり修正することができる似たようなスクリプトを作ってくれることを本当に望んでいました。 –

関連する問題