首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gitattribute替换存储库行结尾

使用gitattribute替换存储库行结尾
EN

Stack Overflow用户
提问于 2017-03-02 00:09:18
回答 1查看 419关注 0票数 1

我试图在一个包含windows和unix特定文件的共享存储库中对行尾进行规范化,但我无法让它按照我期望的方式工作。

我们都是在Windows机器上开发的,但要求行结尾(取决于文件类型)是LF或CRLF。开发人员已经被建议将autocrlf设置为false,这样一些需要CRLF存在的文件就不会在存储库中更改(有windows和unix文件格式的混合),并在必要时手动更改行尾。

有人建议使用gitattribute会在一定程度上减轻对应该使用哪些文件结尾的监管需求,但我一直无法让这一点发挥作用。

以下是我的用户git设置:

代码语言:javascript
复制
[core]
    eol = native
    bare = false
    filemode = false
    hideDotFiles = dotGitOnly
    ignorecase = true
    repositoryformatversion = 0
    symlinks = false
    autocrlf = true
    editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -nosession -noPlugin

programdata git设置:

代码语言:javascript
复制
[core]
    fscache = true

存储库git设置:

代码语言:javascript
复制
[core]
    logallrefupdates = true

.gitattributes文件:

代码语言:javascript
复制
# convert all to lf
* text eol=lf

# convert these to windows line endings
*.sbm   text eol=crlf
*.sbp   text eol=crlf
*.sin   text eol=crlf
*.bat   text eol=crlf
*.cmd   text eol=crlf
*.ini   text eol=crlf
*.inf   text eol=crlf
/strataclient/BubbleHelp/* text eol=crlf

# don't touch binary files
*.dot   binary
*.dll   binary
*.exe   binary
*.ocx   binary
*.lic   binary
*.cfn   binary

为了测试它,我创建了一个小的提交,其中包含.gitattributes文件(我一直在修改它以测试不同的组合),然后运行以下命令:

代码语言:javascript
复制
git rm --cached -r .
git reset --hard

它似乎改变了一些行的结尾,但并不是我所期望的方式。

我尝试过遵循各种指南,但似乎都没有做出预期的影响深远的改变。我希望所有的文本文件都被更改为LF (例如java、properties、txt),除非它是CRLF中列出的类型之一(例如cmd、bat)。

EN

回答 1

Stack Overflow用户

发布于 2019-07-04 19:25:51

我偶然发现了这个问题,我很好奇,在2+多年之后,这还是一个问题吗?

不管怎么说!在最近的Git版本中,您可以在提交.gitattributes文件之后执行git add --renormalize,如下所示:Configuring Git to handle line endings

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42536609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档