たとえば、2台のコンピューターでOriginリポジトリーのクローンを作成しました。次に、変更を加えてコンピューターAのローカルリポジトリーにコミットします。これらの変更をコンピューターBにプルする方法を教えてください。コンピューターAとBの両方がネットワークに接続されています。
私が探しているのは、誰かが手動でパッチを作成し、それを私に送信するのと同じことです。
プル元のマシンにssh
経由でアクセスできる場合は、ssh経由でリポジトリとしてリモートにリポジトリを追加し、リモートからのようにそこからプルできます。
$ git remote add repo_b username@Host:path/to/repository.git
$ git pull repo_b master
(リモートを追加する手順をスキップして、git pull
コマンドをリモート名の代わりに使用しますが、定期的にリポジトリからプルする場合は、リモートとして追加すると、多くの入力を節約できます。)
見て git pull --help
これにより、git pull /my/other/repository
git daemon で実際のサーバーをセットアップできます。それ以外の場合は、 git bundle を使用できます。これは、gitの内部表現を、反対側でgit pull
でアンバンドルできるファイルにバンドルします。
例えば。 git docsから、すべてをバンドルしています:
git bundle create file.bundle master
次に、反対側で、次のようなことができます:
git pull file.bundle HEAD
SshでコンピューターBに接続できる場合は、次を使用できます。
git clone user@Host:/path/to/repo
このssh接続を介したリモートトラッキングを有効にし、git pull/Pushを使用できるようにします。
私にとっては、別のコンピューターを使用したローカルリポジトリで機能しました。
git remote add Origin_username [email protected]:/home/username/dev/project/main/.git/
git pull Origin_username master
または
git pull Origin_username some_branch
少し遅すぎますが、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にプッシュせずにリポジトリを同期する。
思いついた
git clone /path/to/local/repository