228 votes

Comment faire une première poussée vers un dépôt distant avec Git ?

J'ai lu d'innombrables tutoriels et je n'arrive toujours pas à les suivre. Voici ce que j'ai :

  • Je fais tourner RubyMine sur mon ordinateur de bureau Windows.
  • J'ai installé Git sur mon compte d'hébergement WebFaction conformément à leur instructions
  • Git semble fonctionner correctement sur les deux machines.

Voici ce que je fais :

  1. Sur le serveur :
    • mkdir project
    • git init
    • git add .
    • git commit #==> nothing to commit
  2. Sur le client :
    • Créer un nouveau projet dans RubyMine
    • Git init dans le répertoire principal du projet
    • Modifications de la poussée au serveur #==> failed to push some refs to...

Quelles sont les étapes manquantes ?

495voto

Josh Lindsey Points 2298

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 youruser@yourserver.com:/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 propose.

10voto

Maria Points 81

Si votre projet n'a pas de branche amont, c'est-à-dire si c'est la première fois que le dépôt distant est informé de la branche créée dans votre dépôt local, la commande suivante devrait fonctionner.

git push --set-upstream origin <branch-name>

8voto

Michael Points 299

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 youruser@yourserver.com:/path/to/my_project.git
git push origin master

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

après Client, faire sur Serveur cette commande :

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

Si j'ai obtenu 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

Cela aidera.

7voto

Benjamin Wohlwend Points 14976

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

4voto

JWo Points 183

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

Il suffit donc de changer :

git remote add origin youruser@yourserver.com:/path/to/my_project.git

à :

git remote add origin ssh://youruser@yourserver.com/path/to/my_project

Notez que les deux points entre le domaine et le chemin n'existent plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X