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.

118voto

dbr Points 66401

Comment créer un nouveau projet/dépôt ?

Un dépôt git est simplement un répertoire contenant un fichier spécial .git répertoire.

C'est différent des systèmes de contrôle de version "centralisés" (comme subversion), où un "référentiel" est hébergé sur un serveur distant, que vous checkout dans un répertoire "working copy". Avec git, votre copie de travail es le dépôt.

Il suffit de courir git init dans le répertoire qui contient les fichiers que vous souhaitez suivre.

Par exemple,

cd ~/code/project001/
git init

Cela crée un .git (caché) dans le répertoire courant.

Pour créer un nouveau projet, exécutez git init avec un argument supplémentaire (le nom du répertoire à créer) :

git init project002

(This is equivalent to: mkdir project002 && cd project002 && git init)

Pour vérifier si le chemin actuel se trouve dans un dépôt git, il suffit d'exécuter git status - si ce n'est pas un dépôt, il signalera "fatal : Not a git repository".

Vous pouvez également énumérer les .git et vérifiez qu'il contient des fichiers/répertoires similaires aux suivants :

$ ls .git
HEAD         config       hooks/       objects/
branches/    description  info/        refs/

Si, pour une raison quelconque, vous souhaitez "dé-giter" un dépôt (vous souhaitez arrêter d'utiliser git pour suivre ce projet). Il suffit de supprimer le .git au niveau de base du référentiel.

cd ~/code/project001/
rm -rf .git/

Attention : Cela va détruire tous l'historique des révisions, tous vos étiquettes, tout git a fait. Il ne touchera pas les fichiers "actuels" (les fichiers que vous pouvez voir actuellement), mais les changements précédents, les fichiers supprimés, etc. seront irrécupérables !

110voto

dylanfm Points 4668

GUIs pour git


Git GUI

Inclus avec git - Exécuter git gui à partir de la ligne de commande, et le programme Windows msysgit l'installateur l'ajoute au menu Démarrer.

L'interface graphique de Git peut faire la majorité de ce que vous avez besoin de faire avec git. Y compris la mise en scène des changements, la configuration de git et des dépôts, la poussée des changements, la création/le contrôle/la suppression de branches, la fusion et bien d'autres choses.

L'une de mes fonctions préférées est le raccourci "stage line" et "stage hunk" dans le menu du clic droit, qui vous permet de valider des parties spécifiques d'un fichier. Vous pouvez faire la même chose avec git add -i mais je le trouve plus facile à utiliser.

Ce n'est pas l'application la plus jolie, mais elle fonctionne sur presque toutes les plateformes (étant basée sur Tcl/Tk).

Captures d'écran | un screencast


GitK

Également inclus dans git. Il s'agit d'un visualiseur de l'historique de git, qui vous permet de visualiser l'historique d'un dépôt (y compris les branches, quand elles sont créées et fusionnées). Vous pouvez voir et rechercher des commits.

Se marie bien avec git-gui.


Gitnub

Application Mac OS X. Principalement un équivalent de git log mais a une certaine intégration avec github (comme la "Vue réseau").

Il est joli et s'adapte à Mac OS X. Vous pouvez effectuer des recherches dans les dépôts. La plus grande critique de Gitnub est qu'il montre l'historique de façon linéaire (une seule branche à la fois) - il ne visualise pas les branchements et les fusions, ce qui peut être important avec git, bien que ce soit une amélioration prévue.

Liens de téléchargement, journal des modifications et captures d'écran | Dépôt git


GitX

A l'intention d'être un "clone de gitk pour OS X".

Il permet de visualiser l'historique des branchements non linéaires, d'effectuer des commits, de visualiser et de rechercher des commits, et il possède d'autres fonctionnalités intéressantes comme la possibilité de "Quicklook" de n'importe quel fichier dans n'importe quelle révision (en appuyant sur l'espace dans la vue de la liste des fichiers), d'exporter n'importe quel fichier (par glisser-déposer).

Il est bien mieux intégré à OS X que git-gui / gitk Il est rapide et stable, même avec des référentiels exceptionnellement volumineux.

