Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:aides:git [2019/12/18 20:00] – [Envoyer un dépôt Git dans Github] jpmilcent | informatique:aides:git [2020/11/17 20:56] (Version actuelle) – [Usage basique des branches et des merges] jpmilcent | ||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | * [[AideGitBranches|Comment nommer ses branches]] | + | * [[Informatique: |
==== Ignorer tout le contenu d'un dossier ==== | ==== Ignorer tout le contenu d'un dossier ==== | ||
Ligne 73: | Ligne 73: | ||
==== Récupérer en local un dépôt github distant ==== | ==== Récupérer en local un dépôt github distant ==== | ||
- | **git clone https:// | + | **< |
==== Commandes de base : Workflow normal ==== | ==== Commandes de base : Workflow normal ==== | ||
- | **git clone git://< | + | **< |
**git pull** : mettre à jour le dépôt local avec les modifications distantes | **git pull** : mettre à jour le dépôt local avec les modifications distantes | ||
**git status** : savoir ou on en est | **git status** : savoir ou on en est | ||
+ | |||
**git diff --cached** : vérifier ce qui va être validé. | **git diff --cached** : vérifier ce qui va être validé. | ||
**git add fichier1 fichier2 ...** : ajouter des fichiers nouveaux ou nouvellement modifiés aux changements à prendre en compte | **git add fichier1 fichier2 ...** : ajouter des fichiers nouveaux ou nouvellement modifiés aux changements à prendre en compte | ||
+ | |||
**git commit -m " | **git commit -m " | ||
+ | |||
**git commit -a -m " | **git commit -a -m " | ||
**git log** : lister les commits effectués | **git log** : lister les commits effectués | ||
+ | |||
**git diff < | **git diff < | ||
**git rm < | **git rm < | ||
+ | |||
**git mv < | **git mv < | ||
Ligne 97: | Ligne 102: | ||
==== Usage basique des branches et des merges ==== | ==== Usage basique des branches et des merges ==== | ||
**git branch < | **git branch < | ||
+ | |||
**git branch** : voir toutes les branches existantes (* = branche actuellement utilisée) | **git branch** : voir toutes les branches existantes (* = branche actuellement utilisée) | ||
+ | |||
**git checkout < | **git checkout < | ||
**git merge < | **git merge < | ||
+ | |||
**git diff** : repérer les fichiers en conflit suite au merge. Éditer les fichiers, corriger puis utiliser la commande : *git commit -a* | **git diff** : repérer les fichiers en conflit suite au merge. Éditer les fichiers, corriger puis utiliser la commande : *git commit -a* | ||
**gitk** : visualiser graphiquement les branches | **gitk** : visualiser graphiquement les branches | ||
+ | |||
**git branch -d < | **git branch -d < | ||
+ | |||
**git branch -D < | **git branch -D < | ||
**git remote show origin** : voir les branches distantes | **git remote show origin** : voir les branches distantes | ||
+ | |||
**git push origin < | **git push origin < | ||
- | **git push origin --delete < | + | |
+ | ''< | ||
==== Sauvegarde de modifications pour les " | ==== Sauvegarde de modifications pour les " | ||
Voir : http:// | Voir : http:// | ||
+ | |||
** git stash ** : en se plaçant dans le dossier principal du projet | ** git stash ** : en se plaçant dans le dossier principal du projet | ||
+ | |||
** git stash apply ** : pour réappliquer les modifications présentes dans le stash | ** git stash apply ** : pour réappliquer les modifications présentes dans le stash | ||
==== Gestion des tags ==== | ==== Gestion des tags ==== | ||
** git tag -l ** : lister les tags | ** git tag -l ** : lister les tags | ||
+ | |||
** git tag < | ** git tag < | ||
+ | |||
** git push origin < | ** git push origin < | ||
+ | |||
** git checkout < | ** git checkout < | ||
+ | |||
** git tag -d < | ** git tag -d < | ||
+ | |||
** git push origin : | ** git push origin : | ||
==== Corrections, | ==== Corrections, | ||
**git commit --amend** : permet de modifier le commentaire du dernier commit dans un éditeur. | **git commit --amend** : permet de modifier le commentaire du dernier commit dans un éditeur. | ||
+ | |||
**git commit --amend -m "New commit message" | **git commit --amend -m "New commit message" | ||
+ | |||
**git checkout .** : annule les modifications en cours depuis le dernier commit | **git checkout .** : annule les modifications en cours depuis le dernier commit | ||
+ | |||
**git reset HEAD^** : annule le dernier commit non propagé et restaure les fichiers. Ceci remplace la copie de travail telle qu' | **git reset HEAD^** : annule le dernier commit non propagé et restaure les fichiers. Ceci remplace la copie de travail telle qu' | ||
+ | |||
**git reset --soft HEAD^** : annule le dernier commit non propagé, et conserver les modifications. --soft permet de conserver les modifications | **git reset --soft HEAD^** : annule le dernier commit non propagé, et conserver les modifications. --soft permet de conserver les modifications | ||
+ | |||
**git reset --soft HEAD~2** : annule les 2 derniers commit non propagé et conserve les modifications. HEAD~2 correspond a 2éme parents de HEAD | **git reset --soft HEAD~2** : annule les 2 derniers commit non propagé et conserve les modifications. HEAD~2 correspond a 2éme parents de HEAD | ||
+ | |||
**git rm --cached < | **git rm --cached < | ||
+ | |||
**git rm --cached -r < | **git rm --cached -r < | ||
==== Commandes d' | ==== Commandes d' | ||
**git reset --hard HEAD** : annuler les changements effectués depuis le dernier commit. Supprime les fichiers non validés __DEFINITIVEMENTS__ ! | **git reset --hard HEAD** : annuler les changements effectués depuis le dernier commit. Supprime les fichiers non validés __DEFINITIVEMENTS__ ! | ||
+ | |||
**git reset --hard HEAD^** : supprimer le dernier commit. Cette action peut être répétée autant de fois que vous le désirez. Supprime les fichiers non validés __DEFINITIVEMENTS__ ! | **git reset --hard HEAD^** : supprimer le dernier commit. Cette action peut être répétée autant de fois que vous le désirez. Supprime les fichiers non validés __DEFINITIVEMENTS__ ! | ||
+ | |||
**git revert < | **git revert < | ||
==== Récupération des changements d'un collègue ==== | ==== Récupération des changements d'un collègue ==== | ||
- | **git remote add < | + | **< |
**git fetch < | **git fetch < | ||
+ | |||
**git merge < | **git merge < | ||
+ | |||
**git pull < | **git pull < | ||
==== Analyser l' | ==== Analyser l' | ||
**git log** : | **git log** : | ||
+ | |||
**git log v2.5..** : commits depuis (non-visible depuis) v2.5 | **git log v2.5..** : commits depuis (non-visible depuis) v2.5 | ||
+ | |||
**git log test..master** : commits visibles depuis master mais pas test | **git log test..master** : commits visibles depuis master mais pas test | ||
+ | |||
**git log master..test** : commits visibles depuis test mais pas master | **git log master..test** : commits visibles depuis test mais pas master | ||
+ | |||
**git log master...test** : commits visibles pour test ou master, mais pas pour les 2 | **git log master...test** : commits visibles pour test ou master, mais pas pour les 2 | ||
+ | |||
**git log --since=" | **git log --since=" | ||
+ | |||
**git log Makefile** : commits modifiant le Makefile | **git log Makefile** : commits modifiant le Makefile | ||
+ | |||
**git log fs/** : commits qui modifient les fichiers sous fs/ | **git log fs/** : commits qui modifient les fichiers sous fs/ | ||
+ | |||
**git log -S' | **git log -S' | ||
+ | |||
**git log --no-merges** : ne pas montrer les commits de merge | **git log --no-merges** : ne pas montrer les commits de merge | ||
==== Comparer les commits — Git diff ==== | ==== Comparer les commits — Git diff ==== | ||
**git diff master..test** : afficher la différence entre le sommet de deux branches | **git diff master..test** : afficher la différence entre le sommet de deux branches | ||
+ | |||
**git diff master...test** : afficher la différence entre l' | **git diff master...test** : afficher la différence entre l' | ||
+ | |||
**git diff** : afficher les changements dans le répertoire de travail qui ne sont pas encore assemblés pour le prochain commit. | **git diff** : afficher les changements dans le répertoire de travail qui ne sont pas encore assemblés pour le prochain commit. | ||
+ | |||
**git diff --cached** : montrer la différence entre l’index et votre dernier commit. Ce que vous committerez si vous lancez « git commit » sans l’option « -a ». | **git diff --cached** : montrer la différence entre l’index et votre dernier commit. Ce que vous committerez si vous lancez « git commit » sans l’option « -a ». | ||
+ | |||
**git diff HEAD** : afficher les changements de votre répertoire de travail depuis votre dernier commit. | **git diff HEAD** : afficher les changements de votre répertoire de travail depuis votre dernier commit. | ||
+ | |||
**git diff experimental** : montrer la différence entre votre répertoire de travail actuel et la capture de la branche « experimental ». | **git diff experimental** : montrer la différence entre votre répertoire de travail actuel et la capture de la branche « experimental ». | ||
+ | |||
**git diff HEAD -- ./lib** : montrer les différences entre votre répertoire de travail actuel et le dernier commit (ou plus précisément, | **git diff HEAD -- ./lib** : montrer les différences entre votre répertoire de travail actuel et le dernier commit (ou plus précisément, | ||
+ | |||
**git diff --stat :** ajouter l’option --stat, qui limitera la sortie aux noms de fichier qui ont changés, accompagné d’un petit graphe décrivant le nombre de lignes différentes dans chaque fichier. | **git diff --stat :** ajouter l’option --stat, qui limitera la sortie aux noms de fichier qui ont changés, accompagné d’un petit graphe décrivant le nombre de lignes différentes dans chaque fichier. | ||
==== Sous-modules ==== | ==== Sous-modules ==== | ||
- | ** git submodule add git:// | + | ** < |
Pour clôner un projet contenant des sous-modules : | Pour clôner un projet contenant des sous-modules : | ||
- | * ** git clone git:// | + | * ** < |
* ** git submodule init ** : initialise votre fichier local de configuration. | * ** git submodule init ** : initialise votre fichier local de configuration. | ||
* ** git submodule update ** : tire toutes les données de ce projet et récupére le commit approprié tel que listé dans le super-projet. | * ** git submodule update ** : tire toutes les données de ce projet et récupére le commit approprié tel que listé dans le super-projet. | ||
Ligne 176: | Ligne 224: | ||
==== Notes sur les branches ==== | ==== Notes sur les branches ==== | ||
La branche master est la branche par défaut | La branche master est la branche par défaut | ||
+ | |||
**git branch --track < | **git branch --track < | ||
==== Note sur le message du « commit » ==== | ==== Note sur le message du « commit » ==== | ||
Bien que ce ne soit pas obligatoire, | Bien que ce ne soit pas obligatoire, | ||
+ | |||
+ | Les règles à appliquer pour rédiger un message de commit : | ||
+ | - Rédiger le commit en anglais | ||
+ | - Limiter la ligne du sujet à 50 caractères. | ||
+ | - Utiliser une lettre capitale seulement sur le 1er caractère | ||
+ | - Ne pas mettre d' | ||
+ | - Ne pas mettre de point à la fin de la ligne du sujet | ||
+ | - Ajouter une ligne blanche entre la ligne du sujet et le corps du texte | ||
+ | - Limiter les lignes du corps du texte à 72 caractères. | ||
+ | - Utiliser l' | ||
+ | - Décrire ce qui a été fait et pourquoi et non comment. | ||
+ | |||
+ | Format de la ligne de sujet : **< | ||
+ | * //Type// : peut prendre une des valeurs suivante : | ||
+ | * chore : modification concernant le fonctionnement du code (ajout .gitignore, .editorconfig...) | ||
+ | * docs : ajout de documentation. | ||
+ | * style : modification du style du code. | ||
+ | * feat : nouvelle fonctionnalité | ||
+ | * fix : correction de bug. | ||
+ | * refactor : refactorisation du code (seulement une restructuration du code sans nouvelle fonctionnalité). | ||
+ | * test : ajout de test. | ||
+ | * //Subject// : indique sur quel partie du code porte le commit (fichier, module, dossier...) | ||
+ | * //Détail// : indiquer en quelques mots les modifications réalisées et pourquoi | ||
==== Comment fermer automatiquement des bugs via un message de commit sur Github==== | ==== Comment fermer automatiquement des bugs via un message de commit sur Github==== | ||
Utiliser la syntaxe : Fix #35 | Utiliser la syntaxe : Fix #35 | ||
+ | |||
Voir : https:// | Voir : https:// | ||
==== Comment supprimer un label d' | ==== Comment supprimer un label d' | ||
- | Utiliser Curl avec l'API de Github : '' | + | Utiliser Curl avec l'API de Github : '' |