我有一个远程 GIT 存储库,我在本地克隆了它。
之后我将分支更改为另一个分支,什么都不做,然后尝试更改为另一个分支,GIT 说有未提交的更改!?!
如果我什么都不做只是改变了分支,世界上怎么会有变化。
在控制台中查看此操作。
我确实设置了
git config --system core.autocrlf false
但是没有用。
这是怎么回事,从来没见过这样的行为。致力于 perftech
分支的人和我一样在 Windows 下工作。
谢谢
最佳答案
更新:
经过长时间的聊天 - 我们发现了问题:
这个项目有多个贡献者,其中一个与其他人设置了不同的 CRLF 值,这导致了问题。
解决方案:
确保所有团队都使用相同的 CRLf 配置以避免这些问题。
如何查看发生了什么变化?
首先查看发生了什么变化,然后尝试从中了解文件是如何被修改的。
git log HEAD^..HEAD
# to view the diff by words instead of lines:
git diff --color-words!
一旦您看到更改,请尝试找出它们从何而来。
同时确认您没有跟踪 filemode
以防 chmod
在这些文件上更新
Git 有一种叫做3 状态的东西
这3个状态是你的
- 工作目录
- 索引/舞台区
- 存储库
此结构的重要部分(与您的问题相关)是:
工作目录和暂存区是共享的,一旦你 checkout 分支就不会修改
这意味着如果您切换分支,它们将保持之前的状态,并包含您对它们所做的所有更改。
唯一改变的是你的HEAD
。
要了解什么是 HEAD,请阅读此内容,它将详细解释 git 中的 HEAD
是什么:
How to move HEAD back to a previous location? (Detached head)
关于git - checkout 后的意外变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36111248/