在
git stash show stash@{x}
x 可以取什么值(除了指向存储序列号的整数)?
我知道的唯一值是以下所列的值:
git stash list
即您在问题中所指的“整数”(0、1、2、...)或基于时间的语法:
您创建的最新存储存储在
refs/stash
; 较旧的存储可在此参考的 reflog 中找到,并且可以使用通常的 reflog 语法命名
(例如stash@{0}
,是最近创建的存储,stash@{1}
是它之前的存储,
stash@{2.hours.ago}
也是可能的)。
如果是这样,值列表是 中指定的值的一部分git rev-parse
,主要受以下两个类别的启发:
一个 ref 后跟
@
带有日期规范的后缀,括在大括号对(例如{yesterday}
,{1 month 2 weeks 3 days 1 hour 1 second ago}
或{1979-02-26 18:30:00}
)中,以指定 ref 在先前时间点的值。
此后缀只能紧跟在 ref 名称之后使用,并且 ref 必须具有现有的日志 ($GIT_DIR/logs/<ref>
)。
请注意,这会在给定时间查找本地 ref 的状态;例如,上周您当地的 master 分支中的内容。一个 ref 后跟
@
带有序号规范的后缀,包含在一个大括号对(例如{1}
,{15}
)中,以指定该n-th
ref 的先前值。
例如master@{1}
,是 master 的直接先验值,而是 mastermaster@{5}
的第 5 个先验值。
此后缀只能紧跟在 ref 名称之后使用,并且 ref 必须具有现有的日志 ($GIT_DIR/logs/<ref>
)。
git show stash@{0}
向您显示存储条目的 sha1,应该是绝对唯一的。