652 Stimmen

Rückgängig machen git update-index --assume-unchanged <file>

Ich habe den folgenden Befehl ausgeführt, um das Beobachten/Verfolgen eines bestimmten Verzeichnisses/einer bestimmten Datei zu ignorieren:

git update-index --assume-unchanged 

Wie kann ich das rückgängig machen, so dass wieder beobachtet/verfolgt wird?

841voto

adardesign Punkte 31386

Um rückgängig zu machen/anzeigen dir/Dateien, die auf --assume-unchanged gesetzt sind, führen Sie Folgendes aus:

git update-index --no-assume-unchanged 

Um eine Liste von dir/Dateien zu erhalten, die assume-unchanged sind, führen Sie dies in einer Unix-Shell aus:

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

oder in einem PowerShell:

git ls-files -v | Select-String -CaseSensitive '^h'

144voto

adswebwork Punkte 5019

Wenn dies ein Befehl ist, den Sie oft verwenden - möchten Sie vielleicht auch eine Alias dafür haben. Fügen Sie zu Ihrer globalen .gitconfig hinzu:

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged

So setzen Sie ein Alias (wenn Sie es noch nicht wissen):

git config --configLocation alias.aliasName 'Befehl --Optionen'

Beispiel:

git config --global alias.hide 'update-index --assume-unchanged'
git config... etc

Nachdem Sie dies in Ihre .gitconfig gespeichert haben, können Sie einen saubereren Befehl ausführen.

git hide myfile.ext

oder

git unhide myfile.ext

Diese Git-Dokumentation war sehr hilfreich.

Wie in den Kommentaren erwähnt, ist dies auch ein hilfreiches Alias, um herauszufinden, welche Dateien derzeit versteckt sind:

[alias]
    hidden = ! git ls-files -v | grep '^h' | cut -c3-

57voto

Will Punkte 5823

Um die ausgezeichneten Originalantworten von @adardesign, @adswebwork und @AnkitVishwakarma sowie die Kommentare von @Bdoserror, @Retsam, @seanf und @torek zu synthetisieren, mit zusätzlichen Dokumentationslinks und knappen Aliasen...

Grundbefehle

Um eine Datei, die als assume-unchanged markiert ist, auf normal zurückzusetzen:

git update-index --no-assume-unchanged 

Um alle Dateien aufzulisten, die als assume-unchanged markiert sind:

git ls-files -v | grep '^[a-z]' | cut -c3-

Um alle als assume-unchanged markierten Dateien auf normal zurückzusetzen:

git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git update-index --no-assume-unchanged --

Hinweis: Dieser Befehl, der anderswo aufgeführt wurde, scheint nicht mehr alle als assume-unchanged markierten Dateien zurückzusetzen (ich glaube, dass es früher so war und es bisher als Lösung aufgelistet wurde):

git update-index --really-refresh

Abkürzungen

Um diese häufigen Aufgaben in git leicht auszuführen, fügen Sie den folgenden Alias-Abschnitt in Ihre .gitconfig für Ihren Benutzer hinzu/aktualisieren Sie ihn (z. B. ~/.gitconfig auf einem *nix- oder macOS-System):

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged
    unhide-all = ! git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git unhide --
    hidden = ! git ls-files -v | grep '^[a-z]' | cut -c3-

46voto

Ankit Vishwakarma Punkte 1430

Die Git update-index-Funktion verfügt über mehrere Optionen, die Sie eingeben können, wie unten beschrieben:

git update-index --help

Hier finden Sie verschiedene Optionen - wie Sie mit der Funktion update-index umgehen können.

[wenn Sie den Dateinamen nicht kennen]

git update-index --really-refresh 

[wenn Sie den Dateinamen kennen]

git update-index --no-assume-unchanged 

wird alle Dateien zurücksetzen, die der Ignorierliste hinzugefügt wurden.

git update-index --assume-unchanged

43voto

hobbs Punkte 204816

Ich nehme an (heh), dass du --assume-unchanged gemeint hast, da ich keine --assume-changed Option sehe. Das Gegenstück zu --assume-unchanged ist --no-assume-unchanged.

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