web-dev-qa-db-fra.com

Comment faire un push initial vers un référentiel distant avec Git?

J'ai lu d'innombrables tutoriels et je continue à être bref. Voici ce que j'ai

- J'utilise RubyMine sur mon bureau Windows
- J'ai installé Git sur mon compte d'hébergement WebFaction conformément à leur instructions
- Git semble bien fonctionner sur les deux machines

Voici ce que je fais:
1. Sur le serveur:
une. mkdir projet
B. git init
C. git add.
ré. git commit <--- "rien à commettre"
2. Sur le client:
une. Créer un nouveau projet dans RubyMine.
B. "git init" dans le répertoire principal du projet
C. "Push changes" sur le serveur <---- "échec de l'envoi de certaines références à ...".

Quelles sont les étapes qui me manquent?

147
Donald Hughes

Sur le serveur:

mkdir my_project.git
cd my_project.git
git --bare init

Sur le client:

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

Notez que lorsque vous ajoutez l’origine, vous pouvez utiliser plusieurs formats et schémas. Je vous recommande de voir ce que votre service d'hébergement fournit.

350
Josh Lindsey

Vous pouvez essayer ceci:

sur le serveur:

ajout d'un nouveau groupe à /etc/group comme (exemple)

mygroup:1001:michael,nir

créer un nouveau dépôt 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)

sur le client:

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

(Merci Josh Lindsey pour le côté client)

après Client, faites sur le serveur ces commandes:

cd /srv/git/project_dir
chmod -R g+w objects/ refs/

Si vous avez cette erreur après git pull:

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>

essayer:

git Push -u Origin master

Ça aidera.

6
Michael

Vous devez ajouter au moins un fichier au référentiel avant de valider, par exemple. .gitignore .

5
Benjamin Wohlwend

Si votre projet n'a pas de branche en amont, c'est-à-dire s'il s'agit de la toute première fois que le référentiel distant va connaître la branche créée dans votre référentiel local, la commande suivante doit fonctionner.

git Push --set-upstream Origin <branch-name>
2
Maria

@Josh Lindsey a déjà répondu parfaitement bien. Mais je veux ajouter quelques informations puisque j'utilise souvent ssh.

Par conséquent, changez simplement:

git remote add Origin [email protected]:/path/to/my_project.git

à:

git remote add Origin ssh://[email protected]/path/to/my_project

Notez que les deux points entre domaine et chemin ne sont plus là.

1
JWo

Vous devez configurer le référentiel distant sur votre client:

git remote add Origin ssh://myserver.com/path/to/project
0
Dave Bacher