2

組み込みアプリケーション用のコードの開発に取り組んでいます。私の組み込みシステムは linux/git を実行し、ネイティブ コンパイラを搭載していますが、ネットワーク ハードウェアや機能はありません。これらの組み込みシステムに USB ドライブを問題なくマウントできます。

デスクトップ PC にソース コード用のマスター (ベア) git リポジトリがあり、リポジトリのクローンでかなりの開発を行っています。シンプル/ベーシックな git ワークフローは問題ありません。

私が心に描いているのは、USB サム ドライブにレポジトリの --bare クローンを作成し、組み込みシステム間でそれをスニーカー ネッティングすることです。

各組み込みシステムに搭載されている git リポジトリを USB リポジトリからのクローンにしたいと考えています。

したがって、私が想定するワークフローは次のとおりです。

  1. 組み込みシステムの 1 つに変更を加えます。それらをローカルの git clone に追加してコミットします。
  2. USB サム ドライブを組み込みシステムにマウントし、変更をローカル リポジトリからサム ドライブ リポジトリにプッシュします。
  3. デスクトップ PC に USB サム ドライブをマウントし、それらのコミットをマスター/ベア リポジトリにプッシュします。
  4. 変更をデスクトップ開発ツリーにプルします。

そして、私はこれの逆をしたいと思います:

  1. 私のデスクトップ作業 git ツリーに変更を加え、追加し、コミットし、それらをマスター リポジトリにプッシュします。
  2. サム ドライブをデスクトップ PC にマウントし、マスターの変更をサム ドライブの git クローンにプル/フェッチします。
  3. サムドライブを組み込みシステムにマウントし、変更を組み込みシステムのローカル作業ツリーにプル/フェッチします...

最終的な目標は、デスクトップ PC または組み込みシステム (ネットワーク機能を持たない) で開発の変更を行い、すべてを同期できるようにすることです。

これは可能ですか?これは、大量の git voodoo なしで可能ですか?

私はこれを数回解決するために腰を下ろし、障害物に遭遇し続けました。サムドライブを介して両方向に変更をプッシュできるようにしたいので、サムドライブに --mirror されたリポジトリは必要ないと思います。

公式のマスター リポジトリをサム ドライブに置き、すべての作業コピーがそれを指すようにすることもできますが、マスター コピーが埋もれてしまった場合のセキュリティについて、あいまいな気持ちにはなりません。

私は自分で理解して自分でできる「シンプル」なものを望んでいます!

4

1 に答える 1

1

[ここでの前提は、エクストラやアドオンのない通常の git について話しているということです]

はい、確かにできます。ここで覚えておくべきことがいくつかあります。

  • git リポジトリは単なる「.git」ディレクトリです
  • git リポジトリはその場所を「認識」していないため、問題なく移動またはコピーできます。
  • git リポジトリには、その「リモート」がどこにあるか (つまり、プッシュ/プルできる場所) をリストしたテキスト ファイルがあります。
  • 「マスター」git リポジトリのようなものはありません。すべてのリポジトリは同等です。

したがって、最も原始的な方法として、「cp -a」を使用して .git ディレクトリをコピーするだけで問題ありません。

もちろん、それは最善の方法ではありません...おそらく、押したり引いたり、そのような凝ったものを使いたいと思うでしょう。したがって、私たちができることは、サーバー上のリポジトリを、USB スティックとデスクトップの両方の「リモート」(つまり、「マスター」) リポジトリと呼ぶことです。

また、USB スティック リポジトリを組み込みシステムの「リモート」と呼びます。

これを行う最も簡単な方法は次のとおりです (おそらく最初の 2 つはすでに完了しています)。

  • サーバー上にリポジトリを作成する
  • サーバーリポジトリをデスクトップのディレクトリにgit cloneします
  • USBスティックをデスクトップに差し込みます
  • サーバーリポジトリを USB スティックのディレクトリに git clone します
  • USBスティックを取り外し、組み込みシステムに接続します
  • USBスティックから組み込みシステムにリポジトリをgit cloneします(すべての組み込みに対して最後の2つの手順を繰り返します)

以上です。組み込みから USB へ、USB からサーバーへ、サーバーからデスクトップと USB へのプッシュとプルができるようになりました。

于 2013-09-12T11:30:02.737 に答える