gpt4 book ai didi

git - 除了少数异常(exception),git 的 .gitattributes 可以将所有文件都视为二进制文件吗?

转载 作者:IT王子 更新时间:2023-10-29 01:28:51 28 4
gpt4 key购买 nike

我特别需要 git 将大多数文件扩展名视为二进制文件,除了少数扩展名。

我想将所有文件扩展名视为二进制、.pdf、.doc、.xls 等,纯文本文件除外,如 .txt、.rb、.py 等。

我试过像下面这样配置 .gitattributes 看看它是如何工作的:

# cat .gitattributes 
* binary
*.txt text

我认为配置文件中的顺序可能很重要,但似乎并不重要。使用上述配置,所有文件仍被视为二进制文件。

有没有办法配置 .gitattributes 或 git 任何其他方式来以一种方式将所有文件视为二进制文件,除了少数异常(exception)?

更新 1:

我尝试了下面描述的 .gitattributes。有用!

# cat .gitattributes 
*.txt crlf diff
* binary


# git diff
diff --git a/file b/file
index d929b94..bee5cb1 100644
Binary files a/file and b/file differ

diff --git a/file.txt b/file.txt
index 632ae98..93d22b0 100644
--- a/file.txt
+++ b/file.txt
@@ -1 +1,3 @@
Hey this is a .txt file
+Adding another line
+A new line

更新 2:

我相信 crlf 和 text 是相同的,即 .gitattributes 的以下两个配置是相同的:

# cat .gitattributes 
*.txt crlf diff
* binary

# cat .gitattributes
*.txt text diff
* binary

最佳答案

binary 是设置属性 crlf 和 diff 的宏(实际上在这里取消设置它们)
USING ATTRIBUTE MACROS 中查看“.gitattribute man page” .

一旦设置或取消设置属性,则后续规则无法更改。

所以你可以试试:

* -text
*.txt crlf diff

那样,crlfdiff 是为 *.txt 文件设置的,它们不会被二进制宏取消设置相同的 *.txt 文件,而所有其他文件将取消设置。

对于 LF 或自动:

*.txt text eol=lf
#
*.txt text=auto

来自2009 commit b9d14ff ,这些规则应该是:

  • 来自更一般的
  • 更具体的。
    (“后面的行覆盖前面的行”)

关于git - 除了少数异常(exception),git 的 .gitattributes 可以将所有文件都视为二进制文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4264447/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com