Como faço um push inicial para um repositório remoto com o Git?
-- estou a correr Rubimina no meu ecrã do Windows
-- Instalei o Git na minha conta de hospedagem WebFaction de acordo com as suas instruções.
-- O Git parece estar a trabalhar bem em ambas as máquinas
A. mkdir projecto
B. git init
C. git add .
D. persistência do git <--- "nada para comprometer" 2. No cliente:
A. criar um novo projeto em RubyMine.
B. "git init" no directório superior do projecto
C. "Push changes" para o servidor < - - - " failed to push some refs to...".
Que passos estou a perder?
6 answers
No servidor:
mkdir my_project.git
cd my_project.git
git --bare init
No cliente:
mkdir my_project
cd my_project
touch .gitignore
git init
git add .
git commit -m "Initial commit"
git remote add origin [email protected]:/path/to/my_project.git
git push origin master
Note que quando você adiciona a origem, existem vários formatos e esquemas que você poderia usar. Recomendo que veja o que o seu serviço de hospedagem oferece.
Você tem que adicionar pelo menos um arquivo para o repositório antes de cometer, por exemplo .gitignore
.
Podes tentar isto:
No Servidor:
Adicionar um novo grupo ao /etc/group
Tipo
(exemplo)
mygroup:1001:michael,nir
Criar um novo repositório git:
mkdir /srv/git
cd /srv/git
mkdir project_dir
cd project_dir
git --bare init (initial git repository )
chgrp -R mygroup objects/ refs/ (change owner of directory )
chmod -R g+w objects/ refs/ (give permission write)
No Cliente:
mkdir my_project
cd my_project
touch .gitignore
git init
git add .
git commit -m "Initial commit"
git remote add origin [email protected]:/path/to/my_project.git
git push origin master
Obrigado Josh Lindsey pelo lado do cliente.
Depois do cliente, faça no servidor estes comandos:
cd /srv/git/project_dir
chmod -R g+w objects/ refs/
Se tiver este erro após o Git puxar:
There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream new origin/<branch>
Tenta:
git push -u origin master
Vai ajudar.
Se o seu projecto não tiver um ramo a montante, isto é, se esta for a primeira vez que o repositório remoto irá saber sobre o ramo criado no seu repositório local, o seguinte comando deverá funcionar.
git push --set-upstream origin <branch-name>
Tem de configurar o repositório remoto do seu cliente:
git remote add origin ssh://myserver.com/path/to/project
Portanto, apenas muda:
git remote add origin [email protected]:/path/to/my_project.git
To:
git remote add origin ssh://[email protected]/path/to/my_project
Note que o cólon entre domínio e caminho já não existe.