Como faço um push inicial para um repositório remoto com o Git?

Li através de inúmeros tutoriais e continuo a ser breve. Eis o que tenho:

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

Eis o que estou a fazer: 1. No servidor:
         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?

Author: Owen Blacker, 2010-02-25

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.

 289
Author: Josh Lindsey, 2010-02-25 20:27:21

Você tem que adicionar pelo menos um arquivo para o repositório antes de cometer, por exemplo .gitignore.

 4
Author: Benjamin Wohlwend, 2010-02-25 20:19:47

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.
 3
Author: Michael, 2015-04-16 18:57:19

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>
 2
Author: Maria, 2017-06-29 17:43:20

Tem de configurar o repositório remoto do seu cliente:

git remote add origin ssh://myserver.com/path/to/project
 0
Author: Dave Bacher, 2010-02-25 20:20:38
O Josh Lindsey já respondeu perfeitamente. Mas eu quero adicionar algumas informações, já que eu muitas vezes uso ssh.

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.

 0
Author: JWo, 2016-05-31 21:43:24