gpt4 book ai didi

git - `git pop last` 的别名 : `git stash pop [last stash on the list]` ,

转载 作者:太空狗 更新时间:2023-10-29 13:35:05 27 4
gpt4 key购买 nike

这可能吗?我想要一个更简单的命令来 git stash pop stash@{13} 其中 stash@{13} 只是 last 意思是“最后的存储在列表上”或“最古老的藏品”。

我知道我可以为 git stash pop 创建一个 git pop 的别名(我可以像 git pop stash@{13}),但我想要更简单的东西,比如 git pop last。我是否需要编写自己的脚本,或者是否有办法仅使用 git 或别名来完成?我主要使用 Windows,但有时使用 Linux。

最佳答案

根据 @torek 提供的提示构建,这应该让你得到你想要的 stash 的引用:

git reflog stash -- 2> /dev/null | tail -n 1 | cut -d ' ' -f 2 | cut -d ':' -f 1

-- 确保您正在寻找修订版而不是路径。 2>/dev/null 在没有存储的情况下抑制错误。

避免使用 cut 的替代方法(@torek 再次建议)是:

git log --walk-reflogs --format=%gd stash -- 2> /dev/null | tail -n 1

因此,您可以像这样设置您的别名:

git config alias.pop-last "! git stash pop $(git reflog stash -- 2> /dev/null | tail -n 1 | cut -d ' ' -f 2 | cut -d ':' -f 1)"

或者:

git config alias.pop-last "! git stash pop $(git log --walk-reflogs --format=%gd stash -- 2> /dev/null | tail -n 1)"

如果没有找到,这些命令中的任何一个都会给你一个很好的错误:No stash found.

我已经测试过,这在 Windows 上的 Git Bash 提示符下有效。 (它应该也适用于 Linux。)

关于git - `git pop last` 的别名 : `git stash pop [last stash on the list]` ,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39174691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com