我在 Windows 7 上通过 msysgit 使用 git。最近让我非常痛苦的一个问题是,一旦我切换到某些分支,git 就会认为某些文件已被更改,然后我无能为力让它停止认为这些文件已更改。
在我的案例中重现的步骤(可能与每个人都不相关)如下:
- 检查主分支。
- 查看 pristine-3.7 分支。
- 查看 pristine-3.8 分支。
- 查看 pristine-3.9 分支。
此时,git 开始假设文件已更改。
例如,这是 git diff 输出的屏幕截图。
以下是在十六进制模式下使用 Beyond Compare 的同一文件的差异输出。
最后是 git status 输出!
这是怎么回事?
更新问题:
一种可能的解决方案是在本地提交更改,然后删除该提交无需将提交中的更改恢复到工作状态。这是怎么做到的?
我经常遇到这个问题 - 唯一有效的是:
git rm --cached -r . > /dev/null # redirect if output is huge
git reset --hard
但请确保您没有想要保留的更改
See git 行结尾 - 无法隐藏、重置,现在无法对虚假行结尾提交进行变基
有人必须制作一个展示此行为的示例存储库并将其发布到 git 跟踪器 - 这是一个错误(从某种意义上说git reset --hard
和同事应该立即工作)
编辑:确保您已阅读必读并设立一个.gitattributes
file
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)