【发布时间】:2012-09-30 08:52:38
【问题描述】:
我只想回到一个干净的工作目录,就像我上次提交后一样。 Git 向我报告了我没有进行的大量文件修改,所以我怀疑这与行尾有关。
我已经尝试了所有常见的嫌疑人来做到这一点:
git reset --hard
git commit -- .
git stash
git clean -fd
无论我做什么,git status 总是显示与已修改相同的文件。我能做些什么?我有未提交的更改隐藏在另一个分支中,所以我不想只是炸毁所有内容,而只是“回滚”我的主分支。
编辑:输出
$ git status
# On branch master
# 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: demo/index.html
# modified: demo/js/app.js
# modified: demo/js/libs/jquery.1.7.1.js
# modified: demo/js/libs/matchMedia.js
# modified: demo/js/libs/modernizr.js
# modified: demo/js/loadr.js
# modified: dist/enquire.js
# modified: src/include/intro.js
#
no changes added to commit (use "git add" and/or "git commit -a")
然后我尝试建议的内容以及我能找到的所有其他内容:
WickyNilliams at Nick MBA in ~/Repositories/enquire on master*
$ git checkout -- .
WickyNilliams at Nick MBA in ~/Repositories/enquire on master*
$ git reset --hard
HEAD is now at d70fee4 added meta tag to test demo on mobile #10
WickyNilliams at Nick MBA in ~/Repositories/enquire on master*
$ git status
# On branch master
# 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: demo/index.html
# modified: demo/js/app.js
# modified: demo/js/libs/jquery.1.7.1.js
# modified: demo/js/libs/matchMedia.js
# modified: demo/js/libs/modernizr.js
# modified: demo/js/loadr.js
# modified: dist/enquire.js
# modified: src/include/intro.js
#
no changes added to commit (use "git add" and/or "git commit -a")
如您所见,尽管回滚,但没有任何变化。
然后我按照建议运行了一个 diff 忽略所有空格,并且怀疑忽略空格时似乎没有区别 - 所以我猜这是行尾!我能做些什么来解决这个问题?我已将 autocrlf 设置为 true 无济于事。
【问题讨论】:
-
您是否尝试过询问
git diff以了解修改是什么? -
是的,我已经做到了,这基本上是说每一行都发生了变化,这就是为什么我认为与行尾有关。奇怪的是,我所有的工作都是在一台计算机上的一个操作系统上完成的,所以不确定这是怎么发生的
-
这种情况是否发生在您重置后在文本编辑器中打开文件之前?我曾经发现,由于我几个月前设置的一些疯狂的偏好,我的 IDE 在没有我要求的情况下为我“有用”地改变了行尾......
-
你能发布
git status输出的相关部分吗?
标签: git rollback git-stash git-reset