1. ホーム
  2. git

[解決済み] 複数のリモートロケーションからプル/プッシュするにはどうすればよいですか?

2022-03-21 12:34:09

質問

ショートです。 ある git リポジトリを(単一の "origin" ではなく)リモート リポジトリのリストにプッシュしたり、そこからプルしたりする方法はありますか?

長いのは。 例えば、移動中はノートパソコン、ある場所にいるときはパソコン"A"、別の場所にいるときは別のパソコン"B"と、接続の異なる複数のパソコンでアプリを開発する状況がよくあります。また、ラップトップは、"A"と"B"のどちらかのみに接続されている場合もあれば、両方に接続されている場合もあるのです。

私が望むのは、git が現在接続可能なすべてのコンピュータから常に "pull"、そしてすべてのコンピュータに "push"して、あるマシンから他のマシンへ簡単にジャンプしてシームレスに作業を継続できるようにすることなのです。

解決するには?

複数のリモートリポジトリを設定するために git remote コマンドを使用します。

git remote add alt alt-machine:/path/to/repo

設定されているすべてのリモートから取得し、トラッキングブランチを更新するが、マージは行わない場合 HEAD を、してください。

git remote update

現在、いずれかのリモートに接続されていない場合は、タイムアウトするか、エラーを投げて次に進みます。取得したリポジトリから手動でマージするか、あるいは cherry-pick 変更点の収集をどのように行うかによって異なります。

alt から master ブランチを取得し、現在のヘッドに取り込むには、次のようにします。

git pull alt master

そのため、実際には git pull はほとんど略語で git pull origin HEAD (実際には、設定ファイルを見て判断しますが、ご理解いただけると思います)。

アップデートをプッシュするには、各リポジトリに対して手動で行う必要があります。
プッシュは、中央リポジトリのワークフローを念頭に置いて設計されていると思います。