2

仕事用のマシンから自宅のマシンにSSH接続できます

これは動作します

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

ここで、作業マシンのgitリポジトリを自宅のマシンに複製したい場合。コマンドを発行します

Work $> git clone〜/ my_new_work_git_repo myname@homemachine.dydns.org:/ home / myname

ただし、これにより、mYワークマシン上にサブディレクトリ「home」、次に「myname」を含む「myname@homemachine.dydns.org」という名前のディレクトリが作成されます。リポジトリは、ssh://またはrsync://を試したURLスキームに関係なく、ローカルのWorkマシン上のこのばかげた名前のディレクトリにクローンを取得します。

私は何を間違っているのですか。関連しているように見えたが、なぜこれが失敗するのか理解できないいくつかの質問を読みました

4

1 に答える 1

7

クローンを作成しようとしている方向を質問から判断するのは少し難しいです。

リポジトリがホームマシン上にあり、それをワークマシンに複製しようとしている場合は、引数の順序が逆になります。そうです、あなたのgit clone original clone場合:

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

稼働中のリポジトリのクローンを作成しようとしているので、それをホームマシンに置くことができる場合は、他の方向にSSHで接続できる必要があります。自宅の機械から作業用の機械まで。SSH経由でクローンを「プッシュ」することはできません。「プル」することしかできません(つまり、ローカルまたはリモートのリポジトリからローカルマシンにのみクローンを作成できます)。

作業マシンからホームマシンにリポジトリを取得する必要があるが、ホームマシンから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 に答える