854 votes

Git pour les débutants : Le guide pratique définitif

Ok, après avoir vu ce message par PJ Hyett j'ai décidé d'aller jusqu'au bout et d'opter pour Git .

Donc ce dont j'ai besoin, c'est d'un guide pour débutants. pratique Guide de Git. "Débutant" étant défini comme quelqu'un qui sait comment manipuler son compilateur, comprend à un certain niveau ce qu'est une Makefile est, et a touché au contrôle de la source sans très bien le comprendre.

"Pratique" étant défini comme la personne qui ne veut pas entrer dans les détails de ce que Git fait en arrière-plan, et qui ne se soucie même pas (ou ne sait pas) qu'il est distribué. Vos réponses pourraient faire allusion aux possibilités, mais essayez de viser le débutant qui veut garder un dépôt "principal" sur un "serveur" qui est sauvegardé et sécurisé, et traiter leur dépôt local comme une simple ressource "client".

Donc :

Installation/Setup

Travailler avec le code

Étiquetage, branchement, versions, lignes de base

Autre

  • Décrivez une bonne interface graphique, un plugin IDE, etc., qui fait de Git une ressource sans ligne de commande, et indiquez ses limites et ses avantages.
    • msysgit - Multiplateforme, inclus avec Git
    • gitk - Visualiseur d'historique multiplateforme, inclus avec Git
    • gitnub - Mac OS X
    • gitx - Visualisation de l'historique de Mac OS X
    • smartgit - Plate-forme croisée, commerciale, bêta
    • tig - console GUI pour Linux
    • qgit - Interface graphique pour Windows, Linux
    • Extensions Git - pour Windows, comprend une interface graphique conviviale
  • Y a-t-il d'autres tâches courantes qu'un débutant devrait connaître ?
  • Comment travailler efficacement avec un dépôt de subversion défini comme source de contrôle des sources ?

Autres références pour les débutants de Git

Se plonger dans Git

Je passerai en revue les entrées de temps en temps et les "nettoierai" pour qu'elles aient un aspect cohérent et qu'il soit facile de parcourir la liste - n'hésitez pas à suivre un modèle simple "en-tête - brève explication - liste d'instructions - problèmes et informations supplémentaires". Je vais également créer un lien vers les entrées de la liste à puces ci-dessus afin qu'il soit facile de les retrouver plus tard.

28voto

Peter Burns Points 17420

git status est votre ami, utilisez-le souvent. Bon pour répondre à des questions comme :

  • Qu'est-ce que cette commande vient de faire ?
  • Sur quelle branche suis-je ?
  • Quels changements suis-je sur le point de commettre, et ai-je oublié quelque chose ?
  • Etais-je en train de faire quelque chose la dernière fois que j'ai travaillé sur ce projet (il y a quelques jours, semaines ou mois) ?

Contrairement à, disons svn status , git status fonctionne en un clin d'œil, même sur les grands projets. J'ai souvent trouvé rassurant pendant l'apprentissage de git de l'utiliser fréquemment, pour m'assurer que mon modèle mental de ce qui se passait était exact. Maintenant, je l'utilise surtout pour me rappeler ce que j'ai changé depuis mon dernier commit.

Évidemment, c'est beaucoup plus utile si votre .gitignore est sainement configuré.

27voto

Adam Davis Points 47683

Engager des changements

Une fois que vous avez édité un fichier, vous devez livrer vos changements à git. Lorsque vous exécutez cette commande, elle vous demandera un message de livraison - qui est juste un simple bout de texte qui dit à tout le monde ce que vous avez changé.

$ git commit source/main.c

Livrera le fichier main.c dans le répertoire ./source/.

$ git commit -a # the -a flag pulls in all modified files

va livrer tous les fichiers modifiés (mais pas les nouveaux fichiers, qui doivent être ajoutés à l'index avec git-add). Si vous ne voulez livrer que certains fichiers, vous devrez d'abord les mettre en scène avec git-add et ensuite livrer sans l'option -a.

Les commits ne modifient que votre dépôt local, mais pas les dépôts distants. Si vous voulez envoyer les commits vers le dépôt distant, vous devrez faire un push.

$ git push <remote> <branch> # push new commits to the <branch> on the <remote> repository

Pour quelqu'un qui vient de CVS ou SVN, c'est un changement puisque le commit vers le dépôt central nécessite maintenant deux étapes.

27voto

Markus Dulghier Points 1227

Comment se ramifie-t-on ?

La branche par défaut dans un dépôt git est appelée master .

Pour créer une nouvelle branche, utilisez

git branch <branch-name>

Pour voir une liste de toutes les branches dans le référentiel actuel, tapez

git branch

Si vous voulez passer à une autre branche, vous pouvez utiliser

git checkout <branch-name>

Pour créer une nouvelle branche et passer à celle-ci en une seule étape

git checkout -b <branch-name>

Pour supprimer une branche, utilisez

git branch -d <branch-name>

Pour créer une branche avec les changements de la branche courante, faites

git stash
git stash branch <branch-name>

21voto

Jeremy Wall Points 10643

Obtenir le dernier code

$ git pull <remote> <branch> # fetches the code and merges it into 
                             # your working directory
$ git fetch <remote> <branch> # fetches the code but does not merge
                              # it into your working directory

$ git pull --tag <remote> <branch> # same as above but fetch tags as well
$ git fetch --tag <remote> <branch> # you get the idea

Cela couvre à peu près tous les cas de figure pour obtenir la dernière copie du code à partir du référentiel distant.

20voto

aldux Points 1128

El Pro Git Le livre libre est définitivement mon préféré, surtout pour les débutants.

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