80

たとえば、2台のコンピューターにオリジンリポジトリのクローンを作成しました。次に、先に進んでいくつかの変更を加え、コンピューターAのローカルリポジトリにコミットします。これらの変更をコンピューターBにプルするにはどうすればよいですか?コンピューターAとBの両方がネットワークに接続されています。

私が探しているのは、誰かが手動でパッチを作成して私に送信するのと同じです。これは、作業中のコピー/ローカルリポジトリに適用できます。

4

7 に答える 7

113

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

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

git pull(リモートを追加する手順をスキップして、リモート名の代わりにコマンドで完全なURLを指定することもできますが、定期的にリポジトリからプルする場合は、リモートとして追加することで節約できます。たくさんのタイピング。)

于 2010-11-09T07:07:51.740 に答える
36

見てgit pull --help

これは次のようなものになりますgit pull /my/other/repository

于 2010-11-09T07:02:07.397 に答える
11

gitdaemonを使用して実際のサーバーをセットアップできます。それ以外の場合は、git bundlegit pullを使用できます。これは、gitの内部表現を、もう一方の端でバンドル解除できるファイルにバンドルします。

たとえば、git docsから、すべてをバンドルします。

git bundle create file.bundle master

次に、もう一方の端で、次のようなことを行うことができます。

git pull file.bundle HEAD
于 2010-11-09T06:58:38.833 に答える
8

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

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

これにより、このssh接続を介したリモート追跡が可能になり、git pull/pushを使用できるようになります。

于 2010-11-09T07:10:20.673 に答える
2

別のコンピューターを使用するローカルリポジトリでは、次のように機能しました。

git remote add origin_username username@10.0.0.2:/home/username/dev/project/main/.git/

git pull origin_username master

また

git pull origin_username some_branch
于 2016-07-13T12:35:53.897 に答える
2

少し遅すぎますが、Antoine Pelisseの答えを拡張するために、構成にリモートを追加せずに、同じリポジトリにいくつかのコミットが含まれているsshホストからプルすることもできます。

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

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

于 2017-11-20T11:35:22.250 に答える
0

私は思いついた

git clone /path/to/local/repository
于 2017-04-27T05:01:22.860 に答える