0

私は gitorious の開発チームのメンバーです。しかし、より大きな機能に取り組むために、リポジトリのクローンを作成しました (ローカルではなく gitorious で)。これで、「project」(元のリポジトリ) と「my-project」(サーバー側のクローン) という 2 つの奇抜なプロジェクトができました。

ここで私の質問は次のとおりです。これら 2 つのリポジトリを使用する最善の方法は何ですか? もちろん、両方を 2 つの異なるディレクトリにローカルに複製して、別のディレクトリで作業することもできます。しかし、私の変更を元に戻すのは非常に複雑になる可能性があります。おそらく、一方の側でマージ リクエストを開始し、もう一方の側でそれを受け入れる必要があります。

私がしたいこと、これが可能かどうかはわかりません:メインプロジェクトのローカルクローンを作成し、「my-project」をブランチまたは同様のものとしてローカルに統合して、両方のリポジトリを簡単に切り替えることができるようにします、cherry-pickあるものから他のものへ、など。

このようなことは可能ですか?または、複数の (サーバー側の) クローンを操作する最善の方法は何ですか?

ありがとう!

4

1 に答える 1

0

git remote add2 番目のリモートをローカル リポジトリに追加するために使用します。これらのコマンドは、サーバー側の gitorious クローンを「個人用」と呼ばれるリモートとして追加し、そこからブランチ ref を取得します。

git remote add personal <path_to_server_side_clone>
git fetch personal

異なるブランチを使用する必要さえありません。実際には、勤務中の履歴は次のようになります (1 つのブランチだけに簡略化されています)。

  origin/master
        |
A-B-C-D-E-F-G master
      |
personal/master

上の図では、originの master ブランチは commit をE指し、 は をpersonal指しD、ローカルmasterの ブランチの先端はGです。の安定origin性が非常に重要であるとします。つまり、マシン上のテスト スイートに合格した後にのみプッシュします。あなたはまだあなたの毎日の仕事を保存したいですか?それがまさにpersonalリポジトリの目的です。git push personal master図を次のように変更します。

  origin/master
        |
A-B-C-D-E-F-G master
            |
     personal/master

personalリモートmasterとローカル コピーがmaster同期されました。テスト スイートを実行した後、 を発行するgit push origin masterと、次の状態になります。

      origin/master
            |
A-B-C-D-E-F-G master
            |
     personal/master

実際には、任意のブランチのセットをリモートにプッシュしたり、ブランチ間で共有したり、1 つをクリーンに保ち、もう 1 つを未完成のトピック ブランチでいっぱいにすることを選択したりできます。それはあなた次第です。tigまたはのような履歴視覚化ソフトウェアを使用することをお勧めしgitkます。どちらも、リモートの状態を簡単に視覚化できます。

このアイデアは、好きなだけ取り入れることができます。職場では、すべての同僚 (私たちも gitorious を使用しています) 用にリモートを使用しており、全員が個人用のサーバー側のクローンを持っています。これは、優れた実稼働リポジトリを維持しながら、コードを共有する驚くほど簡単な方法です。パーソナル リモート クローンは、ほぼすべてのワークフローにメリットをもたらします。

于 2012-07-11T03:13:42.967 に答える