3

統合が失敗したときにプッシュが拒否されるように、Git の上に統合フックを提供したいと考えています。たとえば、開発者が変更をプッシュしたときに、プロジェクトが正常にコンパイルされることを確認したいと考えています。

現在、更新後のフックをセットアップして、コンパイル チェックを行います。ただし、プッシュを拒否したい場合は、変更を元に戻し、開発者に通知します。

git revert --no-edit HEAD
echo "Rejected !"

私の問題は、別の開発者が自分の変更をプッシュしたい場合、最初にプルする必要があるため、自分の作業を上書きしてから、正しくマージするために面倒なリセット/スタッシュ コマンドを発行する必要があることです。
さらに、ブランチのマージ (-m オプションが必要) の場合、元に戻すことはできません。

私の現在の回避策は、サーバーに戻すのではなく、別のブランチで変更をマージすることです (開発者のデフォルトのプル元です)。

git checkout integrated
git merge master

この目標を達成するための最良のアプローチは何ですか?

4

1 に答える 1

3

これに対する最善のアプローチは、コンパイルをチェックしてからマスターにマージする更新後のフックを持つ独自の機能ブランチを開発者に提供することです (これについてすべて偏執的になりたい場合は、マージする別のブランチにフックをプッシュすることができます)手動でマスターする)。これなら、断られる心配もありません。私の意見では、マスターはリリース ブランチとしてのみ使用されるべきであり、誰もがすべてをプッシュするものではありません。

于 2013-06-22T10:54:11.613 に答える