gpt4 book ai didi

python - 如果有任何东西要 pop ,只调用 'git stash pop'

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

我正在用 Python 创建提交后脚本并使用子进程调用 git 命令。

在我的脚本中,我想在运行某些命令之前存储所有更改,然后将它们 pop 。问题是,如果没有任何东西可以存储,stash pop 会返回一个非零错误代码,从而导致 subprocess.check_output() 中出现异常。我知道如何忽略错误返回码,但我不想这样做。

所以我一直在想。有什么方法可以获取当前 stash 的元素数量吗?我知道有一个命令“git stash list”,但是是否有更适合我的需要的东西或一些简单安全的方法来解析 git stash list 的输出?

也感谢解决此问题的其他方法。

最佳答案

不要那样做!

假设 git stash save 没有保存任何内容,但是 已经有一些项目在存储中。然后,当你全部完成后,你 pop 最近的存储,不是你创建的

你刚刚对用户做了什么?

在 shell 脚本代码中执行此操作的一种方法是在 git stash save 之前和之后检查 git rev-parse refs/stash 的结果。如果它发生变化(从失败到某事,或从某事到其他事),您就创建了一个新的存储,然后您可以在完成后将其 pop 。

较新版本的 Git 有 git stash create,它像往常一样创建提交对,但不会将它们放入 refs/stash 引用中。如果没有要保存的内容,git stash create 什么也不做,什么也不输出。这是处理该问题的更好方法,但它依赖于 Git 版本。

关于python - 如果有任何东西要 pop ,只调用 'git stash pop',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38776447/

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