2

我可以从我的工作机器 ssh 到我的家用机器

这有效

工作$> ssh -x -Y myname@homemachine.dydns.org

现在,如果我想将工作机器上的 git repo 克隆到我的家用机器上。我发出命令

工作$> git clone ~/my_new_work_git_repo myname@homemachine.dydns.org:/home/myname

但这最终会创建一个名为“myname@homemachine.dydns.org”的目录,其子目录为“home”,然后是“myname”。无论我尝试什么 URL 方案 ssh:// 或 rsync://

我究竟做错了什么。我通读了几个似乎相关但无法弄清楚为什么会失败的问题

4

1 回答 1

7

从您的问题中很难判断您要克隆的方向。

如果您的存储库在您的家用机器上,并且您正试图将它克隆到您的工作机器上,那么您的参数顺序会倒退。它是git clone original clone,所以在你的情况下:

git clone myname@homemachine.dydns.org:/home/myname ~/my_new_work_git_repo

如果您的意思是您正在尝试克隆一个正在工作的存储库,以便您可以在您的家庭计算机上拥有它,那么您将需要能够在另一个方向上进行 SSH;从您的家用机器到您的工作机器。您不能通过 SSH “推送”克隆,只能“拉取”(也就是说,您只能在本地机器上创建克隆,无论是从本地仓库还是远程仓库)。

如果你需要从你的工作机器获取 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
于 2011-04-19T22:33:44.303 回答