从防火墙后面的计算机到远程计算机的git克隆
我可以用ssh从我的工作机器连接到我的家庭机器 这很有效 工作$>ssh-x-Ymyname@homemachine.dydns.org 现在,如果我想将我工作机器上的git回购克隆到我的家庭机器上。我发出命令 Work$>git clone~/my\u new\u Work\u git\u repomyname@homemachine.dydns.org:/home/myname 但最终会创建一个名为“myname@homemachine.dydns.org在我的工作机器上有子目录“home”和“myname”。无论我尝试ssh://或rsync的URL方案是什么,repo都会将克隆获取到本地工作机器上的这个愚蠢的命名目录://从防火墙后面的计算机到远程计算机的git克隆,git,ssh,git-clone,Git,Ssh,Git Clone,我可以用ssh从我的工作机器连接到我的家庭机器 这很有效 工作$>ssh-x-Ymyname@homemachine.dydns.org 现在,如果我想将我工作机器上的git回购克隆到我的家庭机器上。我发出命令 Work$>git clone~/my\u new\u Work\u git\u repomyname@homemachine.dydns.org:/home/myname 但最终会创建一个名为“myname@homemachine.dydns.org在我的工作机器上有子目录“home”
我做错了什么。我通读了几个似乎相关的问题,但无法找出失败的原因从你的问题中很难判断你试图克隆的方向 如果您的存储库位于您的家庭计算机上,并且您正试图将其克隆到您的工作计算机上,那么您的参数顺序是向后的。它是git clone original clone,因此在您的情况下:
git clone myname@homemachine.dydns.org:/home/myname ~/my_new_work_git_repo
如果您的意思是您正试图克隆一个正在工作的存储库,以便可以在您的家庭计算机上使用它,那么您将需要能够在另一个方向上使用SSH;从家用机器到工作机器。您不能通过SSH“推送”克隆,只能“拉送”(即,您只能在本地计算机上从本地或远程repo创建克隆)
如果您需要将repo从您的工作机器获取到您的家庭机器,但无法从您的家庭机器SSH进入,那么您可以只克隆到一个新的裸存储库,然后将其scp
复制到您的家庭机器。现在,当您在家时,您可以克隆裸存储库,使用它,推送到它,等等。当你在工作时,你可以从它拉,推,等等
下面是一个如何工作的示例:
Work$> git clone --bare ~/my_work_repo repo.git
Work$> scp -r repo.git myname@homemachine.dydns.org:/home/myname
Work$> git remote add home myname@homemachine.dydns.org:/home/myname/repo.git
Home$> git clone repo.git my_home_repo
Home$> cd my_home_repo
Home$> # edit, commit, etc
Home$> git push origin
Work$> git remote update
Work$> git pull home master
感谢Brian:“你不能通过SSH“推”克隆,你只能“拉”(也就是说,你只能在本地机器上创建克隆,无论是从本地还是远程repo)。”这就是我想要的答案。我已经重新同步了我的回购,并将按照您的工作流程保持同步,因为文件夹需要递归传输。(stackoverflow不允许编辑1个字符)@flurdy谢谢,是的,这就是我的意思。