Outils pour utilisateurs

Outils du site


informatique:git

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:git [2020/11/19 03:15] alexisinformatique:git [2024/02/09 05:47] (Version actuelle) alexis
Ligne 25: Ligne 25:
 git config --global commit.template <filename> # Utilisation d'un modèle de message pour la validation git config --global commit.template <filename> # Utilisation d'un modèle de message pour la validation
 git config --global alias.st 'status' # Création d'un alias de la fonction "status" git config --global alias.st 'status' # Création d'un alias de la fonction "status"
 +git config --global push.autoSetupRemote true # Création automatique de la branche distante au moment du partage (commande "push")
 </code> </code>
  
Ligne 57: Ligne 58:
 [commit] [commit]
         template = <filename>         template = <filename>
 +[push]
 +        autoSetupRemote = true
 </code> </code>
 <WRAP alert> <WRAP alert>
Ligne 91: Ligne 94:
         ; Fixup a commit into another         ; Fixup a commit into another
         fixup = !sh -c 'git stash --keep-index && SHA=$(git rev-parse $1) && git commit --fixup $SHA && GIT_SEQUENCE_EDITOR=: git rebase --interactive --autosquash $SHA~ && git stash pop' -         fixup = !sh -c 'git stash --keep-index && SHA=$(git rev-parse $1) && git commit --fixup $SHA && GIT_SEQUENCE_EDITOR=: git rebase --interactive --autosquash $SHA~ && git stash pop' -
- ; Show branch ordered by last working time +        ; Show file names in commits 
- last-work = branch --sort='-committerdate' --format='%(color:green)%(committerdate:relative)%(color:reset) %(refname:short) --color=always'+        list-file = !sh -c 'git diff-tree --no-commit-id --name-only -r ${1:-HEAD}'
 + ; Show branches ordered by last working time 
 + last-work = branch --sort='-committerdate' --format='%(color:green)%(committerdate:relative)%(color:reset) %(refname:short)--color=always 
 +        ; Retrieve a MR locally (gitlab) 
 +        mr = !sh -c 'git fetch ${2:-origin} merge-requests/$1/head:mr/$1 && git checkout mr/$1' -
         ; Show log on oneline         ; Show log on oneline
         oneline = log --oneline --abbrev-commit --graph         oneline = log --oneline --abbrev-commit --graph
