git通过ssh克隆

| 我有一个在其上创建了git存储库的项目:
$ cd myproject  
$ git init  
$ git add .  
$ git commit  
我想在另一台机器上创建一个裸克隆:
$ cd ..  
$ git clone --bare myproject  ssh://user@server:/GitRepos/myproject.git  
我执行了克隆,但未打印任何答案。 我登录到服务器计算机,并尝试查看文件的存储方式。路径/ GitRepos为空,因此我决定再次进行克隆:
$ git clone --bare myproject  ssh://user@server:/GitRepos/myproject.git
这次的答案是:   致命:目标路径\'ssh:// user @ server:/GitRepos/myproject.git \'已经存在,并且不是空目录。 但是我看到那条路是空的。 这里发生了什么 ?     
已邀请:
        这可能与问题没有直接关系。但是我在操作规范中看到的一个错误就是URL规范
ssh://user@server:/GitRepos/myproject.git
,也就是说,在表示绝对路径后,您同时拥有一个冒号
:
和一个正斜杠
/
。 然后,我找到了Git克隆ssh:无法解析主机名git,开发尼古拉斯·库特勒(那是我在
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/
-只是一个冒号(服务器上的相对路径不能为must11ѭ(相对于服务器计算机上的
username
的主目录) 希望这对某人有帮助, 干杯!     
        对于GitHub上的存储库,请尝试:
git clone ssh://git@github.com/<user>/<repository name>.git
要设置git通过ssh进行克隆,请参见: 生成SSH密钥并将您生成的密钥添加到“帐户设置”->“ SSH密钥”中 使用SSH克隆     
        您需要在要调用服务器的服务器上运行clone命令。但是我敢打赌,您不在本地客户端上运行ssh服务器,因此无论如何都无法正常工作。建议您采用这种方法(请检查手册\“因为我正在从内存中执行此操作”) 登录到服务器计算机。 使用ѭ14创建裸仓库 在客户端计算机上,您可以将存储库推送到服务器。
git remote add origin ssh://user@server:/GitRepos/myproject.git
,接着是
git push origin master
    
        免责声明:这只是bobbaluba发表的评论的副本,使以后的访问者更容易看到。它对我的帮助比其他任何答案都大。 以
git clone
为例,必须删除drop11ѭ前缀
git clone git@github.com:owner/repo.git
    
        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://
。)这假定您已经可以从客户端登录到服务器。 (如果您打算将很多内容推送到远程服务器,则您还将获得用于设置配置文件和8英镑密钥的奖励积分。) 一些相关链接: 这几乎可以告诉您您需要了解的内容。 这是给那些了解git基本功能但有时忘记确切语法的人的。     
        预先来说,我的GIT技能有点不足。 这将在您的计算机上克隆一个裸存储库,该存储库仅包含ѭ22内的文件夹,这是一个隐藏目录。执行
ls -al
,您应该在存储库中看到
.git
cd .git
。 您可以添加自己的意图描述,以便具有更多GIT技能的人可以提供帮助吗?您真正想要做的是什么,而不打算如何计划?     
我想尝试一个包含git-flow和三个“点”或用例,git中央存储库,本地开发和生产机器的答案。这没有很好的测试。 我正在给出难以置信的特定命令。我不会说
<your folder>
,而是要说
/root/git
。我唯一更改原始命令的地方是用
example.com
替换我的特定服务器名称。我将解释文件夹的用途,以便您可以相应地进行调整。请让我知道任何混乱,我将更新答案。 服务器上的git版本是1.7.1。服务器是CentOS 6.3(最终版)。 开发机器上的git版本是1.8.1.1。这是Mac OS X 10.8.4。 中央存储库和生产计算机位于同一台计算机上。 svn用户可以将其与\'server \'关联的中央存储库配置如下。我有一个文件夹
/root/git
,其中存放了所有的git存储库。我想为一个名为“ flowers”的项目创建一个git存储库。
cd /root/git
git clone --bare flowers flowers.git
git命令给出了两条消息:
Initialized empty Git repository in /root/git/flowers.git/
warning: You appear to have cloned an empty repository.
完全不用担心。 在开发机器上的配置如下。我有一个文件夹
/home/kinjal/Sites
,用于存放所有项目。我现在想获取中央git存储库。
cd /home/kinjal/Sites
git clone root@example.net:/root/git/flowers.git
这使我可以开始向其中添加内容。我首先设置git flow
git flow init -d
默认情况下,它位于分支“ѭ41”上。我现在在这里添加我的代码。然后,我需要提交到中央git存储库。
git add .
git commit -am \'initial\'
git push
在这一点上,它推到了发展分支。我还要将此添加到master分支。
git flow release start v0.0.0 develop
git flow release finish v0.0.0
git push
请注意,在发布开始和发布完成之间我什么也没做。当我完成发行时,系统提示我编辑两个文件。这将开发分支推向了精通。 在生产站点(与中央git存储库位于同一台机器上)上,我要将存储库放在in44ѭ中。我已经有45英镑了。
cd /var/www/vhosts
git clone file:///root/git/flowers.git example.net
如果生产机器也位于另一台机器上,则
git clone
命令看起来像在开发机器上使用的命令。     
        尝试这个。 步骤1:
ls -al ~/.ssh
第2步:
ssh-keygen 
(使用Enter键作为默认值) 步骤3:设置配置文件
vim /c/Users/Willie/.ssh/config
  主持人gitlab.com   主机名gitlab.com   用户git   IdentityFile〜/ .ssh / id_rsa 步骤4:
git clone git@gitlab.com:<username>/test2.git
步骤5: 完成第4步后 1. test2.git文件将被下载完成 2.您将在〜/ .ssh中获得新文件(known_hosts) PS:我自己创建了id_rsa和id_rsa.ub,并将其交付给Gitlab服务器。使用任何客户端(Windows和Linux)的两个键。     
        我做了: git clone --bare \“ / GITREPOSITORIES / RepoA \” \“ ssh:// luc @ EERSTENASDS119J / volume1 / RepoA \” 结果: 致命:目标路径\'ssh:// luc @ EERSTENASDS119J / volume1 / RepoA \'已经存在,并且不是空目录。 系统在我的当前路径中创建了目录ssh:// luc @ EERSTENASDS119J / volume1 / RepoA。 因此git clone不会解释URL规范。 使用了Alec的解决方法。     
        git clone git @ server:示例/proyect.git     

要回复问题请先登录注册