例如,我已经在两台计算机上克隆了原始存储库。然后,我继续进行一些更改,然后提交到计算机A的本地存储库。现在如何将这些更改拉到计算机B?计算机A和B都连接到网络。
我正在寻找的内容相当于有人手动创建补丁并将其发送给我,我可以将其应用于我的工作副本/本地存储库。
例如,我已经在两台计算机上克隆了原始存储库。然后,我继续进行一些更改,然后提交到计算机A的本地存储库。现在如何将这些更改拉到计算机B?计算机A和B都连接到网络。
我正在寻找的内容相当于有人手动创建补丁并将其发送给我,我可以将其应用于我的工作副本/本地存储库。
Answers:
如果您可以通过来访问要从中拉取的计算机,则可以ssh
通过ssh将存储库添加为远程计算机,然后像从任何远程计算机一样从其拉计算机:
$ git remote add repo_b username@host:path/to/repository.git
$ git pull repo_b master
(您可以跳过添加远程的步骤,而只需在git pull
命令中指定完整的URL而不是远程名称,但是如果您要定期从存储库中提取,则将其添加为远程可以节省您的时间。很多打字。)
file:///local/path/to/repo/.git/
/path/to/repository/.git/
。
看一下 git pull --help
这会给像 git pull /my/other/repository
/path/to/repo.git/
,file:///path/to/repo.git/
”
您可以使用git daemon设置实际的服务器。否则,您可以使用git bundle,它将git的内部表示形式捆绑到一个文件中,该文件可以git pull
在另一端解除捆绑。
例如从git docs,捆绑所有内容:
git bundle create file.bundle master
然后,在另一端,您可以执行以下操作:
git pull file.bundle HEAD
有点晚了,但是为了所有它的价值并扩展Antoine Pelisse的答案,您还可以从具有相同回购协议的ssh主机中提取几个提交,而无需在配置中添加远程:
git pull user@host:/path/to/repo # while in the local repo folder
只需说明一下-可能的用途之一是,当您有两个主机(A和B)从远程克隆了相同的存储库,并且您已经在主机A上进行了一些更改,并且不希望将它们推送到远程(尚未),但想从主机B中提取那些提交。上面的命令与您的存储库同步,而无需推送到remote。