[英]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 push
和git 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.