Le dépôt git d'origine pieter n'a pas été mis à jour récemment (plus d'un an au moment de la rédaction). Une branche plus activement maintenue est disponible à l'adresse brotherbard/gitx - Il ajoute "sidebar, fetch, pull, push, add remote, merge, cherry-pick, rebase, clone, clone to".

Télécharger | Captures d'écran | Dépôt git | fourchette à barbe | fourchette de laullon


SmartGit

Depuis la page d'accueil :

SmartGit est un frontal pour le système de contrôle de version distribué Git et fonctionne sous Windows, Mac OS X et Linux. SmartGit est destiné aux développeurs qui préfèrent une interface graphique graphique plutôt qu'un client en ligne de commande, pour être encore plus productifs avec Git - le DVCS le plus puissant du moment.

Vous pouvez le télécharger à partir de leur site internet .

Télécharger


TortoiseGit

Version de TortoiseSVN Git pour les utilisateurs de Windows.

Il s'agit du portage de TortoiseSVN vers TortoiseGit La dernière version 1.2.1.0 Cette version peut accomplir des tâches régulières, comme commiter, montrer le journal, différer deux versions, créer une branche et une étiquette, créer un patch et ainsi de suite. Voir ReleaseNotes pour les détails. Bienvenue pour contribuer à ce projet.

Télécharger


QGit

QGit est un visualiseur GUI de git construit sur Qt/C++.

Avec qgit, vous pourrez parcourir l'historique des révisions, voir le contenu des patchs et les fichiers modifiés, en suivant graphiquement suivre les différentes branches de développement de développement.

Télécharger


gitg

gitg est un visualisateur de dépôt git ciblant gtk+/GNOME. Un de ses principaux objectifs est de fournir une expérience utilisateur plus unifiée pour les sur plusieurs postes de travail. Il fait cela non pas en écrivant une application multiplateforme, mais en étroite collaboration avec des clients similaires clients pour d'autres systèmes d'exploitation (comme GitX pour OS X).

Caractéristiques

  • Parcourir l'historique des révisions.
  • Gérer de grands dépôts (charger un dépôt linux, 17000+ révisions, moins d'une seconde).
  • Changements d'engagement.
  • Mettez en scène et désarticulez les individus.
  • Annulez les changements.
  • Afficher les différences colorées des changements dans les révisions.
  • Arbre de navigation pour une révision donnée.
  • Exporte des parties de l'arbre d'une révision donnée.
  • Fournir une spécification de référence qu'une commande telle que 'git log' peut comprendre pour construire l'historique.
  • Afficher et passer d'une branche à l'autre dans la vue historique.

Télécharger : libère o fuente


Gitbox

Gitbox est une interface graphique pour Mac OS X. pour le système de contrôle de version Git système. Dans une seule fenêtre, vous voyez les branches, l'historique et le de travail.

Les opérations quotidiennes sont simples : il suffit de cocher et déstocker les changements à l'aide d'une case à cocher. Commit, pull, merge et push d'un simple un seul clic. Double-cliquez sur un changement pour pour afficher une différence avec FileMerge.app.

Télécharger


Gity

Le site Web de Gity ne contient pas beaucoup d'informations, mais d'après les captures d'écran, il semble s'agir d'un gui git open source pour OS X riche en fonctionnalités.

Télécharger o fuente


Meld

Meld est un outil visuel de comparaison et de fusion. Vous pouvez comparer deux ou trois fichiers et les modifier sur place (les différences se mettent dynamiquement). Vous pouvez comparer deux ou trois dossiers et lancer des comparaisons et lancer des comparaisons de fichiers. Vous pouvez parcourir et visualiser une copie de travail à partir de systèmes de populaires tels que CVS, Subversion, Bazaar-ng et Mercurial [ et Git ].

Téléchargements


Katana

Une interface graphique Git pour OSX par Steve Dekorte.

D'un coup d'œil, voyez quelles branches distantes ont des changements à tirer et les dépôts locaux ont des changements à pousser. Les opérations git de add, commit, push, pull, tag et reset sont supportées ainsi que les diffs visuels et la navigation visuelle dans la hiérarchie des projets qui met en évidence les changements et les ajouts locaux.

Gratuit pour 1 dépôt, 25 $ pour plus.

Télécharger


Sprout (anciennement GitMac)

L'objectif est de rendre Git facile à utiliser. Il offre une interface utilisateur native Cocoa (semblable à celle de Mac), une navigation rapide dans les dépôts, le clonage, le push/pull, le branching/merging, le visual diff, les branches distantes, un accès facile au Terminal, etc.

En rendant les actions Git les plus couramment utilisées intuitives et faciles à exécuter, Sprout (anciennement GitMac) rend Git convivial. Compatible avec la plupart des flux de travail Git, Sprout est idéal pour les concepteurs et les développeurs, la collaboration en équipe et les utilisateurs avancés ou novices.

Télécharger | Site web


Tour

Une interface graphique Git riche en fonctionnalités pour Mac OSX. Essai gratuit de 30 jours, $59USD pour une licence monoposte.

Télécharger | Site web


EGit

EGit est un fournisseur de l'équipe Eclipse pour le système de contrôle de version Git. Git est un SCM distribué, ce qui signifie que chaque développeur dispose d'une copie complète de l'historique de chaque révision du code, ce qui rend les requêtes contre l'historique l'historique très rapides et polyvalentes.

Le projet EGit met en œuvre l'outillage Eclipse au-dessus de l'implémentation Java de JGit. implémentation Java de Git.

Télécharger | Site web


Extensions Git

Open Source pour Windows - installe tout ce dont vous avez besoin pour travailler avec Git dans un seul paquet, facile à utiliser.

Git Extensions est une boîte à outils qui rend le travail avec Git sur Windows plus intuitif. L'extension shell s'intègre à l'explorateur Windows et présente un menu contextuel sur les fichiers et les répertoires. Il existe également un plugin Visual Studio pour utiliser git depuis Visual Studio.

Télécharger

Un grand merci à dbr pour avoir donné des précisions sur le gui git.


SourceTree

SourceTree est un gratuit Client Mac pour Git, Mercurial et SVN. Construit par Atlassian, les gens derrière BitBucket, il semble fonctionner aussi bien avec n'importe quel système VC, ce qui vous permet de maîtriser un seul outil à utiliser avec tous vos projets, quelle que soit la manière dont ils sont contrôlés par les versions. Plein de fonctionnalités, et GRATUIT.

Prêt à l'emploi et doté de nombreuses fonctionnalités pour les utilisateurs novices et avancés :

Examiner les changesets sortants et entrants. Cherry-picking entre les branches. Gestion des patchs, rebase, stash / shelve et bien plus encore.

Télécharger | Site web


59voto

Pat Notz Points 46841

Bien que vous ayez demandé que nous ne fassions pas "simplement" des liens vers d'autres ressources, c'est plutôt stupide lorsqu'il existe déjà une ressource développée par la communauté (et qui ne cesse de croître) et qui est vraiment très bonne : la Livre de la communauté Git . Sérieusement, ces 20+ questions dans une question vont être tout sauf concises et cohérentes. Le livre de la communauté Git est disponible à la fois en HTML et en PDF et répond à bon nombre de vos questions avec des réponses claires, bien formatées et revues par des pairs, dans un format qui vous permet de passer directement au problème qui vous préoccupe.

Hélas, si mon message vous dérange vraiment, je le supprimerai. Il suffit de le dire.

56voto

Brian Gianforcaro Points 11985

Comment le configurer pour qu'il ignore les fichiers :

La possibilité pour git d'ignorer les fichiers que vous ne souhaitez pas qu'il suive est très utile.

Pour ignorer un fichier ou un ensemble de fichiers, vous devez fournir un modèle. La syntaxe des motifs pour git est assez simple, mais puissante. Elle est applicable aux trois différents fichiers que je vais mentionner ci-dessous.

  • Une ligne blanche n'ignore aucun fichier, elle est généralement utilisée comme séparateur.
  • Lignes de regard avec # servent de commentaires.
  • El ! Le préfixe est facultatif et annulera le motif. Tout motif négationniste qui correspond à une correspondance remplacera les motifs de priorité inférieure.
  • Prise en charge des expressions avancées et des caractères génériques
    • Ex : Le motif : *. [oa] ignorera tous les fichiers du référentiel se terminant par .o ou .a (fichiers d'objets et d'archives).
  • Si un motif comporte un répertoire se terminant par un slash, git ne correspondra qu'à ce répertoire et aux chemins situés en dessous. Cela exclut les fichiers réguliers et les liens symboliques de la correspondance.
  • Un slash en tête correspondra à tous les fichiers de ce nom de chemin.
    • Ex : Le motif /*.c correspondra au fichier foo.c mais pas bar/awesome.c

Grand exemple de la gitignore(5) page de manuel :

$ git status
[...]
# Untracked files:
[...]
#       Documentation/foo.html
#       Documentation/gitignore.html
#       file.o
#       lib.a
#       src/internal.o
[...]
$ cat .git/info/exclude
  # ignore objects and archives, anywhere in the tree.
  *.[oa]
$ cat Documentation/.gitignore
# ignore generated html files,
*.html
# except foo.html which is maintained by hand
!foo.html
$ git status
[...]
# Untracked files:
[...]
#       Documentation/foo.html
[...]

En général, il y a trois façons différentes d'ignorer les fichiers non suivis.

1) Ignorer pour tous les utilisateurs du référentiel :

Ajoutez un fichier nommé .gitignore à la racine de votre copie de travail.

Modifier .gitignore pour correspondre à vos préférences concernant les fichiers à ignorer ou non.

git add .gitignore

et engagez-vous quand vous avez terminé.

2) Ignorer pour seulement votre copie du référentiel :

Ajouter/modifier le fichier $GIT_DIR/info/exclude dans votre copie de travail, avec vos modèles préférés.

Ex : Ma copie de travail est ~/src/project1 donc j'éditerai ~/src/projet1/.git/info/exclude

C'est fait !

3) Ignorer dans toutes les situations, sur votre système :

Les modèles d'ignorance globale pour votre système peuvent être placés dans un fichier nommé comme vous le souhaitez.

Le mien, personnellement, s'appelle ~/.gitglobalignore

Je peux ensuite indiquer à git l'existence de ce fichier en éditant mon fichier ~/.gitconfig avec la ligne suivante :

core.excludesfile = ~/.gitglobalignore

C'est fait !

Je trouve le gitignore La page de manuel est la meilleure ressource pour plus d'informations.

47voto

dbr Points 66401

Comment "étiqueter" un ensemble particulier de révisions ?

Comment " marquer ", " étiqueter " ou " libérer " un ensemble particulier de révisions pour un ensemble particulier de fichiers afin de pouvoir toujours les récupérer plus tard ?

Utilisation de la git tag commandement.

Pour simplement "marquer" la révision en cours, il suffit de lancer

git tag -a thetagname
git tag -a 0.1
git tag -a 2.6.1-rc1 -m 'Released on 01/02/03'

Pour lister les balises actuelles, il suffit d'exécuter git tag sans argument, ou -l (L minuscule) :

$ git tag -a thetagname # and enter a message, or use -m 'My tag annotation'
$ git tag -l
thetagname

Pour supprimer une balise, vous utilisez la fonction -d drapeau :

$ git tag -d thetagname 
Deleted tag 'thetagname'
$ git tag
[no output]

Pour marquer un commit spécifique (précédent), il suffit de faire

git tag [tag name] [revision SHA1 hash]

Par exemple :

git tag 1.1.1 81b15a68c6c3e71f72e766931df4e6499990385b

Note : par défaut, git crée une balise "lightweight" (essentiellement une référence à une révision spécifique). La "bonne" façon est d'utiliser la balise -a drapeau. Cela lancera votre éditeur en demandant un message de balisage (identique à la demande d'un message de validation, vous pouvez également utiliser l'attribut -m pour fournir le message de la balise sur la ligne de commande). L'utilisation d'une balise annotée crée un objet avec son propre ID, sa date, son tagueur (auteur), et optionnellement une signature GPG (en utilisant la commande -s tag). Pour plus d'informations à ce sujet, voir ce poste

git tag mytagwithmsg -a -m 'This is a tag, with message'

Et pour lister les balises avec les annotations, utilisez la fonction -n1 pour afficher une ligne de chaque message de balise ( -n245 pour afficher les 245 premières lignes de chaque annotation, et ainsi de suite) :

$ git tag -l -n1
mytagwithmsg    This is a tag, with message

Pour plus d'informations, voir le Page de manuel de git-tag(1)

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