2016-09-23 14 views
1

次のscennarioを検討してください。
2つの異なるマシンとローカルリポジトリ(AとB)に同じプロジェクトが含まれています。両方のリポジトリで異なるペースで作業が進んでおり、現在Bが最新です。マシンAとBはネットワーク化されていません。 AとBの作業の両方の履歴は、その後Aにいくつかの追加の進展後A. Git - 2つのローカル切断リポジトリをマージする方法

  • にしばらく続ける保存、Aをマージすることが望まれる、AにBをマージすることが望まれる

    1. B上に保存し、履歴を保存して後でB上で作業を続けます。

    これは可能ですか? AとBが要件1と2を満たすために必要な操作は何ですか?

    ありがとうございます。

  • +1

    はあなたのリポジトリは、同じ元のリポジトリの両方のクローンはありますか?彼らは分かれた共通の歴史を持っていますか? – alexbclay

    +2

    'git bundle'を見てください。これは、"スニーカーネット "を使ってお互いに話せないリポジトリ間でデータを転送することを可能にします。あるいは、何らかの理由でマシンからマシンにreposを転送できるのであれば、Gitは '/ path/to/a/repo.git'のような"ローカルURL "からの変更を取り込んでも問題ありません。 – kostix

    +0

    @alexbclayソース管理なしでプロジェクトを開始し、あるマシンから別のマシンにバックアップをコピーしました。その後、gitはサーバアクセスなしで実装され、ローカルリポジトリ(同期なし)では開発とマスターブランチが使用されます。マシンAまたはマシンBのどちらかで作業し、両方のリポジトリをマージして履歴を保持したいと考えています。 – David

    答えて

    1

    サーバがお互いに話すことができるならば、あなたは他の

    [email protected]> git remote add origin_b A:/path/to/repo.git 
    
    [email protected]> git remote add origin_a B:/path/to/other/repo.git 
    

    用のリモートであることを各レポを設定することができます次に、各レポは、必要に応じてマージと分岐してお互いの枝を取得することができます。ブランチ名が互いに干渉する場合は、ブランチ名をより具体的に変更することができます。

    もう1つの方法は、両方のサーバーがソースとして使用する新しい中央リポジトリを作成することです。

    このリンクは、Gitのワークフロー上でいくつかの良い情報を持っています https://www.atlassian.com/git/tutorials/comparing-workflows

    関連する問題