如何从Git中的另一台计算机存储库中提取?

jef*_*eon 75 git git-pull

例如,我已经在两台计算机上克隆了原始存储库.然后,我继续进行一些更改并提交到计算机A的本地存储库.我现在如何将这些更改提取到计算机B?计算机A和B都连接到网络.

我正在寻找的将是相当于手动创建补丁并将其发送给我的人,我可以将其应用于我的工作副本/本地回购.

Amb*_*ber 101

如果您想要从中拉出的机器ssh可以通过ssh 访问它,那么您可以通过ssh将其作为远程添加,然后像任何远程一样从中拉出:

$ git remote add repo_b username@host:path/to/repository.git
$ git pull repo_b master
Run Code Online (Sandbox Code Playgroud)

(您可以跳过添加远程的步骤,只需在git pull命令中指定完整的URL 而不是远程名称,但是如果您要定期从存储库中提取,则将其添加为远程将节省您的费用很多打字.)

  • 对于本地仓库,您可以使用相同的东西,但将远程路径设置为`file:/// local/path/to/repo/.git /` (15认同)
  • 这对我不起作用,URL 必须是`/path/to/repository/.git/`。 (2认同)

Ant*_*sse 35

看一下 git pull --help

这会有类似的东西 git pull /my/other/repository

  • 具体来说,在*GIT URLS*部分,它说:"对于本地存储库,也由本机git支持,可以使用以下语法:`/ path/to/repo.git /`,`file:/// path /到/ repo.git /`" (7认同)

Mat*_*hen 11

您可以使用git守护程序设置实际服务器.否则,您可以使用git bundle,它将git的内部表示捆绑到一个可以git pull在另一端解除绑定的文件中.

例如,从git docs,捆绑所有东西:

git bundle create file.bundle master
Run Code Online (Sandbox Code Playgroud)

然后,在另一端,您可以执行以下操作:

git pull file.bundle HEAD
Run Code Online (Sandbox Code Playgroud)


Ben*_*ine 7

如果您可以通过ssh连接到计算机B,则可以使用:

git clone user@host:/path/to/repo
Run Code Online (Sandbox Code Playgroud)

它将通过此​​ssh连接启用远程跟踪,并允许您使用git pull/push.