Features を多用するプロジェクトに取り組んでいますが、このアプリケーションには3つの開発者がいる場合があります。
いくつかのアプローチを試しましたが、gitブランチをマージすると、お互いの機能の変更が「上書き」されることがよくあります。競合がたくさんあり、機能モジュールが壊れて使いづらくなっているようです。
機能は、プロジェクトの構成に非常に便利で、これに取り組む方法があると確信しています。
競合や上書きのリスクを軽減するワークフローまたは手順はありますか?
機能に関する手がかりは大歓迎です。
マージの競合は、複数の開発者が構成をフィーチャーに統合しているときにおそらく発生するでしょう。機能コードを確認するためのいくつかのガイドラインを書きましたが、最も重要なのはこれです。
これは何を意味するのでしょうか?つまり、各開発者はコミットする前にコードをレビューする必要があります。開発者が注意せずに意図しないコード変更を防ぐ「魔法」はありません。
git diff
でコードの変更を確認してください。git diff > blah.patch
を使用して簡単な差分パッチを作成し、目的の構成変更のみが含まれるように手動でパッチを変更します。10dd
を使用すると、パッチの変更(たとえば)を取り除くことができます。featurename.features.field_base.inc
はコミットしません。」git commit -a
を使用しないでください。これはひどい慣習であり、使用しないようにする必要があります。常に明示的に追加してコミットしてください!git rebase
を使用して、機能が最新であることを確認します。git merge -s recursive -X patience
(git 1.7+ iircが必要)。最後に、開発者にソーシャル制限を追加して、パッチレビューまたはプルリクエストのいずれかでトランク/ステーブルにマージする前に、コードをレビューしてもらう必要があることを検討してください。人々は社会的制限に腹を立てるでしょうが、彼らは自分のコードをレビューしないことに対して自分自身に腹を立てるべきです。