我有一个项目,我在其上创建了一个git存储库:
$ cd myproject
$ git init
$ git add .
$ git commit
Run Code Online (Sandbox Code Playgroud)
我想在另一台机器上创建一个裸克隆:
$ cd ..
$ git clone --bare myproject ssh://user@server:/GitRepos/myproject.git
Run Code Online (Sandbox Code Playgroud)
我执行了克隆但没有打印任何答案.我登录到服务器计算机并尝试查看文件的存储方式.路径/ GitRepos是空的,所以我决定再次进行克隆:
$ git clone --bare myproject ssh://user@server:/GitRepos/myproject.git
Run Code Online (Sandbox Code Playgroud)
这一次答案是:
致命:目标路径'ssh:// user @ server:/GitRepos/myproject.git'已经存在且不是空目录.
但我看到路径是空的.
这里发生了什么 ?
sda*_*aau 200
这可能与问题无直接关系; 但是我自己做的一个错误,我在OP中看到的是URL规范ssh://user@server:/GitRepos/myproject.git- 也就是说,你有一个冒号:,并且/在它表示绝对路径之后有正斜杠.
然后我找到了Git克隆,ssh:无法解析主机名 - git,开发 - Nicolas Kuttler(因为这是我得到的错误,git版本1.7.9.5),注意到:
我最初使用的命令的问题是我尝试使用类似scp的语法.
......这也是我的问题!因此,基本上在git与ssh,你要么使用
ssh://username@host.xz/absolute/path/to/repo.git/ - 只是服务器上绝对路径的正斜杠username@host.xz:relative/path/to/repo.git/- 只是冒号(它必须没有ssh://服务器上的相对路径(相对于username服务器机器上的主目录)希望这有助于某人,
干杯!
小智 125
对于GitHub上的存储库,请尝试:
git clone ssh://git@github.com/<user>/<repository name>.git
Run Code Online (Sandbox Code Playgroud)
要设置git以通过ssh克隆,请参阅:
Ale*_*eek 43
您需要在要调用服务器的内容上运行clone命令.但我敢打赌你没有在你的本地客户端上运行ssh服务器,所以无论如何都无法运行.建议你遵循这种方法(检查手册'因为我是从记忆中做这个)
git init --bare git remote add origin ssh://user@server:/GitRepos/myproject.git其次是git push origin masterWil*_*eng 19
解决这个问题的简单方法
试试这个。
第1步:
ls -al ~/.ssh
Run Code Online (Sandbox Code Playgroud)
第2步:
ssh-keygen
Run Code Online (Sandbox Code Playgroud)
vim /c/Users/Willie/.ssh/config
Run Code Online (Sandbox Code Playgroud)
主机 gitlab.com 主机名
gitlab.com
用户 git
IdentityFile ~/.ssh/id_rsa
第四步:
git clone git@gitlab.com:<username>/test2.git
Run Code Online (Sandbox Code Playgroud)
第 5 步:
完成第 4 步后
1.test2.git 文件将下载完成
2.您将在 ~/.ssh 中获得新文件(known_hosts)

PS: id_rsa 和 id_rsa.ub 是我自己创建的,然后提交到 Gitlab 服务器。对任何客户端(Windows 和 Linux)使用这两个密钥。
Git 101:
git是一个分散的版本控制系统。您不需要服务器即可启动并使用git运行。看起来还不错,您可能还是想这样做,对吗?(如果要在多台计算机上处理单个项目,这也很有用。)
因此,要使“服务器”运行,您需要先运行,git init --bare <your_project>.git因为这将创建一个空的存储库,然后您可以将其导入计算机中,而无需在.git目录中的配置文件中随意修改。
此后,您可以在应该工作的客户端上克隆存储库,但是我发现某些客户端(即git-gui)将无法克隆完全为空的存储库。要解决此问题,您需要运行cd <your_project>.git && touch <some_random_file> && git add <some_random_file> && git commit && git push origin master。(请注意,如果您以前没有这样做,则可能需要为该机器的git配置用户名和电子邮件。实际运行的命令将出现在您收到的错误消息中,因此我将省略它们。)
因此,此时您只需运行即可将存储库克隆到任何计算机git clone <user>@<server>:<relative_path><your_project>.git。(正如其他人指出的那样,ssh://如果您使用绝对路径,则可能需要给它加上前缀。)这假设您已经可以从客户端登录到服务器。(ssh如果您打算将大量内容推送到远程服务器,则您还将获得用于设置配置文件和密钥的奖励积分。)
一些相关的链接:
这几乎告诉您您需要了解的内容。
这是给那些了解git基本功能但有时忘记确切语法的人的。
免责声明:这只是bobbaluba发表的评论的副本,使以后的访问者更容易看到。它对我的帮助比其他任何答案都大。
作为示例ssh://时,必须删除前缀git clone
git clone git@github.com:owner/repo.git
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
661473 次 |
| 最近记录: |