2010-06-26 14 views

Antwort

2

Kurze Antwort: Nein, das ist nicht, wie der Stapel funktioniert. Sie können jedoch Folgendes tun, um das Ergebnis zu erhalten, das Sie suchen.

Unter der Annahme, dass Sie einige andere Änderungen gebunkert haben, machte dann einige weitere Änderungen an Ihrem Index (ursprünglichen Änderungen) und Sie entscheiden, dass Sie diese Änderungen beibehalten möchten, während das Versteck ändern:

#verify the state you are in 
git stash list 
git status 

git stash #push work in progress on the stash 
git stash list #check which stash you need 
git stash show [email protected]{1} #check the changes in the stash 

git stash pop [email protected]{1} #you're now ready to change your 'other' changeset 
# hack hack 
git stash #modified 'other' change set pushed on the stash 
git stash pop [email protected]{1} #your 'original changes' 

Ich würde diesen Workflow empfehlen, anstatt den Stash direkt zu ändern. Wenn Sie in Stash-Nummern verloren gehen, können Sie auch verwenden git stash save 'some other changes'

An einem Punkt (wahrscheinlich näher als Sie denken) ist es einfacher, den Überblick über echte Zweige zu behalten.

1

Sie könnten versuchen, nach dem Stapel knallen, um die Datei als „unverändert“ bunkern wollen nicht markieren:

git update-index --assume-unchanged -- /path/to/file 

, und dann beiseite zu schaffen versuchen, wenn die Dateiprüfung enthalten ist oder nicht.

git update-index man page:

--assume-unchanged 
--no-assume-unchanged 

Wenn diese Flags angegeben werden, werden die Objektnamen für die Pfade aufgezeichnet nicht aktualisiert.
Stattdessen setzen und deaktivieren diese Optionen das Bit "angenommen unverändert" für die Pfade.

Wenn das Bit "assume unverändert" aktiviert ist, überprüft git die Arbeitsbaumdateien auf mögliche Änderungen. Sie müssen das Bit daher manuell zurücksetzen, um git zu informieren, wenn Sie die Arbeitsbaumdatei ändern.
Dies ist manchmal hilfreich, wenn Sie mit einem großen Projekt in einem Dateisystem arbeiten, das einen sehr langsamen lstat(2) Systemaufruf hat (z. B. cifs).

Diese Option kann auch als ein grobe Dateiebene Mechanismus verwendet werden, unbestätigte Änderungen in getrackten Dateien (ähnlich zu dem, was .gitignore tut für untracked-Dateien) zu ignorieren

Verwandte Themen