如何将远程Git存储库添加到Ubuntu服务器?
我已在我的桌面计算机(Windows 7)上创建了一个Git存储库,其中包括: 但我得到了这个错误信息:如何将远程Git存储库添加到Ubuntu服务器?,git,ssh,repository,git-remote,ubuntu-server,Git,Ssh,Repository,Git Remote,Ubuntu Server,我已在我的桌面计算机(Windows 7)上创建了一个Git存储库,其中包括: 但我得到了这个错误信息: 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 fatal: '/home/jonas/code/myproject.git' does not appea
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
fatal: '/home/jonas/code/myproject.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
有什么问题?如何创建远程存储库?
按照PerfectlyNormal的建议,我在地址中添加了一个
:
。现在它工作得更好了,我不得不在服务器上键入密码,但随后我收到了类似的错误消息:
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
fatal: '/home/jonas/code/myproject.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
我必须先初始化服务器上的Git存储库,然后才能
Git推送它吗?
我注意到的第一件事是您缺少一个“:”。应该是git远程添加源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
您是否在远程服务器上设置了存储库?你需要跑步
mkdir -p /home/jonas/code/myproject.git
cd /home/jonas/code/myproject.git
git init --bare
在服务器上进行设置。我建议大家看看如何在免费环境中设置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
我通常在本地创建一个裸存储库,然后在设置远程存储库时将该存储库scp到服务器 比如说,
cd c:\gits
git clone --bare c:\path\to\local\repository\some_project
这会创建一些_project.git
那么
输入您的密码,或者您已经有了公钥/私钥访问权限。请通过查看。给它您首选的远程地址(jonas@192.168.1.10:code/myproject.git
),它将自动通过SSH创建目录,并为您初始化一个空的--bare
存储库。您只需添加git-remote
和git-push
:通过ssh创建新的空远程git存储库
用法:
git-create.bash'jonas@192.168.1.10:code/myproject.git'
git远程添加源'jonas@192.168.1.10:code/myproject.git'
git-push-u源主机
连接您的本地回购。到Git远程服务器Ubuntu
在远程服务器中创建一个用户,并使用ssh-keygen
在本地服务器中,将其.pub
文件粘贴到远程服务器的ssh
服务器
在远程服务器上要做的事情
服务器:XX.XXX.1XX.XX
内部Putty命令行
cd~/srv/git
srvGit init
git-remote-add-origingit@xx.xxx.xxx.xxx:/srv/git/您的文件名
Done
如果您遇到任何问题,请参阅:。谢谢,这似乎有效。但是如何在服务器上签出项目?如果我做了
git status
,那么我会收到一条消息,我必须在“工作树”上,而你不能。远程存储库必须是裸存储库,不能用于处理。有关更多信息,请参阅。如果您希望能够在服务器上处理repo,您还需要在服务器上的另一个目录中签出存储库,并像在另一台计算机上一样使用它(即,您必须像往常一样拉和推)。@andrew marshall这是真的吗?难道他不能在服务器上使用非裸repo,然后推到working dir/.git
?显然,这不是一个典型的设置,但不是吗?如果推送到远程存储库上的分支并在远程计算机上签出,这是可能的,但会导致意外的结果。事实上,我认为git的最新版本(1.7+也许?)甚至不允许您这样做。默认情况下,在非裸回购中推送到签出分支是禁用的。您可以在创建的每个非裸回购中更改设置,但这是默认设置,原因非常充分,除非您确切知道自己在做什么,否则您可能根本不应该尝试。这将在远程服务器上创建一个新的存储库,而不必“在那里”。对我来说很好。在Mac电脑上,格式jonas@192.168.1.10:code/myproject.git
工作正常!
scp -r some_project.git login@some.server:/path/to/remote/gits/.
Done
Done