问题
I have created a Git repository on my Desktop machine (Windows 7) with:
git init
git add <all my files>
git commit -m "added my files"
Now I have installed a new Ubuntu Server 10.10 on a machine on my LAN and installed OpenSSH. My home directory is /home/jonas
and I created a directory ~/code/
to contain my projects. I can log in to the Ubuntu Server from Windows 7 with Putty.
I installed Git on the server with sudo apt-get install git
Adding a remote repository
Now I want to add my Git repository on my Desktop to the Server. I tried to follow the instructions from Pragmatic Version Control Using Git.
From my Desktop I run these commands:
git remote add origin jonas@192.168.1.10/home/jonas/code/myproject.git
git push origin master
But I got this error message:
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
What is the problem? How do I create the remote repository?
As PerfectlyNormal suggested, I added a :
in the address. Now it worked better, and I had to type my password to the server, but then I got a similar error message:
fatal: '/home/jonas/code/myproject.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Do I have to initialize a Git repository on the server before I can git push
to it?
回答1:
Did you setup the repository on the remote server? You need to run
mkdir -p /home/jonas/code/myproject.git
cd /home/jonas/code/myproject.git
git init --bare
on the server in order to set it up. I recommend taking a look at how to setup a git server in the free ProGit book.
回答2:
git remote add origin jonas@192.168.1.10/home/jonas/code/myproject.git
When using SSH, remote repository addresses can be expressed in two ways. One using absolute paths and one using relative paths from the users home directory. You've mixed them up.
The corrected command would be one of the following.
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
回答3:
First thing I notice is that you're missing a ':'. Should be git remote add origin jonas@192.168.1.10:/home/jonas/code/myproject.git
回答4:
I normally create a bare repository locally and then scp that repository to the server when I'm setting up a remote repository.
For example,
cd c:\gits
git clone --bare c:\path\to\local\repository\some_project
which creates some_project.git.
Then,
scp -r some_project.git login@some.server:/path/to/remote/gits/.
enter your password or maybe you already have public/private key access working.
回答5:
you need a colon:
git remote add origin jonas@192.168.1.10/home/jonas/code/myproject.git
should be:
git remote add origin jonas@192.168.1.10:/home/jonas/code/myproject.git
回答6:
Have a look at the handy script git-create.bash by Eike Kettner
. Give it your preferred remote address (jonas@192.168.1.10:code/myproject.git
), and it will automatically SSH in to create the directory and initialize an empty --bare
repository for you. All you need to do is add the git remote
and git push
.
git-create.bash: Create new empty remote git repository via ssh
Usage:
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
回答7:
Connecting your Local Repo. to Git Remote Server Ubuntu
Create a User in remote server and assign permission for ssh access using
ssh-keygen
in your local server and paste, its.pub
file to ssh of the remote server.
Things to do on remote Server
Server : XX.XXX.1XX.XX
Inside Putty command line
Go to location :
cd ~/srv/git
srv in your root directoryMake a folder : mkdir your_file_name followed by cd inside your file inside your git folder
initialize git there : git init --bare
Done
Things to do On Local Machine
create your repository ..
initializing Git:
git init
Create the remote connection :
git remote add origin git@xx.xxx.xxx.xxx:/srv/git/your_file_name
git push.
Done
If you got stuck any point refer :https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server.
来源:https://stackoverflow.com/questions/5136381/how-do-i-add-a-remote-git-repository-to-an-ubuntu-server