複数のリモートロケーションからプル/プッシュするにはどうすればいいですか? 質問する

複数のリモートロケーションからプル/プッシュするにはどうすればいいですか? 質問する

簡単に言うと、 git リポジトリをリモート リポジトリのリスト (単一の「オリジン」ではなく) にプッシュしたり、そこからプルしたりする方法はありますか?

長文:異なる接続環境を持つ複数のコンピューターでアプリを開発している状況がよくあります。たとえば、移動中はラップトップ、特定の場所にいるときはコンピューター「A」、別の場所にいるときは別のコンピューター「B」などです。また、ラップトップは「A」または「B」のいずれか一方のみに接続できる場合もあれば、両方に接続できる場合もあります。

私が望んでいるのは、git が常に現在接続できるすべてのコンピューターから「プル」し、そのコンピューターに「プッシュ」して、あるマシンから別のマシンにジャンプしてシームレスに作業を継続することが容易になることです。

ベストアンサー1

の最新バージョンでは、これを手動で行う必要はなくなりましたgitマルバニアスの解決策、下に

ここに転載:

git remote set-url origin --push --add <a remote>
git remote set-url origin --push --add <another remote>

元の回答:

これは私が長い間使ってきたもので、悪い結果もなく、Linus Torvaldsが提案したものです。git メーリングリスト

araqnidのソリューションは、コードをリポジトリ取り込むのに適していますが、私のように同等の権威あるアップストリームが複数ある場合 (重要なプロジェクトの一部をプライベート アップストリーム、GitHub、Codaset の両方にクローンしています)、毎日それぞれに変更をプッシュするのは面倒です。

簡単に言うと、git remote addすべてのリモートを個別に…そしてgit config -eマージされたリモートを追加します。次のリポジトリがあると仮定しますconfig

[remote "GitHub"]
    url = [email protected]:elliottcable/Paws.o.git
    fetch = +refs/heads/*:refs/remotes/GitHub/*
[branch "Master"]
    remote = GitHub
    merge = refs/heads/Master
[remote "Codaset"]
    url = [email protected]:elliottcable/paws-o.git
    fetch = +refs/heads/*:refs/remotes/Codaset/*
[remote "Paws"]
    url = [email protected]:Paws/Paws.o.git
    fetch = +refs/heads/*:refs/remotes/Paws/*

"Paws"…とのマージされたリモートを作成するには"Codaset"、これらすべての後に以下を追加します。

[remote "Origin"]
    url = [email protected]:Paws/Paws.o.git
    url = [email protected]:elliottcable/paws-o.git

これを実行すると、 を実行すると、 とのgit push Origin Master両方に順番にプッシュされるので、作業が少し楽になります。Paws/MasterCodaset/Master

おすすめ記事