-        ; Retrieve a PR locally+        ; Retrieve a PR locally (github)
         pr = !sh -c 'git fetch ${2:-origin} pull/$1/head:pr/$1 && git checkout pr/$1' -         pr = !sh -c 'git fetch ${2:-origin} pull/$1/head:pr/$1 && git checkout pr/$1' -
         ; Prune local tags that don't exist on remote         ; Prune local tags that don't exist on remote
         pt = !git tag -l | xargs git tag -d && git fetch -t         pt = !git tag -l | xargs git tag -d && git fetch -t
 +        ; Remove local MRs (gitlab)
 +        rmmr = !git reset --hard && git checkout master && git branch --list 'mr/*' --format '%(refname:lstrip=2)' | xargs git branch -D
 +        ; Show synchronized branches without remote
 +        stale-branch = !git fetch --all --prune && git branch --verbose | awk '/\\[gone\\]/ {print $1}'
 </code> </code>
 <WRAP info> <WRAP info>
 La commande '':'', utilisée comme éditeur dans la variable ''GIT_SEQUENCE_EDITOR'', fait partie des commandes incluses dans Bash. Voir [[https://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Builtins.html#Bourne-Shell-Builtins|ici]] pour plus d'informations. La commande '':'', utilisée comme éditeur dans la variable ''GIT_SEQUENCE_EDITOR'', fait partie des commandes incluses dans Bash. Voir [[https://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Builtins.html#Bourne-Shell-Builtins|ici]] pour plus d'informations.
 </WRAP> </WRAP>
 +<WRAP alert>
 +Attention, la version de //sed// disponible sur MacOS ne supporte pas l'option ''--expression''.
 +Il faut la remplacer par l'option ''-e'', le reste étant conservé à l'identique.
 +</WRAP>
 +
 <tabbox Prompt personnalisé> <tabbox Prompt personnalisé>
 <WRAP todo> <WRAP todo>
Ligne 164: Ligne 180:
 # Ajouter les fichiers à révisionner # Ajouter les fichiers à révisionner
 git add <file1> <file2> git add <file1> <file2>
-# Révisionner les modifications+ 
 +# Révisionner les modifications en saisissant un message dans l'éditeur de texte par défaut
 git commit git commit
-À ce moment, l'éditeur de texte par défaut va s'ouvrir pour ajouter un message à la révision+Révisionner les modifications en saisissant un titre uniquement sans ouvrir l'éditeur de texte par défaut 
 +git commit -m <title> 
 +# Révisionner les modifications en saisissant un titre et un message sans ouvrir l'éditeur de texte par défaut 
 +git commit -m <title> -m <message>
  
-# Il est aussi possible de faire tout ça automatiquement +# Il est aussi possible de faire tout ça automatiquement (ce n'est pas recommandé) 
-git commit -a -m <message>+git commit -a -m <title> -m <message>
 </code> </code>
  
Ligne 467: Ligne 487:
 git diff --name-only <branch>..<branch> git diff --name-only <branch>..<branch>
 </code> </code>
 +<WRAP tip>
 +Il est possible de filtrer les résultats sur le type de changement en utilisant ''%%--diff-filter%%''. Cette option prend une ou plusieurs valeurs dans la liste suivante :
 +  * ''A'' pour les fichiers ajoutés.
 +  * ''D'' pour les fichiers supprimés.
 +  * ''M'' pour les fichiers modifiés.
 +  * ''R'' pour les fichiers déplacés.
 +</WRAP>
 +
  
   * Mettre de côté des modifications ([[http://git-scm.com/book/en/Git-Tools-Stashing|documentation officielle]])   * Mettre de côté des modifications ([[http://git-scm.com/book/en/Git-Tools-Stashing|documentation officielle]])
Ligne 503: Ligne 531:
 </code> </code>
  
-  * Dupliquer un dépçot (([[https://help.github.com/articles/duplicating-a-repository/|Duplicating a repository]]))+  * Dupliquer un dépôt (([[https://help.github.com/articles/duplicating-a-repository/|Duplicating a repository]]))
 <code bash> <code bash>
 # Faire un clone brut du projet # Faire un clone brut du projet
Ligne 527: Ligne 555:
 # Avec un filtre complexe # Avec un filtre complexe
 git ls-remote --heads origin master develop release\* git ls-remote --heads origin master develop release\*
 +</code>
 +
 +  * Afficher la liste des fichiers gérés
 +<code bash>
 +git ls-tree -r master --name-only
 </code> </code>
 </tabbox> </tabbox>
  
 +===== Variables d'environnement =====
 +  * **GIT_SEQUENCE_EDITOR** : Cette variable surcharge l'éditeur configuré lors de l'édition de la liste d'opérations à effectuer lors d'un //rebase// interractif.
 +  * **GIT_TERMINAL_PROMPT** (([[https://serverfault.com/questions/544156/git-clone-fail-instead-of-prompting-for-credentials|automation - git clone - fail instead of prompting for credentials - Server Fault]])): Si cette variable est initialisée à ''0'', ''git'' n'affichera pas l'invite de commande (par exemple, pour demander les identifiants de connexion HTTP).
 +<code bash>
 +# La commande suivante va s'arrêter en erreur sans proposer l'invite de commande
 +GIT_TERMINAL_PROMPT=0 git clone https://github.com/some/non-existing-repo
 +</code>
  
 ===== Liens utiles ===== ===== Liens utiles =====
Ligne 537: Ligne 577:
   - [[http://www.cheat-sheets.org/saved-copy/git-cheat-sheet.pdf|Aide mémoire Git]]   - [[http://www.cheat-sheets.org/saved-copy/git-cheat-sheet.pdf|Aide mémoire Git]]
   - [[http://git-scm.com/book|Version en ligne et complète du livre «Pro Git»]]   - [[http://git-scm.com/book|Version en ligne et complète du livre «Pro Git»]]
 +  - [[https://github.com/ineat/refcards/blob/master/git/FR.md|refcards/FR.md at master · ineat/refcards]]
 <tabbox Pour commencer> <tabbox Pour commencer>
   - [[http://danielmiessler.com/study/git/|A git Primer]]   - [[http://danielmiessler.com/study/git/|A git Primer]]
Ligne 573: Ligne 614:
   - [[https://stackoverflow.com/questions/89332/how-to-recover-a-dropped-stash-in-git|How to recover a dropped stash in Git?]]   - [[https://stackoverflow.com/questions/89332/how-to-recover-a-dropped-stash-in-git|How to recover a dropped stash in Git?]]
   - [[https://mghignet.github.io/git-dammit-talk/|Git dammit!]]   - [[https://mghignet.github.io/git-dammit-talk/|Git dammit!]]
 +  - [[https://dev.to/daolf/git-series-13-understanding-git-for-real-by-exploring-the-git-director--5bd0|Understanding git for real by exploring the .git directory - DEV]]
 +  - [[https://www.atlassian.com/blog/git/tear-apart-repository-git-way|How to tear apart a repository: the Git way - Work Life by Atlassian]]
 +  - [[https://blog.plover.com/prog/git/tips-2.html|The Universe of Discourse : Things I wish everyone knew about Git (Part II)]]
 +  - [Et merde, Git!?!](https://ohshitgit.com/fr)
 +
 +
 +
 <tabbox Humour> <tabbox Humour>
   - sur [[http://angriestprogrammer.com/comic/source_control|angriestprogrammer.com]]   - sur [[http://angriestprogrammer.com/comic/source_control|angriestprogrammer.com]]
informatique/git.1605784545.txt.gz · Dernière modification : 2020/11/19 03:15 de alexis