2011-03-27 15 views
2

プロジェクトのソースコードにgitを使用しており、大規模なチームで作業しています。現在、約半数の開発者がプロ​​ジェクトのオンサイト段階を控えています。このフェーズには、大量の開発、つまり多くのコミットが必要です。同時に残りの半分もコードの作業を続けます。2つの同一のgitリポジトリ

残念ながら、オンサイトでは断続的で信頼性の低いインターネット接続しかありません。しかし、オンサイトチームが変更を(コミット/プッシュ/プル)して、別のものと同期させることが不可欠です。しかし、オフィスの他のチームによる "セントラル" gitリポジトリの変更が利用可能であることも重要です。

私は、オンサイトチームがインターネットが長期間ダウンした場合でもgitを使用して効率的に作業できるようにするための設定を探していますが、同時にオフィスとの同期も可能ですインターネットが利用可能です。

これを行う簡単で偽の方法はありますか?

私の最初のアイデア:私たちと一緒に「サーバ」として行動し、リポジトリの裸のクローンを持っていること。その後、オンサイトのチームにネットブックの起点を変更させ、ネットブックにプッシュしてプルします。しかし、メインリポジトリとの同期が問題を引き起こしています。ネットブックのgit pushをうまくいけば、git fetchはメインリポジトリに加えられた変更を返さない。 また、ファイルが両方のリポジトリで変更され、競合が発生した場合にどうなるか心配です。競合を解決して同期を行う前に誰かがネットブックで作業する必要があると思いますか?

+0

"ネットブックでgit pushを実行しても問題ありませんが、git fetchでメインリポジトリの変更が反映されません。" - それはうまくいくはずです。おそらくあなたは何かが正しく構成されていないでしょうか? – MatrixFrog

+0

これは確かに可能です。明らかに私はそれを修正するつもりは分かっていません;-) – Yamal

答えて

5

セットアップがうまくいくはずなので、フェッチに何が問題なのかよく分かりません。ただし、会社の中央リポジトリからフェッチして競合を解決するには、を実行する必要があります。インターネット接続が確立されると、開発者の1人が中央リポジトリからフェッチし、自分のコンピュータで競合をマージして解決し、中央リポジトリとオンサイトリポジトリの両方に結果をプッシュします。私は、サーバーとして使用されているリポジトリでは決して直接作業してはいけないと信じています(そして、それがなければならない裸のリポジトリであれば、作業コピーがないので直接作業することはできません)。これにより、オンサイトサーバーに開発環境を設定する手間が省けます。

さらに、現場の開発者はoriginをオンサイトリポジトリに置き換えるべきではありません。代わりにgit remote addという新しいリモコンを追加して、それを電話などで呼び出す必要があります。 onsite。その後、pullpushまたはfetchを実行するときはいつでも、会社の中央レポまたはオンサイトレポを使用するかどうかを選択できます。

+2

あなたのネットブックレポは裸のレポでなければなりません(作業コピーはチェックアウトされていません) – brycemcd

+0

@Bryce:はい、オンサイトサーバーレポ " - しかし、私はそれについてより明確にできたと思う。 –

+0

絶対に、あなたはそれを釘付けにしました。私はちょうどそれがポイントの家を運転する複数の場所でそれを見るためにOPにとって有用であると思った。 – brycemcd

関連する問題