Annuler git update-index --skip-worktree
Il y a un moment je l'ai fait pour ignorer les modifications apportées à un fichier de suivi par git:
git update-index --skip-worktree <file>
Maintenant je veux valider les modifications apportées à ce fichier source. Comment puis-je annuler les effets de skip-worktree
?
Grâce,
Kevin
- Je suis également intéressé comment faire pour obtenir la liste des fichiers dans "skip-worktree' état?
- stackoverflow.com/q/42363881/1615903
Vous devez vous connecter pour publier un commentaire.
Aha! Je veux simplement:
Selon http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html, utilisez
git ls-files -v
pour voir le "assumer stable" et "skip-worktree" les fichiers marqués d'une lettre spéciale. Le "skip-worktree" les fichiers sont marqués avec
S
.Modifier: Comme @amacleod mentionné, faire un alias de la liste de tous les fichiers cachés est une belle astuce pour avoir de sorte que vous n'avez pas besoin de vous en souvenir. J'utilise
alias hidden="git ls-files -v | grep '^S'"
dans mon .bash_profile. Il fonctionne très bien!git ls-files -v | grep '^S'
à la liste des fichiers que j'ai "caché" avec skip-worktree. Espérer de faire un alias "caché" pour cette commande, mais en mettant un tuyau de redirection dans l'alias n'a pas l'air de fonctionner.!
. Comme ce[alias] ignored = !git ls-files -v | grep "^S"
Testé, fonctionne.grep
, je ne sais pas. Dépend de votre coquille, je suppose. Git Bash ne viennent avecgrep
, je pense.'
n'ai pas de travail mais"
fait, c'est à diregit ls-files -v | grep "^S"
Si vous voulez annuler tous les fichiers qui ont été appliquées sauter worktree, vous pouvez utiliser la commande suivante:
git ls-files -v
permettra d'imprimer tous les fichiers avec leur statutgrep -i ^S
filtre les fichiers et sélectionnez seulement passer worktree (S) ou de l'ignorer worktree et d'assumer inchangé (s), -je les moyens d'ignorer la cassecut -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-skip-worktree
va passer tous les chemins séparés par le caractère zéro àgit update-index --no-skip-worktree
pour annulerBasé sur @GuidC0DE réponse, voici une version de Powershell (j'utilise posh-git)
Et pour la référence à l'inverse de commande pour masquer les fichiers:
Pour ceux qui utilisent Tortoise Git:
TortoiseGit > Check for modifications
Show ignore local changes flagged files
. Vous devriez voir le fichier que vous avez ignoré (ou tous les fichiers que vous avez ignoré, si vous avez cliqué avec le bouton droit sur le dossier)Unflag as skip-worktree and assume-unchanged