La réponse ici traite déjà du cas de base pour annuler la suppression d'un fichier spécifique. Cependant, si vous avez accidentellement mis en scène la suppression de nombreux fichiers mélangés avec des modifications que vous souhaitez conserver, vous pouvez utiliser cette série de commandes :
git diff --staged --name-status | awk '$1=="D"{print $2}' | xargs git restore --staged --
La première portion, git diff --staged --name-status
, affiche toutes les modifications mises en scène avec une lettre pour identifier le type de modification. Les fichiers supprimés ont un "D".
La deuxième partie affiche le nom du fichier si la lettre de statut (première colonne) est "D". Cela filtre efficacement la liste pour ne conserver que les suppressions mises en scène.
La dernière ligne appelle la commande git restore --staged
(que les autres réponses ont si aimablement indiquée) pour chaque fichier supprimé. Notez que restore
nécessite git 2.23 ou plus récent, sinon vous devrez utiliser une combinaison de git reset
et git checkout
(comme c'est fait dans cette autre réponse. Pour plus d'explications sur git restore
, consultez la documentation de git ou cette réponse.
1 votes
Ignorer les modifications et annuler la mise en attente sont deux choses différentes, que cherchez-vous à faire ?
1 votes
Il s'agit de deux questions et problèmes distincts dans un seul article. Cela rend les réponses bien trop confuses et inutilement compliquées.