$ git add -A
$ git status
...
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: Source/ConfigGeneratorTests/ConfigGeneratorTests.csproj
(and 20 other files)
$ git stash save
Saved working directory and index state WIP on ...
$ git status
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: Source/ConfigGeneratorTests/ConfigGeneratorTests.csproj
(and 20 other files)
在stash save
之后,添加到索引的文件现在不会被存储,也不会保存在索引中。是否有一个原因?我曾多次使用stash
,从未见过这样做过。
答案 0 :(得分:3)
我不确定它是不是真的是你的情况,但是最近我的同事已经将 .gitattributes 文件推送到了git repo(Windows,ASP.NET MVC项目)更改了行结尾设置的github(例如从 as-is 到 checkout windows-style,commit linux-style )。
所以 git stash 没有产生任何错误但同时没有产生任何效果(修改过的文件出现在状态中并一直存在,直到我提交它们)。删除 .gitattributes 为我工作。
答案 1 :(得分:0)
我刚刚遇到git stash
未能离开干净工作目录的另一个原因:我通过samba mount访问我的git repo。
一堆文件突然设置了执行权限,这显示出差异。 git stash
和git reset --hard
都无法恢复权限,可能是因为正在进行samba安装的客户端计算机实际上无法影响权限。
登录服务器并直接在其本机文件系统上访问git存储库会导致问题消失。