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:48] – [Fusionner les derniers commits] 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 96: Ligne 107:
 <code> <code>
 :%s/pick/squash/g :%s/pick/squash/g
 +</code>
 +
 +==== Changer le commentaire du dernier commit ====
 +
 +<code bash>
 +git commit --amend -m "Nouveau commentaire"
 </code> </code>
  
Ligne 101: Ligne 118:
  
 <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 154: 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>