390 Stimmen

Kann ich eine Liste der mit --assume-unchanged gekennzeichneten Dateien erhalten?

Was habe ich markiert als --assume-unchanged ? Gibt es eine Möglichkeit, mit dieser Option herauszufinden, was ich verstaut habe?

Ich habe mich durch die .git/ Verzeichnis und sehe nichts, was so aussieht, wie ich es erwarten würde, aber es muss irgendwo sein. Ich habe vergessen, was ich vor ein paar Wochen auf diese Weise markiert habe, und jetzt muss ich diese Details für zukünftige Entwickler dokumentieren.

522voto

Andrew Aylett Punkte 37790

Sie können verwenden git ls-files -v . Wenn das gedruckte Zeichen ein Kleinbuchstabe ist, wird die Datei als "assumed-unchanged" markiert.

Um nur die unveränderten Dateien zu drucken, verwenden Sie:

git ls-files -v | grep '^[[:lower:]]'

Um Ihren faulen Programmierer zu umarmen, verwandeln Sie dies in eine Git-Alias . Bearbeiten Sie Ihr .gitconfig Datei, um dieses Snippet hinzuzufügen:

[alias]
    ignored = !git ls-files -v | grep "^[[:lower:]]"

Jetzt tippen git ignored ergibt eine Ausgabe wie diese:

h path/to/ignored.file
h another/ignored.file

92voto

ryenus Punkte 13738

Einzeiler

git ls-files -v | grep "^[a-z]"

Aliase verwenden

IMHO, git hidden ist besser für Dateien, die als --assume-unchanged :

git config --global alias.hidden '!git ls-files -v | grep "^[a-z]"'

Hier ist eine Liste der verwandten Aliase, die ich in ~/.gitconfig :

[alias]
  hide = update-index --assume-unchanged
  unhide = update-index --no-assume-unchanged
  unhide-all = update-index --really-refresh
  hidden = !git ls-files -v | grep \"^[a-z]\"
  ignored = !git status -s --ignored | grep \"^!!\"

Damit es funktioniert in Unterverzeichnisse und Unterstützung Argumente :

  hidden = "!f(){ git -C \"$GIT_PREFIX\" ls-files -v \"$@\" | grep \"^[a-z]\";}; f"
  ignored = "!f(){ git -C \"$GIT_PREFIX\" status -s --ignored \"$@\" | grep \"^!!\";}; f"

Zum Beispiel:

 # cd target
 # git ignored classes

Über den Dateistatus

Für mich sind die meisten versteckt Dateien sind mit dem Flag h obwohl es laut dem Handbuch von git-ls-files-v :

-v
    Similar to -t, but use lowercase letters for files that are 
marked as assume unchanged (see git-update-index(1)).

Über git ls-files-t :

This option (-t) identifies the file status with the following tags 
(followed by a space) at the start of each line:

H   cached
S   skip-worktree
M   unmerged
R   removed/deleted
C   modified/changed
K   to be killed
?   other

30voto

earl3s Punkte 2273

Dieser Befehl funktioniert bei mir besser. Es werden nur die Dateien gedruckt, die als "assume-unchanged" aufgeführt sind.

git ls-files -v|grep "^h"

Ich habe dies schon oft in verschiedenen Umgebungen verwendet und es funktioniert perfekt.

12voto

Volodymyr Punkte 1104

Windows-Befehlszeile Lösung mit findstr :

git ls-files -v | findstr /B h

9voto

Thowk Punkte 353

PowerShell-Lösung, mit Select-String \ sls

git ls-files -v | sls -pattern ^h -casesensitive

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X