如何将远程Git存储库添加到Ubuntu服务器?

我已经在桌面机器(Windows 7)上创build了一个Git仓库:

git init git add <all my files> git commit -m "added my files" 

现在我在局域网上的一台机器上安装了一个新的Ubuntu Server 10.10,并安装了OpenSSH。 我的主目录是/home/jonas ,我创build了一个目录~/code/来包含我的项目。 我可以使用Putty从Windows 7login到Ubuntu服务器。

我用sudo apt-get install git在服务器上sudo apt-get install git

添加远程存储库

现在我想将我的桌面上的Git存储库添加到服务器。 我试图按照从使用Git的语用版本控制的指示。

从我的桌面我运行这些命令:

 git remote add origin jonas@192.168.1.10/home/jonas/code/myproject.git git push origin master 

但是我得到了这个错误信息:

 fatal: 'jonas@192.168.1.180/home/jonas/code/myproject.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly 

问题是什么? 我如何创build远程存储库?


正如PerfectlyNormal所build议的那样,我在地址中添加了一个: 现在,它运行得更好了,我不得不input我的密码到服务器,但是我得到了类似的错误信息:

 fatal: '/home/jonas/code/myproject.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly 

我必须在服务器上初始化一个Git仓库之前,我可以git push它?

您是否在远程服务器上设置了存储库? 你需要运行

 mkdir -p /home/jonas/code/myproject.git cd /home/jonas/code/myproject.git git init --bare 

在服务器上进行设置。 我build议看看如何在免费的ProGit书中设置一个git服务器。

 git remote add origin jonas@192.168.1.10/home/jonas/code/myproject.git 

使用SSH时,可以用两种方式表示远程存储库地址。 一个使用绝对path,另一个使用用户主目录中的相对path。 你把他们搞混了

更正的命令将是以下之一。

 git remote add origin jonas@192.168.1.10:code/myproject.git git remote add origin ssh://jonas@192.168.1.10/home/jonas/code/myproject.git 

我注意到的第一件事是你错过了一个':'。 应该是git remote add origin jonas@192.168.1.10:/home/jonas/code/myproject.git

你需要冒号:

 git remote add origin jonas@192.168.1.10/home/jonas/code/myproject.git 

应该:

 git remote add origin jonas@192.168.1.10:/home/jonas/code/myproject.git 

我通常在本地创build一个裸存储库,然后在设置远程存储库时将该存储库scp到服务器。

例如,

 cd c:\gits git clone --bare c:\path\to\local\repository\some_project 

创buildsome_project.git。

然后,

 scp -r some_project.git login@some.server:/path/to/remote/gits/. 

input你的密码,或者你已经有公共/私人密钥访问工作。

看看Eike Kettner 的方便的脚本git-create.bash 。 给它你喜欢的远程地址( jonas@192.168.1.10:code/myproject.git ),它会自动SSH进入创build目录并为你初始化一个空的仓库。 所有你需要做的就是添加git remotegit push

git-create.bash :通过ssh创build新的空的远程git仓库

用法:

 git-create.bash 'jonas@192.168.1.10:code/myproject.git' git remote add origin 'jonas@192.168.1.10:code/myproject.git' git push -u origin master