来自 Git 个 Stash 的新分支会影响其他 Stash 吗?
New branch from Git Stash will affect other stashes?
我有一个主分支,我在其中存储了多个更改,现在我想从 {0} 处的存储更改创建一个新分支。但我怀疑创建新分支不会影响我的其他存储,因为 git
会在创建新分支后删除我的存储。 git
只会删除位于 {0} 索引处的存储,还是会删除所有存储?隐藏的更改对我来说太IMP了。
简答:不用担心,隐藏条目彼此独立。加油吧。
更长的答案:(有一个直观的例子)
为了帮助描绘它,可以将存储视为不相关提交的列表,每个指向 repo 树中的不同点。
参见下面的假设情况
F---G <<< feature/abc
/
/ H---I <<< bugfix/123
/ / \
A---B---C---D---E---F---J <<< master
\
\
K---L---M <<< feature/xyz
和以下假设情景
在过去的几天里,您在这些不同的分支上工作时多次隐藏更改。
假设你藏了三次 :
一次 feature/abc
在你第一次尝试提交 G
时,因为你对你的第一种方法完全不满意,但想把它放在手边以防万一。
然后你在 bugfix/123 上工作时被打断了,在提交 H
之后,不得不切换分支。后来你回到 bugfix/123
然后做了一个 git stash apply
而不是 git stash pop
来保持条目在存储中存活以供以后 reuse/inspection.
最后
在 feature/xyz
工作时 - 在
L
之后不得不再次藏起来
(操作按此顺序进行。)
结果隐藏情况
此时你的隐藏列表看起来像
stash@{0}: WIP on feature/xyz: f1d6b3a unfinished - get rid of var dumps
stash@{1}: WIP on hotfix/123: 94722ae unfinished - css still broken
stash@{2}: WIP on feature/abc: 4fb4785 no good - test T1 failed
但重要的一点是,因为存储条目在创建条目时会作为父项,无论哪个提交 HEAD 指向 :
L
是 f1d6b3a
的父级(我们称它为 L'
)
H
是 94722ae
的父级(我们称它为 H'
)
F
是 4fb4785
的父级(我们称它为 F'
)
在树中可以表示为
F' <<< stash@{2}
/
F---G <<< feature/abc H' <<< stash@{1}
/ /
/ H---I <<< bugfix/123
/ / \
A---B---C---D------------------E---F---J <<< master
\
\
K---L---M <<< feature/xyz
\
L' <<< stash@{0}
那么很容易看出,尽管它们在您的 stash list
中按顺序列出,但实际上它们是无关的。
我有一个主分支,我在其中存储了多个更改,现在我想从 {0} 处的存储更改创建一个新分支。但我怀疑创建新分支不会影响我的其他存储,因为 git
会在创建新分支后删除我的存储。 git
只会删除位于 {0} 索引处的存储,还是会删除所有存储?隐藏的更改对我来说太IMP了。
简答:不用担心,隐藏条目彼此独立。加油吧。
更长的答案:(有一个直观的例子)
为了帮助描绘它,可以将存储视为不相关提交的列表,每个指向 repo 树中的不同点。
参见下面的假设情况
F---G <<< feature/abc
/
/ H---I <<< bugfix/123
/ / \
A---B---C---D---E---F---J <<< master
\
\
K---L---M <<< feature/xyz
和以下假设情景
在过去的几天里,您在这些不同的分支上工作时多次隐藏更改。
假设你藏了三次 :
一次
feature/abc
在你第一次尝试提交G
时,因为你对你的第一种方法完全不满意,但想把它放在手边以防万一。然后你在 bugfix/123 上工作时被打断了,在提交
H
之后,不得不切换分支。后来你回到bugfix/123
然后做了一个git stash apply
而不是git stash pop
来保持条目在存储中存活以供以后 reuse/inspection.
最后
-
在
- 在
L
之后不得不再次藏起来
feature/xyz
工作时 (操作按此顺序进行。)
结果隐藏情况
此时你的隐藏列表看起来像
stash@{0}: WIP on feature/xyz: f1d6b3a unfinished - get rid of var dumps
stash@{1}: WIP on hotfix/123: 94722ae unfinished - css still broken
stash@{2}: WIP on feature/abc: 4fb4785 no good - test T1 failed
但重要的一点是,因为存储条目在创建条目时会作为父项,无论哪个提交 HEAD 指向 :
L
是 f1d6b3a
的父级(我们称它为 L'
)
H
是 94722ae
的父级(我们称它为 H'
)
F
是 4fb4785
的父级(我们称它为 F'
)
在树中可以表示为
F' <<< stash@{2}
/
F---G <<< feature/abc H' <<< stash@{1}
/ /
/ H---I <<< bugfix/123
/ / \
A---B---C---D------------------E---F---J <<< master
\
\
K---L---M <<< feature/xyz
\
L' <<< stash@{0}
那么很容易看出,尽管它们在您的 stash list
中按顺序列出,但实际上它们是无关的。