Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从防火墙后面的计算机到远程计算机的git克隆_Git_Ssh_Git Clone - Fatal编程技术网

从防火墙后面的计算机到远程计算机的git克隆

从防火墙后面的计算机到远程计算机的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”

我可以用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 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谢谢,是的,这就是我的意思。