jeudi 29 mars 2018

Git tuto rapide no bullshit

Vous cherchez un tuto complet et ultra-rapide pour réaliser la gestion des configurations de vos codes sources avec Git ? C'est ici.
Git Tuto rapide

Créer un nouveau dépôt Git

Pour créez un nouveau dossier, ouvrez le (placez vous dans le dossier à "giter") et exécutez la commande :

>git init

vous créez ainsi un nouveau dépôt.

Cloner un dépôt Git

Créez une copie de votre dépôt local en exécutant la commande :

>git clone /path/to/repository

Si vous utilisez un serveur distant, cette commande sera :

>git clone username@host:/path/to/repository

Les 3 Arbres

Votre dépôt local est composé de trois "arbres" gérés par git.
Le premier est votre espace de travail qui contient réellement vos fichiers.
Le second est un Index qui joue un rôle d'espace de transit pour vos fichiers et enfin HEAD
qui pointe vers la dernière validation que vous ayez faite.

Ajouter & valider

Vous pouvez proposer un changement (l'ajouter à l'Index) en exécutant les commandes :

>git add <filename>
>git add *


C'est la première étape dans un workflow git basique.
Pour valider ces changements, utilisez :

>git commit -m "Votre message de validation explicite"

Le fichier est donc ajouté au HEAD, mais pas encore dans votre dépôt distant.

Envoyer des changements

Vos changements sont maintenant dans le HEAD de la copie de votre dépôt local. Pour les envoyer à votre dépôt distant, exécutez la commande :

>git push origin master


Remplacez master par la branche dans laquelle vous souhaitez envoyer vos changements par exemple developement.

Si vous n'avez pas cloné votre dépôt existant et voulez le connecter à votre dépôt sur un serveur distant, vous devez l'ajouter avec :

>git remote add origin <server>

Maintenant, vous pouvez envoyer vos changements vers le serveur distant sélectionné

Branches

Les branches sont utilisées pour développer des fonctionnalités isolées des autres. La branche master est la branche par défaut quand vous créez un dépôt. Utilisez les autres branches pour le développement et fusionnez ensuite à la branche principale quand vous avez fini.

Créer une nouvelle branche nommée "feature_x" et changer la branche pour passer dessus utilisez :

>git checkout -b feature_x

Retourner sur la branche principale :

>git checkout master

et supprimer alors la branche secondaire :

>git branch -d feature_x

Une branche n'est pas disponible pour les autres tant que vous ne l'aurez pas envoyée vers votre dépôt distant :

>git push origin <branch>

Mettre à jour & fusionner

Pour savoir sur quelle branche vous êtes et dans quel état elle est :

>git status

Pour mettre à jour votre dépôt local vers les dernières validations, exécutez la commande :

>git pull

Pour vous positionner sur la branche master :

>git checkout master

Dans votre espace de travail pour récupérer et fusionner les changements distants.
Pour fusionner une autre branche avec la branche active (par exemple master), utilisez :

>git merge <branch>

Dans les deux cas, git tente d'auto-fusionner les changements. Malheureusement, ça n'est pas toujours possible et il en résulte des conflits. Vous devez alors régler ces conflits manuellement en éditant les fichiers indiqués par git. Après l'avoir fait, vous devez les marquer comme fusionnés avec la commande :

>git add <filename>

Après avoir fusionné les changements, vous pouvez en avoir un aperçu en utilisant :

>git diff <source_branch> <target_branch>

Tags

Il est nettement recommandé de créer des tags pour les releases de programmes. C'est un concept connu, qui existe aussi dans SVN et c'est tout simple. Vous pouvez créer un tag nommé 1.0.0 en exécutant la commande :

>git tag 1.0.0 1b3a1d62ff

Le 1b3a1d62ff désigne les 10 premiers caractères de l'identifiant du changement que vous voulez référencer avec ce tag. Vous pouvez obtenir cet identifiant avec :

>git log

Vous pouvez utiliser moins de caractères pour cet identifiant, il doit juste rester unique.

Remplacer les changements locaux

Dans le cas où, vous auriez fait quelque chose de travers (ce qui bien entendu n'arrive jamais ;) Vous pouvez annuler les changements locaux en utilisant cette commande :

>git checkout --<filename>

Cela remplacera les changements dans votre arbre de travail avec le dernier contenu du HEAD. Les changements déjà ajoutés à l'index, aussi bien les nouveaux fichiers, seront gardés.

Si à la place, vous voulez supprimer tous les changements et les validations locales, récupérer le dernier historique depuis le serveur et pointer la branche principale locale dessus, procédez comme ceci :

>git fetch origin
>git reset --hard origin/master

Voilà, ce tuto est déjà terminé !

Merci à la page du site Ici mais je me serais bien passer de la mise en page disons trop ... heu comment dire ... ball shit justement ! Et en plus si cette page venait à disparaitre, je l'ai trouvé tellement bien que je préfère l'immortaliser chez moi.

Have fun!

Références :
https://blog.imirhil.fr/2013/04/14/git-gestion-de-conf-aujourdhui.html
Plus qu'un article sur les Gestionnaires de conf CSV, SVN et les autres une vraie bonne critique de ce qui se fait en matière de gestion de configuration.

http://nvie.com/posts/a-successful-git-branching-model/
Gestion des branches un diagramme de toute beauté

http://rogerdudler.github.io/git-guide/index.fr.html
Cette page est vraiment pas ... cool mais bon c'est bien fait


Aucun commentaire:

Publier un commentaire