-2

私は Stash のローカル バージョンを実行しており、すべてのローカル開発者がそれにアクセスできます。それをクライアントのプロジェクトで使用する方法を頭に入れるのに少し苦労しています。

クライアントの git リポジトリを参照リポジトリとして複製 (Stash にプッシュ) できるようにする必要があります。私のすべてのローカル開発者からのすべての開発作業は、その参照リポジトリに対して行われます。その参照リポジトリに対してすべてのコミットを行い、すべての変更が QA に合格したら、最終的なコードをクライアントにプッシュします。すべての意図と目的のために、クライアントは日々のすべてのコミットを取得するわけではなく、最終的な成果物のみを取得します。

私がやろうとしていること、そしてそれが実現可能かどうかはわかりませんが、クライアントのレポをローカルに複製し、それをすべてのローカル開発者の新しいオリジンにすることです。すべての作業が完了したら、最終的なコミットのみをクライアントにプッシュしたいだけです (すべての中間コミットではありません)。もう少し複雑にするために、ローカルのクローン リポジトリを開発者のオリジンとして使用する代わりに、クローン リポジトリをローカルの Stash サーバーにプッシュし、それをオリジンにしたいと考えています。

クライアントのレポを Stash に移動するのは簡単です (ログインしてレポを複製し、それを Stash にプッシュするだけです)。どうすればよいかわからないのは、クライアントとの同期を維持する方法です。つまり、クライアントが変更を行った場合、それらの変更を取り込みたいのですが、常に 2 つの部分からなるプロセス (つまり、変更の取り込み、リベース、およびプッシュ) を維持する必要がありますか? これを 2 つの異なる作業パス (つまり、実際の開発作業用とプル/リベース/プッシュ用) で行う必要がありますか? このようなことを自動化する方法はありますか?

4

1 に答える 1

1

エリック、Git を使用する方法を変更する必要があります。これらの QA 制限と、物事をリモートにプッシュする最終的な責任を持つ開発者の責任を追加して、プロセスを複雑にしないでください。これは物事を停滞させるだけです。git のタグ付けと分岐について学び、QA もそれに慣れるようにしてください。このようにして、ビルドは QA の準備ができてスタンプされ、開発者はヘッドに影響を与えないブランチから作業できます (そうする準備ができるまで)。そして最も重要なのは、リモートへのプッシュを監督するボトルネックにならないことです。

この件に関する非常に良い読み物はhttp://pragprog.com/book/tsgit/pragmatic-version-control-using-gitです

于 2013-07-31T20:09:36.113 に答える