Nein, es scheint keinen Unterschied zu geben.
Es ist mehr, um die git reset --soft
(d. H.nur bewegenden Kopf, der kann have other more practical uses)
git reset HEAD
ist für „unstaging“, und eine einfache git reset HEAD^
nicht beide (den Kopf bewegen und unstage, keine Notwendigkeit für --mixed
, da es die Standardoption ist)
Hier ist ein kurzer Test, um zu sehen, wie das aussieht:
Vor (Sie gerade zurück zu Funktion zu wechseln, in dem Sie ein „wip
“ begangen - work in progress):
C:\Users\VonC\prog\git\test\r\r3>gl
* 6ac95bd - (origin/master, origin/HEAD, master) fix in master (2 minutes ago) <VonC>
| * fd8d97d - (HEAD, origin/feature, feature) snap WIP (3 minutes ago) <VonC>
| * 16066dd - f1 (3 minutes ago) <VonC>
|/
* e8ad96f - f1 (3 minutes ago) <VonC>
Der Reset selbst:
C:\Users\VonC\prog\git\test\r\r3>git reset "HEAD^"
Unstaged changes after reset:
M f
dass Sie den Status gibt:
C:\Users\VonC\prog\git\test\r\r3>git st
# On branch feature
# Your branch is behind 'origin/feature' by 1 commit, and can be fast-forwarded.
# (use "git pull" to update your local branch)
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: f
#
no changes added to commit (use "git add" and/or "git commit -a")
Protokoll nach git reset HEAD^
C:\Users\VonC\prog\git\test\r\r3>gl
* 6ac95bd - (origin/master, origin/HEAD, master) fix in master (6 minutes ago) <VonC>
| * fd8d97d - (origin/feature) snap WIP (7 minutes ago) <VonC>
| * 16066dd - (HEAD, feature) f1 (7 minutes ago) <VonC>
|/
* e8ad96f - f1 (8 minutes ago) <VonC>
In zwei Schritten, hätten Sie gesehen, die folgendes Protokoll nach dem git reset --soft HEAD^
:
C:\Users\VonC\prog\git\test\r\r2>gl
* 6ac95bd - (origin/master, origin/HEAD, master) fix in master (65 seconds ago) <VonC>
| * fd8d97d - (origin/feature) snap WIP (89 seconds ago) <VonC>
| * 16066dd - (HEAD, feature) f1 (2 minutes ago) <VonC>
|/
* e8ad96f - f1 (2 minutes ago) <VonC>
Sie Index würde immer noch überlegen, was für wip
inszeniert wurde:
C:\Users\VonC\prog\git\test\r\r2>git st
# On branch feature
# Your branch is behind 'origin/feature' by 1 commit, and can be fast-forwarded.
# (use "git pull" to update your local branch)
#
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: f
#
Der Reset würde dann unstaged, Sie wieder auf die gleiche Stufe zu bringen als ein git reset HEAD^
in einem Schritt haben würde:
C:\Users\VonC\prog\git\test\r\r2>git reset
Unstaged changes after reset:
M f
C:\Users\VonC\prog\git\test\r\r2>git st
# On branch feature
# Your branch is behind 'origin/feature' by 1 commit, and can be fast-forwarded.
# (use "git pull" to update your local branch)
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: f
#
no changes added to commit (use "git add" and/or "git commit -a")
Danke für die Bestätigung. Und sicherlich gibt es andere Anwendungen für git reset --soft. (Im einfachsten Fall gibt es oft auch keinen Grund, den Index zurückzusetzen. In diesem Fall erspart Soft Ihnen die Notwendigkeit, die Dateien neu zu staffeln.) Aber es ist gut zu wissen, dass die beiden nicht notwendig sind -Stage-Prozess, wenn Sie den Index ebenfalls zurücksetzen möchten. Warum sollten Sie mehr Zeichen eingeben als nötig? –
@NathanStretch Ich stimme zu. Es ist mehr eine Wahl zu geben (für den Fall, dass Sie eine laufende Arbeit, bestehend aus Evolutionen, die inszeniert werden sollten, und * anderen * Evolutionen, die separat aufgeführt werden sollen *, geben: dann werden Sie alles auflösen und "git add" was Sie tun möchte dich zuerst in deinem wip verpflichten. – VonC