通常在我运行的时候:
git stash push --all
如果我没有任何修改,则不会将任何内容推送到stash上。在这种情况下,是否有可能强制推送,以便git stash push --all && git stash pop
始终提供身份?
我之所以这样问,是因为在一些脚本中,我想要stash push
,做一些事情,和stash pop
,如果stash推送没有创建新的stash,stash pop可能会弹出旧的和无关的stash。另一种解决方案是从GitPython检测到没有发生存储(我会说通过比较两个连续repo.git.stash("list")
的输出),但这也会使代码变得有点复杂。
谢谢!
发布于 2019-01-24 02:28:10
git stash
的一般用途是存储您不想提交的更改的数据,或者稍后当您交换到另一个分支时返回到此更改。那么,如果您没有任何未提交的更改,您希望如何隐藏某些内容?我认为这是你的行为与变化的问题。获得相同结果的更简单方法是将存储库/分支状态重置为实际提交,然后隐藏pop。我的意思是我会向你推荐这样的东西。git stash
-> do some stuff -> git reset --hard
(这将丢弃所有本地更改,但不会清除stash),然后在"do some stuff“之前使用git pop
获取状态。
发布于 2019-01-24 06:14:18
除了torek的评论之外,即使这不能解决我最初的问题,但这对我的问题来说已经足够了:我想指出GitPython repo.is_dirty(untracked_files=True)
的功能,它很有用,可以检查您是否有任何东西到stash push --all
。这样我就可以保存这个值以备以后使用,并且如果我之前没有使用stash push --all
,就不会使用stash pop
。
注意:到目前为止,它似乎是有效的,但可能我错过了一些在某些情况下可能很重要的重要选项,所以如果是这样的话,请让我知道!
https://stackoverflow.com/questions/54333374
复制相似问题