ulu*_*ulu 4 git diff tortoisegit
我刚刚安装了最新的Git(1.9.5),突然它告诉我我的工作树不干净(更改没有上演),但我看不到任何差异工具中任何文件的任何变化(我尝试过Tortoise和Visual Studio的内置功能).当我运行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: inc/i_lab_orders.asp
modified: lab_order_list.asp
modified: slib/lab_order_lib.asp
Run Code Online (Sandbox Code Playgroud)
但是,Git GUI的diff工具告诉我所有的行都被改变了,但是我找不到任何区别.与git bash的差异相同.
运行git reset --hard根本没有帮助 - 命令执行没有任何问题,但最后我仍然有相同的"已更改"文件.
更新:core.autocrlf为false,core.fileMode也为false.我还注意到,报告要更改的文件正是在上次提交时提交的文件.
我在Windows上.
欢迎来到地狱.入住愉快 :-)
您看不到的差异是行结束.简而言之,您告诉Git将所有行结尾转换为Windows或Unix,并且repo中有一个文件在repo中具有不同的行结尾.
当你签出文件时,Git进行转换,创建一个看起来正确的本地文件.当你这样做时diff,Git不会转换(因为磁盘上的文件必须正确,为什么它会转换回存中的内容?)现在你会得到不存在的差异.
解决方案:确保为每个开发人员正确配置Git,他们可以push使用正确的结尾提交文件一次,并为任何人创建一个愚蠢的帽子,他们会创建具有错误行结尾的文件.
有关:
| 归档时间: |
|
| 查看次数: |
1018 次 |
| 最近记录: |