Annuler git update-index --assume-inchangé <fichier>
La façon dont vous Git d'ignorer observation/suivi du dir/file. vous venez d'exécuter ceci:
git update-index --assume-unchanged <file>
Maintenant comment vous défaire de sorte qu'ils sont regardé à nouveau? (Appelons ça de l'onu assume.)
- Juste une remarque pour dire qu'il semble que les skip-worktree est en toute probabilité, que vous feriez mieux d'utiliser que de supposer inchangé, à moins que le rendement de git est votre problème. stackoverflow.com/questions/13630849/...
Vous devez vous connecter pour publier un commentaire.
Pour obtenir annuler/afficher le répertoire/fichiers qui sont définies à assumer inchangé exécuter ce:
git update-index --no-assume-unchanged <file>
Pour obtenir une liste de répertoire/fichiers qui sont
assume-unchanged
exécuter ce:git ls-files -v|grep '^h'
git ls-files -v|grep '^h'|cut -c3-
, qui vous donne juste les noms des fichiers, sans le "h" préfixe.assume-unchanged
, il suffit d'utilisergit update-index --really-refresh
. Avec cette commande, vous n'avez pas besoin de rechercher les fichiers avecgit ls-files
premier.Si c'est une commande que vous utilisez souvent, vous voudrez peut-être organiser un alias pour elle aussi. Ajouter à votre
.gitconfig
:Comment définir un alias (si vous ne le savez pas déjà):
Exemple:
Après l'enregistrement de ce à votre
.gitconfig
, vous pouvez exécuter un nettoyeur de commande.ou
Ce git documentation a été très utile.
Que par les commentaires, c'est aussi un alias utile pour trouver quels fichiers sont actuellement cachés:
hidden = ! git ls-files -v | grep '^h' | cut -c3-
git update-fonction index a plusieurs options que vous pouvez trouver en tapant comme ci-dessous:
Ici vous trouverez divers option - comment traiter avec la fonction de mise à jour de l'index.
[si vous ne connaissez pas le nom de fichier]
[si vous connaissez le nom de fichier ]
restaurera tous les fichiers de ceux qui ont été ajoutés dans la liste des ignorés par.
git update-index --really-refresh
git update-index --no-assume-unchanged <file>
m'a sauvé la vie.. ok, je pourrais juste de synchroniser à nouveau le dossier, mais je voulais une "vraie" solution à ce problème.Je suppose (heh) vous signifiait
--assume-unchanged
, car je ne vois pas de--assume-changed
option. L'inverse de--assume-unchanged
est--no-assume-unchanged
.De synthétiser l'excellent origine des réponses de @adardesign, @adswebwork et @AnkitVishwakarma, et les commentaires de @Bdoserror, @Retsam, @seanf, et @torek, avec des liens vers la documentation et concis alias...
Commandes De Base
À réinitialiser un fichier qui est supposons inchangé de retour à la normale:
À liste de tous les fichiers qui sont supposer-même:
À réinitialisation de tous les supposons-les fichiers inchangés retour à la normale:
Remarque: Cette commande qui a été répertorié ailleurs, ne semble pas réinitialiser tous supposons-les fichiers inchangés plus (je crois que d'habitude et énumérées précédemment, une solution):
Raccourcis
Pour effectuer ces tâches courantes faciles à exécuter dans git, ajouter/mettre à jour les éléments suivants alias section de
.gitconfig
pour votre nom d'utilisateur (par exemple,~/.gitconfig
sur un *nix ou macOS):git hidden
, vous pouvez obtenir le même effet sans aliases ou des scripts, à l'aide de!
comme ceci:hidden = ! git ls-files -v | grep '^h' | cut -c3-
--really-refresh
n'a pas (ou n'est plus, peut-être il a fait une fois) effacer le supposer-inchangé drapeaux sur les fichiers d'index.Si vous voulez annuler tous les fichiers qui a été appliqué à assumer inchangé avec n'importe quel état, non seulement en cache (git marques par des caractères en minuscules), vous pouvez utiliser la commande suivante:
git ls-files -v
permettra d'imprimer tous les fichiers avec leur statutgrep '^[a-z]'
filtre les fichiers et sélectionnez seulement supposer inchangécut -c 3-
va supprimer le statut et laisser seulement les chemins d'accès, la coupe à partir de la 3-ème caractère de la fintr '\012' '\000'
remplacera le caractère de fin de ligne (\012) à zéro caractère (\000)xargs -0 git update-index --no-assume-unchanged
va passer tous les chemins séparés par le caractère zéro àgit update-index --no-assume-unchanged
pour annulerAjoutant à
@adardesign
's réponse, si vous souhaitez réinitialiser tous les fichiers qui ont été ajoutés àassume-unchanged
liste deno-assume-unchanged
en une seule fois, vous pouvez effectuer les opérations suivantes:Ce sera juste dépouiller les deux personnages de sortie de grep c'est à dire
"h "
, puis s'échapper des espaces qui peuvent être présents dans les noms de fichier, et enfin|| true
permettra d'éviter la commande de mettre fin prématurément au cas où certains fichiers dans la boucle comporte des erreurs.Si vous utilisez Git Extensions, puis suivez les étapes ci-dessous:
Vous avez terminé.
Rien ici qui ne sont pas couverts. Mais voudrais ajouter mes 2 cents. Parfois, je lance un build et ça change beaucoup de fichiers et ensuite, je veux travailler sur quelque chose, alors cette commande m'aide vraiment beaucoup.
git update-index --assume-unchanged `git status | grep modified | sed 's|modified:||g'| xargs`
Espère que quelqu'un d'autre de le trouver utile.
.gitignore
ignorer vos construire des artefacts..gitignore
mais qui est à la fois, dans mon expérience n'est pas suffisante. Mais je comprends le contexte dans lequel vous le dire.