加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在git中更改分支会导致修改文件

发布时间:2020-12-14 04:38:19 所属栏目:Windows 来源:网络整理
导读:我在 Windows上使用git(1.8.3).如果我从github克隆一个repo然后立即检查该repo上的另一个现有分支,git会检测修改后的文件.通常.有时却没有.并且所有修改过的文件上的差异都是相同的(包括行结尾).在我的团队中至少4台不同的PC上的2个不同的repos上观察到了这
我在 Windows上使用git(1.8.3).如果我从github克隆一个repo然后立即检查该repo上的另一个现有分支,git会检测修改后的文件.通常.有时却没有.并且所有修改过的文件上的差异都是相同的(包括行结尾).在我的团队中至少4台不同的PC上的2个不同的repos上观察到了这个问题.

它并不总是相同的文件,但它几乎总是代表中的几个文件子集之一.例如,有时它在repo的根目录中是相同的5个文件,有时它在一个特定文件夹中是相同的93个文件,有时它在不同文件夹中是相同的16个文件.

一旦git将文件标记为已修改,如果我还原或存储它们,它们会立即再次标记为已修改,这使得无法在分支之间来回切换.

我觉得它与行结尾有关,但我已经添加了推荐的.gitattributes文件和每个分支renormalized,但我仍然有这些零星的问题.我想到的另一种可能性是在分支之间合并以某种方式搞砸了我所做的重整化,但我不知道如何测试该理论.

我们都有core.autocrlf = true,因为我们都在Windows上.这是我们的.gitattributes

# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs      diff=csharp
*.sln     merge=union
*.csproj  merge=union
*.sqlproj merge=union
*.html    text diff=html
*.css     text
*.js      text
*.ejs     text
*.sql     text

# Standard to msysgit
*.doc     diff=astextplain
*.DOC     diff=astextplain
*.docx    diff=astextplain
*.DOCX    diff=astextplain
*.pdf     diff=astextplain
*.PDF     diff=astextplain

解决方法

有两种情况我见过这种事情:

>行结尾和Git尝试处理跨平台的所有疯狂选项. (我自己并不使用这些功能,而且我更喜欢存储和处理所有具有一致LF行结尾的文件,包括在Windows上.)>具有两个或多个文件的存储库,其名称仅在大小写不同.例如,readme.txt和ReadMe.txt. Windows上的Git很难处理这些情况,因为只有一个底层文件可以通过两个不同的名称访问.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读