如何删除使用git创build的存储创build?
Git存储似乎做了很多我想要的,除了脚本有点难,因为如果你没有变化,然后git stash; git stash pop
git stash; git stash pop
将做一些不同的,如果你有你的存储库的变化。
看起来git stash create
是这个问题的答案,一切正常,除了一件事情…我不能摆脱创build的存储。 有什么办法摆脱藏匿?
为了100%清楚我在做什么:
创build存储:
~/tmp/a(master) $ git stash create 60629375d0eb12348f9d31933dd348ad0f038435 ~/tmp/a(master) $ git st # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: b # ~/tmp/a(master) $ git reset --hard HEAD is now at 555d572 log message
使用隐藏:
~/tmp/a(master) $ git apply 60629375d0eb12348f9d31933dd348ad0f038435 fatal: can't open patch '60629375d0eb12348f9d31933dd348ad0f038435': No such file or directory ~/tmp/a(master) $ git stash apply 60629375d0eb12348f9d31933dd348ad0f038435 # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: b #
删除存储:(除了这最后一位不工作)
~/tmp/a(master) $ git stash drop !$ git stash drop 60629375d0eb12348f9d31933dd348ad0f038435 '60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference
您不需要删除以这种方式创build的存储。 由于没有引用存储提交,它将最终得到垃圾回收。
更新:为了澄清,原来的问题特别要求关于git stash create
,而不是默认的git stash save
。 放下一个典型的藏匿处,看Charles的优秀答案 。
git stash drop
带任何参数 – 这将删除顶部的藏匿处或一个隐藏的引用,如下所示: stash@{n}
其中n
指定哪个隐藏的位置。 你不能传递一个提交ID到git stash drop
。
我不知道为什么你认为需要放一个藏匿处,因为如果你正在使用stash create
一个藏匿入口不是为你的“藏匿处”创build的,所以没有什么可以放下的。
如果你100%确定你只有一个存储(确定git stash list
是107%),你可以做一个
git stash clear
并忘记它们(它删除所有的窗口)。
注意:为那些最终在这里寻找一种方法来清除他们(如我)的人添加了这个答案。
你应该使用
git stash save
并不是
git stash create
因为这会创build一个存储(这是一个常规的提交对象)并返回它的对象名称,而不会将其存储在ref命名空间的任何位置 。 因此将不能访问存储适用。
使用git stash save "some comment"
是用来当您有搁置的变化,你想复制/移动到另一个分支
如果希望保存的(隐藏的)更改反映在当前分支上,请使用git stash apply stash@{0}
(假设保存的存储索引为0)
你总是可以使用git stash list
来检查你存储的所有索引
并使用git stash drop stash@{0}
(假设你保存的存储索引是0,你想删除它)删除一个特定的藏匿处。
从git文档: http : //git-scm.com/docs/git-stash
drop [-q | –quiet] []
从存储列表中删除单个存储状态。 当没有给出,它将删除最新的一个。 即stash@{0}
,否则必须是forms存储@ {}的有效存储日志引用。
例:
git stash drop stash@{5}
这将删除存储条目5.要查看所有的存储列表:
git stash list