繁体   English   中英

Git隐藏推送,无修改

[英]Git stash push with no modification

通常在我跑步时:

git stash push --all

如果我没有任何修改,则不会在存储库中推送任何内容。 即使在这种情况下也可以强制执行推送,以便git stash push --all && git stash pop始终提供标识吗?

我之所以问是因为,在某些脚本中,我想stash push ,执行一些操作并stash pop ,并且如果存储推入未创建新存储,则存储弹出可能会弹出较旧且无关的存储。 另一个解决方案是从GitPython中检测到没有隐藏操作(我想通过比较两个连续的repo.git.stash("list")的输出),但是这也会使代码复杂化。

谢谢!

git stash一般用法是存储您不想提交的更改数据,例如,当您交换到另一个分支时,稍后再返回此更改。 因此,如果您没有任何未提交的更改,则如何存储某些内容? 我认为您的行为变化有问题。 获得相同结果的更简单方法是将存储库/分支状态重置为实际提交,然后隐藏弹出。 我的意思是我会推荐你​​这样的东西。 git stash >做一些事情-> git reset --hard (这会丢弃所有本地更改,但不会清除stash),然后使用git pop在“做一些事情”之前获取您的状态。

除了torek的评论之外,即使这不能解决我最初的确切问题,也足以解决我的问题:我想指出GitPython repo.is_dirty(untracked_files=True)的功能,该功能可用于检查如果您有什么stash push --all 这样,我可以保存此值以供以后使用,如果我之前没有stash push --all则不stash pop

注意:到目前为止,它似乎仍然有效,但是也许我错过了一些可能在某些情况下可能很重要的重要选择,所以让我知道是否是这种情况!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM