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

Jon*_*nas 43 git ssh repository ubuntu-server git-remote

我在桌面计算机(Windows 7)上创建了一个Git存储库,其中包含:

git init
git add <all my files>
git commit -m "added my files"
Run Code Online (Sandbox Code Playgroud)

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

我在服务器上安装了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
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

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
Run Code Online (Sandbox Code Playgroud)

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


正如PerfectlyNormal建议的那样,我:在地址中添加了一个.现在它工作得更好,我不得不输入我的密码到服务器,但后来我收到了类似的错误消息:

fatal: '/home/jonas/code/myproject.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

我必须先在服务器上初始化一个Git存储库 git push吗?

Arr*_*ter 43

git remote add origin jonas@192.168.1.10/home/jonas/code/myproject.git
Run Code Online (Sandbox Code Playgroud)

使用SSH时,远程存储库地址可以用两种方式表示.一个使用绝对路径,一个使用来自用户主目录的相对路径.你把它们搞混了.

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

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
Run Code Online (Sandbox Code Playgroud)


And*_*all 31

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

mkdir -p /home/jonas/code/myproject.git
cd /home/jonas/code/myproject.git
git init --bare
Run Code Online (Sandbox Code Playgroud)

在服务器上以设置它.我建议你看一下如何在免费的ProGit书中设置一个git服务器.

  • 你不能.远程存储库必须是裸存储库,不能用于处理.有关详细信息,请参阅[此答案](http://stackoverflow.com/questions/738154/what-does-git-updating-currently-checked-out-branch-warning-mean/738256#738256).如果您希望能够在服务器上处理存储库,您还需要检查服务器上另一个目录中的存储库并使用它,就像您在另一台计算机上一样(即必须拉动和推送)照常). (3认同)
  • @ andrew-marshall这是真的吗?难道他不能在服务器上使用非裸仓库,然后推送到"working-dir/.git"?显然,这不是典型的设置但是不可能吗? (2认同)
  • 它是_possible_但如果您推送到远程计算机上签出的远程存储库上的分支,将导致意外结果.事实上,我不认为最新版本的git(1.7+或许?)甚至会允许你这样做. (2认同)

Per*_*mal 8

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