如何将远程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 remote
和git 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