0

私たちのチームは、いくつかの xtest ファイルを扱う必要があります。競合を避けて履歴を残すために、git を使用したいと考えています。問題は次のとおりです。

  • 月曜日から木曜日まで、すべてではありませんが、ほとんどの人がデスクトップ PC を使用してネットワーク A 内で作業します。
  • 金曜日から日曜日まで、全員ではないがほとんどの人がラップトップを使用してネットワーク B 内で作業します。
  • セキュリティ上の理由から、ネットワーク A と B を直接接続することはできません。データの交換は、USB フラッシュ ドライブでのみ可能です。
  • プロジェクトの変更履歴を保存することは非常に重要です。

いくつかの調査を行い、いくつかの回答 (例: 2 つの同一の git リポジトリ) を読んだ後、要件を満たすために次の計画を立てていますが、それがうまくいくかどうか (またはより簡単に実行できるかどうか) は 200% 確信が持てません。あなたからのフィードバックをお待ちしております:

  • ネットワーク A 上のサーバー上のベア リポジトリから始めます。Everbody はデスクトップ PC でこのリポジトリのクローンを作成し、1 つのマスター ブランチで (ネットワーク A のサーバー上のリポジトリからプルおよびプッシュして) 操作します。
  • 最初の木曜日に、1 人の男 (git-admin と呼びましょう) がネットワーク A のローカル デスクトップ PC に新しいベア リポジトリを作成し、それをネットワーク A からのリポジトリの新しいリモートとして追加し、すべてのデータをこのローカルのベア リポジトリにプッシュします。
  • 次に、git 管理者は、このベア リポジトリを自分の USB フラッシュ ドライブに置き、ネットワーク B のサーバーにコピーします。ネットワーク B でラップトップを使用して作業している全員が、このリポジトリのクローンを作成し、そこからプル/プッシュします。

とても良いものですが、今では 2 つの中央リポジトリがあり、ネットワーク A と B の両方で人々がそれに取り組んでいる可能性があります。したがって、それらを近くに保つために、少なくとも週に 1 回マージすることが重要です。履歴は両方のリポジトリで保存する必要があります! これは少しトリッキーになると思います:

  • 毎週月曜日に、git 管理者はネットワーク B のリポジトリから最後にもう一度プルし、ラップトップで新しいベア リポジトリを開始し、それをネットワーク B のリポジトリの新しいリモートとして追加し、ラップトップのこのローカル ベア リポジトリにすべてのデータをプッシュします。 .
  • 次に、このベア リポジトリを USB フラッシュ ドライブに置き、ネットワーク A のデスクトップ PC にコピーします。次に、最初に、ネットワーク A の中央リポジトリからプルして最新の状態にします。その後、ネットワーク B からベア リポジトリを追加し、ネットワーク A から複製された自分のリポジトリの新しいリモートとして、そこからプルし、すべての競合を解決して、ネットワーク A の元のリモート リポジトリと、ネットワーク B からコピーされたローカルのベア リポジトリの両方にプッシュします。 .
  • これで、ネットワーク A の中央リポジトリが最新の状態になりました。次に、ベア リポジトリを取得し、再び USB フラッシュ ドライブに置き、ネットワーク B のラップトップに置き、ネットワーク B リポジトリの新しいリモートとして追加し、プル、マージ、およびネットワーク B の中央リポジトリへのプッシュを行います。

このプロセスは、毎週月曜日と木曜日に繰り返されます (逆方向)。簡単にするための提案はありますか、それともこれが進むべき道ですか?裸のリポジトリで作業する必要があるかどうか、また、git-admin の通常の最新のローカル リポジトリをそれぞれのネットワークにコピーして、ネットワーク A と B の中央リポジトリを次のように追加するだけでよいかどうかはわかりません。新しいリモコン (彼が作業しているリモコンによって異なります) を押したり引いたりします。

テキストの壁で申し訳ありませんが、助けてくれてありがとう!

4

1 に答える 1

0

毎週 2 つの新しいベアレポ?OMG、いいえ

2 つのリモート (A と B の場所用) と pull|push サイクルを備えた 1 つのレポ。場所間で転送されます。

そして、純粋な DVCS スタイルでは、各開発者は独自の「ブリーフケース」を持つことができます (そして、開発者のローカル リポジトリには、場所とブリーフケースの 2 つのリモートがあります)。

于 2015-10-30T13:13:50.777 に答える