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
kb_it:git [2022/01/24 02:25] – [Stockage des identifiants] befekb_it:git [2025/06/13 12:02] (Version actuelle) befe
Ligne 73: Ligne 73:
  
 Depuis un dépôt “bare”, remplacer –hard par –soft. Depuis un dépôt “bare”, remplacer –hard par –soft.
 +
 +==== Restaurer des fichiers depuis un commit ====
 +
 +<code bash>
 +git checkout c5f567 -- file1/to/restore file2/to/restore
 +</code>
 +
 +Pour restaurer les fichier avant le commit (ici 1 commit avant) :
 +<code bash>
 +git checkout c5f567~1 -- file1/to/restore file2/to/restore
 +</code>
  
 ==== Fusionner les derniers commits ==== ==== Fusionner les derniers commits ====
Ligne 80: Ligne 91:
 </code> </code>
 L'ID est celui du commit qui précède le dernier membre de la fusion L'ID est celui du commit qui précède le dernier membre de la fusion
 +
 +OU
 +
 +<code bash>
 +git rebase -i --root main
 +</code>
 +==== Combiner tous les commits en un seul ====
 +
 +<code bash>
 +git rebase --root -i
 +</code>
 +
 +Puis remplacer toutes les occurrences de ''pick'' par ''squash'' sauf la première.
 +Sous vim, il est possible de faire :
 +<code>
 +:%s/pick/squash/g
 +</code>
 +
 +==== Changer le commentaire du dernier commit ====
 +
 +<code bash>
 +git commit --amend -m "Nouveau commentaire"
 +</code>
  
 ==== Changer l'auteur du dernier commit ==== ==== Changer l'auteur du dernier commit ====
  
 <code bash> <code bash>
-git commit --amend --author="John Doe <john@doe.org>"+git commit --amend --author="Benjamin Féron <50001976+benjamin-feron@users.noreply.github.com>" 
 +</code> 
 + 
 +==== Changer l'auteur de tous les commits selon un filtre ==== 
 + 
 +<code bash> 
 +git filter-branch -f --env-filter ' 
 +  WRONG_EMAIL="wrong@email.com" 
 +  NEW_NAME="New Name" 
 +  NEW_EMAIL="new@email.com" 
 + 
 +  if [ "$GIT_COMMITTER_EMAIL" = "$WRONG_EMAIL"
 +  then 
 +      export GIT_COMMITTER_NAME="$NEW_NAME" 
 +      export GIT_COMMITTER_EMAIL="$NEW_EMAIL" 
 +  fi 
 +  if [ "$GIT_AUTHOR_EMAIL" = "$WRONG_EMAIL"
 +  then 
 +      export GIT_AUTHOR_NAME="$NEW_NAME" 
 +      export GIT_AUTHOR_EMAIL="$NEW_EMAIL" 
 +  fi 
 +  ' --tag-name-filter cat -- --branches --tags
 </code> </code>
  
Ligne 137: Ligne 192:
 <code bash> <code bash>
 git push --delete origin <tagname> git push --delete origin <tagname>
 +</code>
 +
 +==== Supprimer tous les tags ====
 +
 +<code bash>
 +git tag | xargs git tag -d
 </code> </code>