Why do files in the working directory get the modified status on switching between Git branches?

↘锁芯ラ 提交于 2019-12-24 06:19:31

问题


I have two branches in my local git repository: master and anotherbranch. When I switch from master to anotherbranch with git checkout anotherbranch and run git status I see modified files.

I undo these modifications with git reset HEAD and then git status does not display them. However when I switch to master and switch to the branch afterwards I see these modified files again.

Could you please explain what is going on?


回答1:


You wouldn't have autocrlf set to true, by any chance?
Because it can change your files on a checkout...

See the thread "core.autocrlf considered half-assed":

Back then, I was not a fan of the core.autocrlf support.
*But I have to admit that in the meantime, I turned into an outright un-fan of the feature. Not because its intent is wrong, but because its implementation is lousy.

Just try to git reset --hard or git stash when there are files with DOS line endings and when core.autocrlf is not false.

And then despair.




回答2:


If the items are not tracked in either branch, the files will show up in git status as untracked, and will survive across checkouts




回答3:


The git reset --hard will remove the modification from the index. Try with this additional argument it should be OK after that.



来源:https://stackoverflow.com/questions/5237783/why-do-files-in-the-working-directory-get-the-modified-status-on-switching-betwe

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!