web-dev-qa-db-ja.com

Gitの別のコンピューターのリポジトリから取得するにはどうすればよいですか?

たとえば、2台のコンピューターでOriginリポジトリーのクローンを作成しました。次に、変更を加えてコンピューターAのローカルリポジトリーにコミットします。これらの変更をコンピューターBにプルする方法を教えてください。コンピューターAとBの両方がネットワークに接続されています。

私が探しているのは、誰かが手動でパッチを作成し、それを私に送信するのと同じことです。

75
jeffreyveon

プル元のマシンにssh経由でアクセスできる場合は、ssh経由でリポジトリとしてリモートにリポジトリを追加し、リモートからのようにそこからプルできます。

$ git remote add repo_b username@Host:path/to/repository.git
$ git pull repo_b master

(リモートを追加する手順をスキップして、git pullコマンドをリモート名の代わりに使用しますが、定期的にリポジトリからプルする場合は、リモートとして追加すると、多くの入力を節約できます。)

99
Amber

見て git pull --help

これにより、git pull /my/other/repository

35
Antoine Pelisse

git daemon で実際のサーバーをセットアップできます。それ以外の場合は、 git bundle を使用できます。これは、gitの内部表現を、反対側でgit pullでアンバンドルできるファイルにバンドルします。

例えば。 git docsから、すべてをバンドルしています:

git bundle create file.bundle master

次に、反対側で、次のようなことができます:

git pull file.bundle HEAD
11

SshでコンピューターBに接続できる場合は、次を使用できます。

git clone user@Host:/path/to/repo

このssh接続を介したリモートトラッキングを有効にし、git pull/Pushを使用できるようにします。

7
Benoit Courtine

私にとっては、別のコンピューターを使用したローカルリポジトリで機能しました。

git remote add Origin_username [email protected]:/home/username/dev/project/main/.git/

git pull Origin_username master

または

git pull Origin_username some_branch
2
McQuade

少し遅すぎますが、Antoine Pelisseの答えを拡張するために、remoteを追加せずに、同じリポジトリを持っているsshホストからさらにコミットを数回取得することもできますあなたの設定:

git pull user@Host:/path/to/repo  # while in the local repo folder

明確にするために、これの考えられる用途の1つは、2つのホスト(AとB)がリモートから同じリポジトリを複製し、ホストAでいくつかの変更をコミットしてそれらをremote(まだ)にプッシュしたくないが、代わりにそれらのコミットをホストBからプルしたい。上記のコマンドはremoteにプッシュせずにリポジトリを同期する。

0
Alex

思いついた

git clone /path/to/local/repository
0
Vlad T.