当前位置 : 主页 > 编程语言 > java >

git stash 和unstash的使用操作,git unstash failed

来源:互联网 收集:自由互联 发布时间:2021-04-03
场景如下,你正在开发需求1时,突然线上发现了一个bug,需要立即修复。需求1的代码因为不完善,也没经过测试,所以你希望针对需求1所做的修改先暂时隐藏,这样就可以使用 stash功

场景如下,你正在开发需求1时,突然线上发现了一个bug,需要立即修复。需求1的代码因为不完善,也没经过测试,所以你希望针对需求1所做的修改先暂时隐藏,这样就可以使用 stash功能了。

VCS-->git -->stash

这个时候针对需求1做的修改都会隐藏掉。现在假设你处理bug完毕。需要继续开发需求,现在需要unstash

VCS-->git-->Unstash,选中你刚刚的stash,选中Pop stash。点击pop stash即可。如下图:

但是我这里遇到个问题,屏幕右下角有如下提示:

点击View them,发现是.DS_store 文件,这个我已经在.gitignore中声明忽略该文件了。所以我的localChanges中并没有该文件。

没办法,只有先修改.gitignore,不忽略.DS_store.然后执行git status 能看到两个文件被修改了

然后执行git checkout -- ../.DS_Store 即回滚 .DS_store。然后重新unstash,ok。

然后也需要回滚.gitignore

补充:git临时保存git stash命令

(1)git stash save “save message” 执行存储时,添加备注,方便查找,只有git stash 也是可以的,但查找时不方便识别。

(2)git stash list 查看stash了哪些存储

(3)git stash show 显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}

(4)git stash show -p 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p

(5)git stash apply 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}

(6)git stash pop 命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}

(7)git stash drop stash@{KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲  丢弃stash@{num}存储,从列表中删除这个存储

(8)git stash clear 删除所有缓存的stash

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易盾网络。如有错误或未考虑完全的地方,望不吝赐教。

网友评论