Heim  >  Artikel  >  Entwicklungswerkzeuge  >  Detaillierte Erläuterung des temporären Speichervorgangs von „git stash“

Detaillierte Erläuterung des temporären Speichervorgangs von „git stash“

Guanhui
Guanhuinach vorne
2020-07-23 18:01:274716Durchsuche

Detaillierte Erläuterung des temporären Speichervorgangs von „git stash“

Warum wir es brauchen

Nicht erlaubt Unnötig zu sagen, dass ich, als ich von diesem Befehl erfuhr und ihn später verwendete, ihn so sehr liebte, weil er so einfach zu verwenden ist.

Lassen Sie mich Ihnen etwas über das Szenario erzählen, wenn ich diesen Befehl verwende:

Zu diesem Zeitpunkt befinde ich mich im Zweig feature_666 und bin sehr konzentriert und konzentriert auf die Implementierung eines Feature 666-Moduls. Ich kann Code wie eine fliegende Tastatur schreiben~ ~~
Dann meldete der Kunde zu diesem Zeitpunkt einen Fehler, der sehr schwerwiegend war und sofort behoben werden muss, mit einer Priorität von 0! ! !
Ich muss also zum Release-Zweig gehen, um zu überprüfen, ob der neue Zweig funktioniert, aber was soll ich tun, wenn die 666-Funktion noch nicht abgeschlossen ist?
Zu diesem Zeitpunkt stand ich vor einer Multiple-Choice-Frage:
A: Wechseln Sie nach dem Absenden und der Code wird in der Verzweigung feature_666 gespeichert, aber es wird ein bedeutungsloses Commit generiert.
B: Direkt wechseln, ohne zu senden, aber Diese Option ist überhaupt nicht verfügbar. Werde wählen.

Ist es nicht schwierig, sich zu entscheiden? Vergessen Sie nicht, dass es Option C gibt!

C: Verwenden Sie Git Stash, um die aktuellen Änderungen (nicht festgeschriebenen Code) im Cache zu speichern, wechseln Sie die Zweige, um Fehler zu ändern, und kehren Sie dann zurück und entfernen Sie sie über Git Stash Pop.

1. Temporärer Betrieb

#查看当前状态
git status 
#如果有修改,添加修改文件
git add .
#暂存操作
git stash save '本次暂存的标识名字'

2. Die aktuell temporär gespeicherten Datensätze anzeigen

#查看记录
git stash list

Wo werden die Änderungen gespeichert?

Wenn wir git init verwenden, um dem Projekt Versionskontrolle hinzuzufügen, wird es in sein Unter dem Projektpfad wird ein versteckter .git-Ordner generiert. .git speichert alle Informationen zur Versionsverwaltung.
.git/refs/stash speichert den Knotenzeiger, der dem letzten Stash entspricht

Ebenso können Sie alle unsere Stash-Datensatzinformationen in .git/log/refs/stash sehen

Situation des Speicherns mehrerer Stashs

OK, versuchen wir, die Datei zu ändern und dann erneut Git-Stash zu verwenden. Zu diesem Zeitpunkt haben wir zwei vorübergehende Änderungen, also was?

Git-Stash-Liste // Alle temporären Änderungsdatensätze im temporären Speicherbereich anzeigen

Wenn Sie Git-Stash zweimal ohne Festschreibung ausführen, können Sie die spezifischen Änderungen der beiden Stashes nicht genau unterscheiden Lässt Git auf diese Weise großartig aussehen? Es ist überhaupt nicht schlau, wie könnte das möglich sein! .

In diesem Fall ist es natürlich sehr wichtig, den im Stash gespeicherten Änderungen einen Namen zu geben, wie folgt:

git stash save <message>

Stellen Sie die Staging-Arbeit wieder her

'Der Befehl pop stellt die Wiederherstellung her. Nach der Wiederherstellung löscht der temporäre Speicherbereich den aktuellen Datensatz.'

#恢复指定的暂存工作, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash pop stash@{index}

'Der Befehl apply stellt die Wiederherstellung nach der Wiederherstellung her , der temporäre Speicherbereich Der aktuelle Datensatz bleibt erhalten'

#恢复指定的暂存工作, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash apply stash@{index}

4. Temporären Speicher löschen

#删除某个暂存, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash drop stash@{index}
#删除全部暂存
git stash clear

Empfohlenes Tutorial: " Git-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des temporären Speichervorgangs von „git stash“. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen