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

时间:2011-02-27 22:12:50

标签: git ssh repository git-remote ubuntu-server

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

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

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

我使用sudo apt-get install git

在服务器上安装了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

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


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

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

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

7 个答案:

答案 0 :(得分:42)

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

使用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

答案 1 :(得分:31)

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

mkdir -p /home/jonas/code/myproject.git
cd /home/jonas/code/myproject.git
git init --bare
在服务器上

以进行设置。我建议您看看如何使用免费ProGit book设置git服务器。

答案 2 :(得分:8)

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

答案 3 :(得分:3)

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

例如,

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

创建some_project.git。

然后,

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

输入您的密码,或者您已经可以使用公钥/私钥访问。

答案 4 :(得分:2)

你需要冒号:

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

答案 5 :(得分:0)

the handy script git-create.bash查看Eike Kettner 。为它提供首选的远程地址(jonas@192.168.1.10:code/myproject.git),它将自动SSH并创建目录并为您初始化一个空的--bare存储库。您只需添加git remotegit push

即可
  

git-create.bash:通过ssh

创建新的空远程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

答案 6 :(得分:0)

  

连接本地存储库。到Git远程服务器Ubuntu

     

在远程服务器中创建一个用户,并使用ssh-keygen分配ssh访问权限   在本地服务器中并将其.pub文件粘贴到远程服务器的ssh   服务器。

在远程服务器上要做的事情

服务器:XX.XXX.1XX.XX

内部腻子命令行

  1. 转到位置:您根目录中的cd ~/srv/git srv

  2. 创建一个文件夹:mkdir your_file_name,后跟cd进入文件 git文件夹内

  3. 在那里初始化git:git init --bare

       Done
    

在本地计算机上要做的事情

  1. 创建您的存储库..

  2. 初始化Git:git init

  3. 创建远程连接:git remote add origin git@xx.xxx.xxx.xxx:/srv/git/your_file_name

  4. git push。

        Done
    

如果遇到任何问题,请参考:https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server