Kyl*_*and 4 git shell git-stash
我项目中"最古老的"藏匿是我需要不时重新申请的东西.(是的,这是有原因的,是的,这很糟糕,但修复底层问题比git stash现在使用更耗时.)
但是,最旧的存储在列表中具有最高编号,因此我不能在不首先使用它git stash list来查看它的数字的情况下应用它.
有没有办法让Git打印出它当前持有的stashes数量,所以这样的东西总会打印出最后一个stash(在支持这种命令插值的shell中)?
git stash apply $(git stash <count-command>)
Run Code Online (Sandbox Code Playgroud)
我意识到我可以使用这样的东西:
git stash list | tail -1 | awk '{print $1}' | grep -oP '\d+'
Run Code Online (Sandbox Code Playgroud)
......但这很可怕,所以我想知道是否有更简单的东西.
给出一个带有这个藏匿处的小型示例存储库:
> git stash list
stash@{0}: WIP on foo/master: d9184b5 ...
stash@{1}: WIP on foo/master: d9184b5 ...
Run Code Online (Sandbox Code Playgroud)
这将为您提供存储条目的数量:
> git rev-list --walk-reflogs --count refs/stash
2
Run Code Online (Sandbox Code Playgroud)
但是你必须减去1最后一个条目:-(感谢@alfunx可以在没有shell算术的情况下完成:
> git rev-list --walk-reflogs --count --skip 1 refs/stash
1
Run Code Online (Sandbox Code Playgroud)
但是要直接获取最老的存储引用,您可以使用:
> git log --walk-reflogs --pretty="%gd" refs/stash | tail -1
stash@{1}
Run Code Online (Sandbox Code Playgroud)
这适用于您的情况,因为git stash apply支持普通数字和stash@{$NUMBER}存储的标识符.
给出的解决方案过于复杂。
一个简单的解决方案就是计算由给出的行数git stash list
$ git stash list | wc -l
65
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |