标签: gitattributes

适用于Windows用户的Git CRLF

我知道有很多关于此问题的文章。但是我努力挣扎了两周,没有成功。

我正在尝试使用github上描述的最佳实践。所以我添加了一个.gitattributes文件,例如,它看起来像这样:

*.cs text
Run Code Online (Sandbox Code Playgroud)

而且我已经标准化了所有文件的行尾。现在,我有干净的工作副本,无须提交。但是现在,如果我在任何Windows文本编辑器中都打开了文件并进行了一些随机更改,请保存文件,然后撤消该更改,我会看到此文件已更改。我了解这是因为文件现在具有Windows样式行的结尾。但这是一种可怕的工作方式,文件没有更改,我希望git在没有它的情况下知道它git reset --hard。在这种情况下,您会推荐什么?

windows git gitattributes core.autocrlf

3
推荐指数
1
解决办法
6474
查看次数

使用.gitattributes创建带有CRLF行结尾的git store文本文件

我想git在内部存储CLRF行结束样式的文本文件,我不只是想在工作目录中看到这样的行结尾(但WD也应该包含CRLF文件).什么是.gitattributes配置才能实现这一目标?

我需要这个,所以存储库可以与一个也在内部使用CRLF的Mercurial无缝同步(由于原始文件是这样的).

在浏览了我在网上找到的所有可能的配置后,包括这里,我找不到可以产生CRLF的解决方案.最后,文件最终存储为LF.我尝试了以下.gitattributes文件:

* text=
* text eol=crlf
Run Code Online (Sandbox Code Playgroud)

还试过text = auto,text = crlf甚至没有第一行,没有运气.我还重新克隆了改变之间的回购.

谢谢.

编辑:在我发布此文章后的5秒内,我发现了另一个似乎正在运行的代码段:

*.* -crlf
Run Code Online (Sandbox Code Playgroud)

但是我不确定这到底是做什么的.有人可以确认这是我想要的,以后不会咬我吗?

git mercurial line-endings gitattributes

3
推荐指数
1
解决办法
385
查看次数

.gitignore vs .gitattributes

考虑到*.pdf.gitignore和我都有文件,.gitattributesgit如何表现并优先考虑两者?它是否忽略pdf文件或将它们存储为LFS?

git gitignore gitattributes git-lfs

3
推荐指数
2
解决办法
3050
查看次数

`git` 显示克隆后更改的文件,无需任何其他操作

git clone git@github.com:erocarrera/pydot( 35a8d858b ) 在 Debian 中git config core.autocrlf input显示:

\n\n
modified:   test/graphs/b545.dot\nmodified:   test/graphs/b993.dot\nmodified:   test/graphs/cairo.dot\n
Run Code Online (Sandbox Code Playgroud)\n\n

这些文件具有 CRLF 行结尾,例如:

\n\n
$ file test/graphs/cairo.dot\ntest/graphs/cairo.dot: UTF-8 Unicode text, with CRLF line terminators\n
Run Code Online (Sandbox Code Playgroud)\n\n

.gitattributes文件包含

\n\n
*.py eol=lf\n*.dot eol=lf\n*.txt eol=lf\n*.md eol=lf\n*.yml eol=lf\n\n*.png binary\n*.ps binary\n
Run Code Online (Sandbox Code Playgroud)\n\n

更改core.autocrlf不会影响这些文件的状态。删除.gitattributes也没有效果。更改这些文件dos2unix不会改变它们的状态(如预期),并且返回显示与旧副本unix2dos没有区别。diff文件权限看起来没有变化ls -lsa。另外,据我所知,这些文件具有统一的行结尾vi -b(因此不应该是这种情况unix2dos,或者dos2unix从混合行结尾转换为统一的行结尾,这可以解释这种奇怪的行为)。我使用的是git2.11.0 版本。

\n\n

什么是git变化?

\n\n

有点相关: …

git newline eol gitattributes core.autocrlf

3
推荐指数
1
解决办法
5381
查看次数

如何设置gitattributes来过滤部分文件?

我正在使用Visual Studio 2010和git(git svn).我的同事使用纯svn和Ankhsvn插件.

当我尝试在启用Git源代码控制提供程序的情况下打开文件时,Visual Studion会抱怨:

源控制插件
活动解决方案或项目由与您选择的插件相关的源控制插件控制.如果更改源控件插件,将关闭活动解决方案或项目.
你想继续吗?

当我单击是时,将打开一个空的解决方案.当我单击否时,解决方案项旁边的所有git特定图标都会丢失(我仍然会在解决方案资源管理器中看到分支名称),每次打开解决方案时都会收到有关源控件插件的提示.

当我克隆我的同事创建的svn存储库时,解决方案sln文件包含以下内容

GlobalSection(SubversionScc)= preSolution
Svn-Managed = True
Manager = AnkhSVN - 对Visual Studio
EndGlobalSection的 Subversion支持

我已经删除了这一部分,现在解决方案在Git源代码控制提供程序被激活时没有问题,但是当您选择Ankhsvn提供程序时会抱怨 - 情况正好相反.

我想告诉git在pull(git svn fetch)期间删除.sln文件的这一部分,并在我提交时添加它(git svn dcommit).这可能通过gitattributes以及如何做到这一点?

编辑:

我现在补充说

solutionname.sln filter = ankhsvn

到$ GIT_DIR/info/attributes

[filter "ankhsvn"]
  clean=sed '/^Global$/ r ../ankhsvnsection '
  smudge=sed '/GlobalSection(SubversionScc)/,/EndGlobalSection/d '
Run Code Online (Sandbox Code Playgroud)

到我的.git/config文件.

ankhsvnsection包含由涂抹操作删除的部分.我似乎什么也没做?!

git git-svn filter gitattributes

2
推荐指数
1
解决办法
4742
查看次数

.*.jpg二进制-delta在.gitattributes文件中做了什么?

这个帖子暗示放置

*.jpg binary -delta
Run Code Online (Sandbox Code Playgroud)

.gitattributegit 中的repos文件,但我不确定它是做什么的.我找不到git的'-delta'标志的任何例子.

目的是显然加快更大文件的提交或推送时间.

git github git-push git-commit gitattributes

2
推荐指数
1
解决办法
2354
查看次数

autocrlf 和 eol 有什么区别

我正在阅读有关解决混合行结尾问题的git 文档.gitattributes,并发现有两个类似的设置。

自动CRLF:

行尾转换 虽然 Git 通常不考虑文件内容,但它可以配置为将存储库中的行尾规范化为 LF,并且可以选择在签出文件时将它们转换为 CRLF。

如果您只想在您的工作目录中使用 CRLF 行结尾而不管您使用的是哪个存储库,您可以设置配置变量“core.autocrlf”而不使用任何属性。

[core] autocrlf = true 这不会强制文本文件的规范化,但确实确保您引入存储库的文本文件在添加时将其行尾规范化为 LF,并且已在存储库中规范化的文件保留归一化。

和停产:

此属性设置要在工作目录中使用的特定行结束样式。它可以在没有任何内容检查的情况下进行行尾转换,有效地设置文本属性。

设置为字符串值“crlf” 此设置强制 Git 在签入时对此文件的行尾进行规范化,并在签出文件时将其转换为 CRLF。

设置为字符串值“lf” 此设置强制 Git 在签入时将行尾规范化为 LF,并防止在签出文件时转换为 CRLF。

与 crlf 属性的 向后兼容性 为了向后兼容, crlf 属性解释如下:

文本

-crlf -text

crlf=输入 eol=lf

似乎两者都在做同样的事情,但有一些关于compatibility. 这是否意味着,这autocrlf已被弃用,而新口味是eol什么?我目前有一个包含多个损坏文件的存储库,我想将其转换为crlf表示形式。你会看到文档让我们困惑而不是澄清事情。

在这种情况下我应该申请什么?

git gitattributes

2
推荐指数
1
解决办法
936
查看次数

git 文档中关于行尾的“签出代码”是什么意思?

我真的很困惑以下页面中“签出代码”的含义:https : //git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#__code_core_autocrlf_code

如果您使用的是 Windows 计算机,请将其设置为 true – 这会在您检出代码时将 LF 结尾转换为 CRLF:

这是否意味着您添加文件时?因为每当我改变core.autocrlf来自inputtrue反之亦然,我在我的文件添加看differrence(不“退房”平均“添加”?):

> git config --global core.autocrlf true

> git add crlf-file.md

> git add lf-file.md
 warning: LF will be replaced by CRLF in lf-file.md.
 The file will have its original line endings in your working directory.

> git config --global core.autocrlf input

> git add crlf-file.md
  warning: CRLF will be replaced by LF in crlf-file.md.
  The file will have its original …
Run Code Online (Sandbox Code Playgroud)

git gitattributes core.autocrlf

2
推荐指数
1
解决办法
183
查看次数

删除Git lfs链接到文件并直接添加到git

我需要删除 Git LFS 文件指针,并将文件直接添加到 Git。

我在 .gitattributes 中有一个过滤器来匹配某些文件:

test/**/*.py filter=lfs diff=lfs merge=lfs -text
Run Code Online (Sandbox Code Playgroud)

如何修改它以从此模式中排除 1 个文件?

我尝试过这样的事情:

test/**/*.py !test/my_dir/my_file.py filter=lfs diff=lfs merge=lfs -text
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用...git说没有这样的文件

git gitattributes git-lfs

2
推荐指数
1
解决办法
1893
查看次数

Github:linguist- generated=true 在 .gitattributes 中不起作用

我将所有生成的文件存储在构建文件夹中,并尝试忽略拉取请求中的这些文件,我发现并使用以下方法来执行此操作:

1.在根目录下创建.gitattributes文件。

2.添加此代码:

build/**/* linguist-generated=true
/build/**/* linguist-generated=true
/build/**/*.html linguist-generated=true
build/*.html linguist-generated=true
build/ linguist-generated=true
/build/ linguist-generated=true
build/name.html linguist-generated=true
/build/name.html linguist-generated=true
Run Code Online (Sandbox Code Playgroud)

我知道所有这些行可能不是必需的,但这是我已经尝试查看它是否有效的所有内容,但构建文件夹中的文件仍然显示在 PR 更改的文件选项卡中,我在这里做错了什么?

github gitattributes github-linguist

2
推荐指数
1
解决办法
3885
查看次数