Je travaille sur une branche, disons une branche "expérimentale" que je branche depuis ma branche master. Ensuite, je génère un modèle utilisateur dans la branche expérimentale, mais je ne les ajoute pas encore à l'index.
Que dois-je faire si je souhaite annuler toutes les modifications des fichiers récemment ajoutés dans ma branche expérimentale? Les fichiers non suivis sont répertoriés ci-dessous:
$ git status
On branch new_chick
Untracked files:
(use "git add <file>..." to include in what will be committed)
.project
app/models/user.rb
db/migrate/
test/fixtures/users.yml
test/unit/user_test.rb
J'ai essayé d'exécuter "git reset --hard" dans l'espoir d'annuler tous ces changements, mais tous les fichiers ci-dessus sont toujours affichés.
Quelqu'un s'il vous plaît me faire la lumière?
Réponses:
Pour supprimer les fichiers / répertoires non suivis, procédez comme suit:
-f - force
-d - répertoires aussi
-x - supprime également les fichiers ignorés (ne l'utilisez pas si vous ne voulez pas supprimer les fichiers ignorés)
Utiliser avec précaution!
Ces commandes peuvent supprimer définitivement des fichiers arbitraires auxquels vous n'aviez pas pensé au début. Veuillez vérifier et lire tous les commentaires sous cette réponse et la section --help, etc., afin de connaître tous les détails pour affiner vos commandes et obtenir sûrement le résultat attendu.
la source
-x
AVEC PRÉCAUTION car cela supprimera définitivement les fichiers. Ou utiliser avec-n
comme mentionné par @Druska-x
encore utilisé le .project et les autres fichiers de configuration ont été supprimés. J'ai dû extraire à nouveau le dépôt du dernier commit dans un nouveau répertoire.Approche interactive de l'utilisateur:
-i pour interactif
-f pour force
-d pour le répertoire
-x pour les fichiers ignorés (ajouter si nécessaire)
Remarque: Ajoutez -n ou --dry-run pour simplement vérifier ce qu'il va faire.
la source
Ce sont des fichiers non suivis. Cela signifie que git ne les suit pas. Il ne les répertorie que parce qu'ils ne sont pas dans le fichier git ignore. Puisqu'ils ne sont pas suivis par git,
git reset
je ne les toucherai pas.Si vous voulez supprimer tous les fichiers non suivis, le moyen le plus simple est
git clean -f
(utilisezgit clean -n
plutôt si vous voulez voir ce qu'il détruirait sans rien supprimer). Sinon, vous pouvez simplement supprimer manuellement les fichiers dont vous ne voulez pas.la source
Pour supprimer des fichiers non suivis:
git clean -f
Pour supprimer également les répertoires non suivis, utilisez:
git clean -f -d
Pour prévenir tout arrêt cardiaque, utilisez
git clean -n -f -d
la source
Vous pouvez également revenir à l'état précédent du dépôt local d'une autre manière:
git add
.git reset --hard
.la source
La commande pour votre sauvetage est
git clean
.la source
Eh bien, j'ai eu le même problème. J'avais pris le dernier mais il y avait quelques changements dans le local en raison desquels la fusion ne se produisait pas à un fichier particulier. Le fichier n'a pas été suivi et je ne les voulais pas, alors ce que j'ai fait était -
$ git checkout chemin de fichier / nom de fichier
filepath - L'emplacement à partir duquel j'ai fait le git bash. puis quand j'ai pris les dernières modifications, les modifications étaient disponibles
la source
Bien que cela
git clean
fonctionne bien, je trouve toujours utile d'utiliser mon propre script pour nettoyer le repo git, mais il présente certains avantages.Cela affiche une liste de fichiers à nettoyer, puis invite interactivement à nettoyer ou non. C'est presque toujours ce que je veux, car les invites interactives par fichier deviennent fastidieuses.
Il permet également le filtrage manuel de la liste, ce qui est pratique lorsqu'il y a des types de fichiers que vous ne voulez pas nettoyer (et que vous avez des raisons de ne pas valider).
git_clean.sh
la source