问题标签 [gitattributes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
404 浏览

git - .gitattributes 和规范化行尾:更改的文件仍然存在

我对 .gitattributes 行为感到困惑。

在有关规范化行尾的文章之后,我完成了以下步骤:

  • 创建 .gitattiributes* text=auto
  • 在我的开发 Windows 机器上,我有core.autocrlf = true
  • 在我的构建 Linux 机器上,我有core.autocrlf = input
  • 我在运行的开发机器上执行了行尾规范化git rm --cached -r . && git reset --hard && git add . && git commit -m "normalized" && git push develop origin/develop

根据我的想法,最后一步应该最终将所有带有 LF 结尾的文本文件推送到存储库,并且从那一刻起,我所有的提交和 chechout 都不会受到任何平台上的行尾冲突的困扰。

但是,当我在我的构建 Linux机器上克隆了 repo 时,我立即得到了一堆标记为已更改的文件。如果在构建机器上的工作副本中我将 .gitattributes 行更改为# * text=auto(注释),一切都会好起来的。

为什么会这样,我做错了什么?

0 投票
1 回答
78 浏览

git - 阻止文件被合并到 Git 中的另一个分支

我的 git 存储库中有两个分支,一个被推送到 PROD 服务器,一个用于 DEV(调试设置、本地主机上的 Web 服务器等)。PROD 服务器上的 apache 实例在 conf 文件中的 Directory 指令中包含所有 RewriteRules 等,而在 DEV 分支中,我将它们放在 .htaccess 文件中。

我的问题是,当我想合并两个分支并推送更改时,如何将 .htaccess 文件保留在 DEV 分支中,但阻止它们合并到生产分支?

编辑:我在合并时使用 .gitattributes 忽略特定的 conf 文件,这只是我需要帮助的 .htaccess 文件

0 投票
0 回答
61 浏览

git - 像 gitattribute 的 export-add 之类的东西?

如何.gitignore通过在生成存档时添加它来覆盖中的排除文件夹git-archive

export-ignore,但找不到类似export-add`export-include` 的东西。

有任何想法吗?

0 投票
0 回答
497 浏览

windows - git:在变基期间自动与联合策略合并

我想git rebase通过保留所有添加的行来自动合并 .csproj 文件:

有两个问题。首先,这会失败并出现二进制警告:

第二个问题是在我的另一个 repo 上,它正确地确定了文件是文本(不知道为什么),但仍然无法合并。

0 投票
0 回答
74 浏览

git - 如果文件与 gitattributes 中的规则不匹配,则中止提交/添加

基本上标题说明了一切。

如果由于某种原因,我当前存储库中的文件与 gitattributes 文件中的任何模式都不匹配,它应该中止添加/提交文件。

我想用它来确保我们完全不依赖 core.eol、core.autocrlf 和 core.safecrlf。

gitattributes上的联机帮助页对此没有任何说明。到目前为止,我也没有发现任何其他关于 gitattributes 的主题。

0 投票
1 回答
3019 浏览

git - “openssl”] 不是有效的属性名称:.git/info/attributes:5

.git/info/attributes在文件中设置属性时出现以下错误。

文件内容:

更新:

0 投票
4 回答
8206 浏览

git - gitattributes 中的“!eol”有什么作用?

最近我在 .gitattributes 文件中发现了以下条目:

"* text=auto !eol"

做什么!eol

0 投票
3 回答
49757 浏览

git - `.gitattributes` 文件中 `text=auto` 的用途是什么?

大多数.gitattributes文件都有* text=auto. 该文件的目的是什么text=auto

0 投票
1 回答
1868 浏览

linux - 使用 `.gitattributes` 文件修复 Git 存储库中的行尾

需要解决的问题:

我有一个包含单个.md文件的存储库,其中包含我正在写的一篇文章。

我从几台不同的计算机编辑文件,一台运行 Linux,另一台运行 Windows。

现在在 Windows 中查看git diff我已经进行了一些更改的 a ,我可以看到我的文章显示为很好地分隔的文本行......所有即将被删除并被一个长行替换,其中段落由^Ms 分隔。

我知道这^M指的是 Windows 的 CLRF 行尾。

结果diff表明我在 Linux 中启动了该文件(完全有可能;我不记得了),然后将其保存在 Windows 中,并且所有行尾都已被替换。

我希望能够在两个操作系统中打开文件,并按应有的diff方式显示行,并获得显示换行符(而不是^M占位符)并且仅更改实际内容的结果。

我试过的:

我已经完成了一些背景阅读,阅读了关于行尾和 Git 设置的精彩概述,甚至尝试按照另一个 Stack Overflow 问题中的命令进行操作。

.gitattributes就目前而言,我在存储库的顶层有一个文件,我已将其提交给存储库本身。它只包含两行:

我试过这个(来源):

而这个(来源):

在第二种情况下,最后一个命令告诉我没有什么可以提交的。(我也不喜欢改变的想法,core.autoclrf因为我试图纯粹通过 来做到这一点.gitattributes,但我很沮丧。)

很高兴回答问题并提供更多详细信息。有什么想法我可能会出错吗?我错过了一步吗?

0 投票
2 回答
8932 浏览

git - git存档:导出忽略,忽略目录

我有一个 git 存储库.gitattributes

但是当我制作时:

archive_dir目录中,我得到目录hookstests

为什么?

我的 git 版本是 1.7.9。