You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/07-git-tools/sections/stashing-cleaning.asc
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
[[_git_stashing]]
2
2
=== Stashen und Bereinigen
3
3
4
-
Es passiert manchmal, dass dein Projekt nach einer Bearbeitung in einem unordentlichen Zustand. Stelle dir vor du willst in einen anderen Branch wechseln, um an etwas anderem zu arbeiten.
5
-
Das Problem ist, dass du keinen Commit mit halbfertiger Arbeit machen willst, nur um später an diesen Punkt zurückkehren zu können.
4
+
Es passiert manchmal, dass du mitten in der Bearbeitung deines Pojektes vorübergehend in einen anderen Branch wechseln musst, um an einem anderen Teil des Projektes zu arbeiten.
5
+
Das Problem ist, du möchtest keinen Commit mit deiner halbfertigen Arbeit erstellen, nur um später an diesen Punkt zurückkehren zu können.
6
6
Die Antwort auf dieses Problem ist der Befehl `git stash`.
7
7
8
8
Stashing nimmt den unsauberen Zustand deines Arbeitsverzeichnisses – das heißt, deine geänderten, getrackten Dateien und gestagte Änderungen – und speichert ihn in einem Stapel unvollendeter Änderungen, die du jederzeit (auch auf einen anderen Branch) wieder anwenden kannst.
@@ -37,7 +37,7 @@ Changes not staged for commit:
37
37
modified: lib/simplegit.rb
38
38
----
39
39
40
-
Du möchtest nun den Branch wechseln, aber du willst das bisherige noch nicht committen, also solltest du die Änderungen stashen.
40
+
Du möchtest nun den Branch wechseln, willst aber das bisherige noch nicht committen, also solltest du die Änderungen stashen.
41
41
Um einen neuen Stash zu erstellen, führe `git stash` oder `git stash push` aus:
42
42
43
43
[source,console]
@@ -58,7 +58,7 @@ $ git status
58
58
nothing to commit, working directory clean
59
59
----
60
60
61
-
An dieser Stelle kannst du die Branches wechseln und anderswo arbeiten. Deine Änderungen werden solange gespeichert.
61
+
An dieser Stelle kannst du die Branches wechseln und anderswo arbeiten. Deine angefangene Arbeit wird solange zwischengespeichert.
62
62
Um zu sehen, welche Stashes du gespeichert hast, kannst du `git stash list` verwenden:
63
63
64
64
[source,console]
@@ -71,8 +71,8 @@ stash@{2}: WIP on master: 21d80a5 Add number to log
71
71
72
72
Hier wurden vorher schon zwei Stashes gespeichert, so dass du Zugriff auf drei verschiedene gestashte Arbeiten hast.
73
73
Du kannst den soeben versteckten Stash erneut aufrufen, indem du den Befehl verwendest, der in der Hilfe-Anzeige des ursprünglichen Stash-Befehls angezeigt wird: `git stash apply`.
74
-
Wenn du einen der früheren Stashes anwenden möchtest, kannst du ihn durch einen Namen angeben, etwa so: `git stash apply stash@{2}`.
75
-
Wenn du keinen Stash angibst, nimmt Git den neuesten Stash und versucht, ihn zu übernehmen:
74
+
Wenn du einen der früheren Stashes anwenden möchtest, musst du diesen explizit benennen, etwa so: `git stash apply stash@{2}`.
75
+
Wenn du keinen Stash-Namen angibst, nimmt Git den neuesten Stash und versucht, ihn zu übernehmen:
76
76
77
77
[source,console]
78
78
----
@@ -89,14 +89,14 @@ no changes added to commit (use "git add" and/or "git commit -a")
89
89
----
90
90
91
91
Du kannst sehen, dass Git die Dateien, die du beim Speichern des Stashes zurückgesetzt hast, erneut modifiziert.
92
-
In diesem Fall hattest du ein sauberes Arbeitsverzeichnis, als du versucht hast, den Stash anzuwenden den du auf den gleichen Branch anwenden wolltest, aus dem du ihn erzeugt hast.
93
-
Ein sauberes Arbeitsverzeichnis und dessen Anwendung auf denselben Branch sind nicht nötig, um einen Stash erfolgreich anzulegen.
94
-
Du kannst einen Stash in einem Branch speichern, später in einen anderen Branch wechseln und erneut versuchen, die Änderungen zu übernehmen.
95
-
Du kannst auch geänderte und nicht übertragene Dateien in deinem Arbeitsverzeichnis haben, wenn du einen Stash anwendest. Git meldet dir Merge-Konflikte, wenn etwas nicht mehr sauber funktioniert.
96
-
97
-
Die Änderungen an deinen Dateien wurden erneut angewendet, aber die Datei, die du zuvor bereitgestellt hast, wurde nicht neu eingestellt.
98
-
Um das zu erreichen, musst du den Befehl `git stash apply` mit der Option `--index` ausführen und so dem Befehl anweisen, dass er versuchen soll, die gestagten Änderungen erneut anzuwenden.
99
-
Hättest du stattdessen diesen Befehl ausgeführt, wärst du an deine ursprüngliche Position zurückgekehrt:
92
+
In diesem Fall hast du versucht, den Stash auf ein sauberes Arbeitsverzeichnis anzuwenden, und zwar auf den gleichen Branch, aus dem du den Stash zuvor erzeugt hast.
93
+
Ein sauberes Arbeitsverzeichnis und dessen Anwendung auf denselben Branch sind nicht nötig, um einen Stash erfolgreich anzuwenden.
94
+
Du kannst einen Stash in einem Branch speichern, später in einen anderen Branch wechseln und versuchen, die Änderungen dort zu übernehmen.
95
+
Du kannst auch geänderte und nicht übertragene Dateien in deinem Arbeitsverzeichnis haben, während du einen Stash anwendest. Git meldet dir Merge-Konflikte, wenn etwas nicht mehr sauber funktioniert.
96
+
97
+
Die Änderungen wurden erneut auf deine Dateien angewendet, aber die Datei, die zuvor bereits zum Commit vorgemerkt war, wurde der Staging-Area noch nicht wieder hinzugefügt.
98
+
Um das zu erreichen, musst du den Befehl `git stash apply` stattdessen mit der Option `--index` ausführen und so dem Befehl anweisen, auch den vorherigen Zustand der Staging-Area wiederherzustellen.
99
+
Auf diese Weise wärst du an deine ursprüngliche Position zurückgekehrt:
0 commit comments