Utilisation basique
Gérer les dépôts
Avant de commencer à utiliser Git, il faut lui demander de créer un nouveau dépôt.
$ mkdir nom_depot
$ cd nom_depot
Dans le répertoire <nom_depot>, vous aurez alors un dossier caché .git, c'est dans ce dossier que Git stockera les différentes révisions et informations du projet. Vous pouvez aussi récupérer un dépôt déjà existant et travailler à partir de celui-ci en faisant:
$ git clone git://<dépot>
Vous pourrez ensuite (si vous avez les droits suffisants sur le dépôt distant), envoyer vos changements avec git push.
État du dépôt
$ git diff
$ git diff <commit1> <commit2>
Permet de comparer 2 versions. Vous pourrez ainsi voir les changements effectués. Si vous avez des changements pas encore commités, la commande git diff affichera les modifications effectuées depuis le dernier commit.
$ git status : Savoir tout ce qui n’a pas encore été validé
$ git log : Liste les commits effectués dans le dépôt. Vous pourrez ainsi voir les modifications qui ont été faites.
Gestion des fichiers
$ git add <nom_fichier> : Cette commande indique à Git que le fichier nommé "nom_fichier" devra être versionné.
$ git rm <nom_fichier> : Supprime le fichier de votre ordinateur, ainsi que du dépôt Git.
$ git mv <nom_fichier> <nouvelle_destination> : Déplace le fichier.
Gestion des commits
$ git pull : Met à jour votre dépôt local (à faire avant de commencer à modifier des fichiers pour être sur de travailler sur leurs dernières versions et avant tout commit pour éviter les éventuels conflits avec des modifications effectuées par d'autres utilisateurs entre temps).
$ git commit <fichier1> <fichier2> : Crée un commit contenant fichier1 et fichier2. Ces fichiers auront dûs être au préalable ajoutés au dépôt avec la commande git add.
$ git commit -a : Crée un nouveau commit contenant tous les changements effectués sur les fichiers (git add n'est donc pas nécessaire avant un commit -a).
$ git push origin master : Envoie le commit dans la branche principale du dépôt (master).
Commandes d'annulation
Git dispose de commandes permettant d'annuler des changements effectués. Attention, ces annulations ne sont pas réversibles !
$ git reset --hard HEAD : Annule les changements effectués depuis le dernier commit.
$ git reset --hard HEAD^ : Supprime le dernier commit. Cette action peut être répétée autant de fois que vous le désirez.
$ git revert commit : Cette commande restaure le dépôt tel qu'il l'était lors du commit spécifié. Pour que cette commande fonctionne, il faut que toutes les modifications soient commitées (ou annulées avec git reset).
$ git revert n°sha 1 : Revert un commit en particulier determiner par son sha1 obtenu en faisant un $ git log
Utilisation avancée
Généralement, quand on utilise Git, on ne travaille pas seul mais en équipe. Voici les principales commandes qui vous aideront à utiliser Git dans de telles situations. Ici, nous supposerons qu'on travaille avec deux dépôts Git distincts nommés respectivement moi et bob. Le dépôt moi est votre dépôt, bob est celui d'une autre personne, admettons qu'il est situé à l'adresse git://github.com/bob
Gestion des branches
Git permet une gestion efficace des branches, et des merges (fusion de branches). Les branches permettent d'avoir simultanément plusieurs versions de votre programme dans votre dépôt Git. C'est très utile, par exemple pour développer une nouvelle fonctionnalité, tout en gardant la branche principale intacte. Ainsi, vous pouvez toujours faire des changements dans la branche principale (corrections de bugs par exemple), tout en développant en parallèle une nouvelle fonctionnalité.
$ git branch test : Crée une nouvelle branche nommée "test".
$ git branch : Liste les branches présentes dans le dépôt. Le nom de la branche courante est précédé du caractère "*".
$ git checkout <nom_branche> : Change de branche. Après cette commande, vous aurez alors accès aux fichiers présents dans la branche nommée "nom_branche". Avant de changer de branche, il faut impérativement que tous les changements effectués soient commités ou annulés, sinon Git refusera de changer de branche.
$ git merge <nom_branche> : Fusionne la branche courante avec la branche nommée "nom_branche". Il se peut qu'il y ait des conflits et que Git ne soit pas capable de les résoudre tout seul. Les conflits apparaissent lors de changements divergents au même endroit dans un fichier. Si il y a des conflits, Git laissera un marquage directement dans le fichier, contenant le code de la branche courante, et celui de la branche que vous voulez fusionner. Vous devrez alors corriger le problème manuellement. Une fois corrigé, vous devez commiter les changements pour finaliser le merge.
Si jamais vous décidez d'abandonner la fusion, alors exécutez la commande :
$ git reset --hard HEAD
Récupération des changements
Imaginons que Bob ait implémenté une nouvelle fonctionnalité. Vous voulez naturellement l'intégrer à votre dépôt.
$ git remote add bob git://github.com/bob
$ git fetch bob
$ git merge bob/master
La première commande crée un alias qui fait pointer bob vers l'adresse du dépôt. Ça permet d'éviter d'avoir à taper l'adresse complète à chaque fois. La deuxième commande récupère les changements que bob a effectués. La troisième commande fusionne les changements de bob avec votre branche courante. Il existe une commande qui a le même effet que git fetch suivi de git merge :
$ git pull bob
Aucun commentaire:
Enregistrer un commentaire