繁体   English   中英

如何从另一台计算机的git存储库中获取文件

[英]How to get files from a git repository from another computer

我是git的新手,并且在我的笔记本电脑上(正在运行Windows,我们称其为Laptop A)是我按照本指南在项目文件夹中设置了git存储库。 现在,在我的笔记本电脑B上,我也想访问该存储库,以便我可以检出文件,使用它们,然后将其上传回存储库。 我的理解是,我在笔记本电脑A本地有一个存储库,那么我需要做些什么才能访问它(如果可能)? 我发现了一些类似问题的帖子,但是我相信他们正在解决Linux计算机上的问题-在某些时候我将不得不做。 笔记本电脑A和B在同一网络上,但这相关吗? 有时它们可​​能在不同的网络上。 我仍在研究git,因此,抱歉,如果我说的是完全不切实际的话

Git通过remote子命令与同一存储库的其他副本通信。 设置遥控器时,请给完整路径起一个假名(其中最常见的是“来源”)。

git remote add <pseudonym> <actual-path>

您可以使遥控器通过各种协议进行通信,包括简单的文件路径。 例如:

git remote add laptop-a //laptop-b/path/to/repository

使用此方法时,将笔记本电脑B与笔记本电脑A上所做的更改同步,需要您在笔记本电脑B上发出以下命令:

git pull laptop-a <branch-name>

但是,如果该路径并非始终可用,则最好在网络上拥有其他版本的存储库副本,以便双方都能始终看到它并在必要时与其进行同步。 因此,我们无需在笔记本电脑B上直接链接到laptop-a电脑-a,而是可以在网络上的其他位置创建另一个副本,并在B上创建指向该laptop-a链接。

git remote add origin http://domain.com/path/to/repository

在A上,使用相同的命令。

然后,当您要在A上进行更改后要在笔记本A和笔记本B之间进行同步时,请在A上发出此消息:

git push origin <branch-name>

在B上:

git pull origin <branch-name>

请注意,如果您要在笔记本电脑A和笔记本电脑B的原始存储库上跟踪相同的分支,可以将上述命令分别简化为git pushgit pull

除了Jeremy Fortune的出色回答外,我还要补充一点,Git还具有另一种机制,可以在同一网络上的机器之间共享存储库,这就是git daemon命令。

您可以在此处阅读合理的教程以助您快速入门。 如果您决定采用这种方式,则在线上还有更多示例,以及有关此网站的问题,可帮助您进行设置。 请注意,这并不是要将您的存储库托管为服务器,而是最常用于快速共享存储库,但这并不是您的问题,因此应该可以。

编辑1:Git服务器建议

如果有人在看这个问题并且对托管自己的Git服务器感兴趣,那么我建议您查找GitLab

编辑2:通过SSH进行Git

我还要补充一点, Git可以理解一些协议,但是我个人最喜欢的是SSH。 如果您在远程计算机上运行SSH守护程序 ,则可以直接在SSH上直接进行访存,而无需进行其他任何设置( 也有适用于Windows的SSH守护程序 )。

git fetch <username>@<hostname>:<path-to-repository> 'refs/heads/:refs/remotes/<repo-B>'

<username><hostname><path-to-repository><repo-B>替换为适当的值,它应该可以工作。 因此,如果我们使用您示例中的术语,它将是:

git fetch antobbo@laptop-B:/repos/repo-B 'refs/heads/:refs/remotes/repo-B'

请注意,您可能需要在其前面加上ssh://但从个人经验来看,Git还是会弄清楚它。

现在,您可以将该存储库的网络位置保存为一个远程命令,从而简化了命令,就像Jeremy Fortune在他的回答中提到的那样。

git remote add repo-b antobbo@laptop-B:/repos/repo-B
git fetch repo-b  # note that you don't need a refspec now

有关远程控制的更多信息: Atlassian有一个出色的教程GitHub也有Git本身也有 这3个几乎是Git教程的入门之选。

像这样使用git fetch会提示您输入密码,除非您已经设置了authorized_keys文件

如果要从中fetch的计算机(需要SSH守护程序的计算机)是Linux计算机,则此设置非常容易,但是我没有在Windows或Mac OS X计算机上尝试过,因此我无法说它有多容易还是很难。 我已经在Linux和Windows (但不是在Mac)上都使用过Git守护程序 ,并且知道它很容易,所以我建议即使完全不确定也要使用它。

我在Google上发现的大多数信息似乎都旨在建立一个成熟的Git服务器,而我仅设法找到了与上述示例相同的用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM