- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如果将 .gitattributes
文件添加到给定目录,其内容如下:
*.txt text
有没有可能将新文件或以前规范化的文件(例如,所有 LF 行结尾)提交到该目录而不进行规范化?即,在启用 .gitattributes
并指定 text
模式后,是否有任何可能的方法将新的 CRLF 行结尾引入存储库?
再次解释一下,这个 .gitattributes
文件是一种绝对万无一失的方法来防止新的 CRLF 行被提交到 *.txt
文件吗在包含 .gitattributes
文件的目录中?我想说服我的同事们,.gitattributes
文件已经足够了,不需要采取进一步措施来排除 CRLF(例如服务器端 Hook )。
答案应该确认不可能覆盖 .gitattributes
指定的行结束行为,或者提供一个反例来解释如何规避 .gitattributes
归档并潜入一些 CRLF 行结尾。
最佳答案
不容易通过gitattributes
, 因为 negative pattern 是被禁止的。
实际上,这几天(2013 年 3 月)提出了一个补丁到 Make !pattern
in .gitattributes
non-fatal .
所以你需要把像 *.txt
这样的全局规则只放在 .gitattributes
文件中,这些文件存在于你知道你的子目录中不需要 CRLF。
并在包含混合内容的目录中的 .gitattributes
中保留更细粒度的 text
规则。
kostmo提及 in the comments EGit bug 421364 :
Until this is implemented, I recommend this setup:
- For each Eclipse project, go to
Properties > Resource
and change "New text file line delimiter
" toOther: Unix
. Commit the resulting.settings/org.eclipse.core.runtime.prefs
files.- Don't configure any
.gitattributes
or "core.autocrlf
" for Git.
This means that files will have the same line endings in the working directory as in the repository. Git and EGit will not convert any file contents.With 1., all new files that are created in Eclipse will have correct (
LF
) line endings, even when created by a user on Windows.For files that are already in your repository with
CRLF
, you can fix them and commit the result. I recommend usingdos2unix
orfromdos
on the command line.
注意:该问题 ( bug 421364 ) 刚刚(2014 年 3 月 25 日)被重新认定为 bug 342372 的副本通过 Lars Vogel .
因此,JGit 对.gitattributes
的支持是“指定的”,但它的实现仍在进行中。
正在审查实现(2015 年 1 月):
.gitattributes
的基本支持Core classes to parse and process
.gitattributes
files including support for reading attributes in WorkingTreeIterator and the dirCacheIterator.
Adds the
getAttributes
feature to the tree walk.
The computation of attributes needs to be done by theTreeWalk
since it needs both aWorkingTreeIterator
and aDirCacheIterator
.
2018 年 8 月更新:上述错误 ( bug 342372 ) 取决于 JGit bug 537410 ,刚刚得到解决。
“JGit rebase 和 stash 不保留行结尾”
The problem is that the
ResolveMerger
duringprocessEntry()
does not remember theCheckoutMetadata
(in which JGit stores filters and eol-attributes) for the files and then checks them out incheckout()
ignoring any attributes or filters.
ResolveMerger.cleanUp()
has the same problem.
JGit commit 4027c5c (来自 review 127290 )应该可以解决这个问题。
感谢 Thomas Wolf 和 active contributor to JGit .
这让 EGit 有了希望:
EGit in general leaves all this eol handling in staging/merging/checkout to JGit.
The only places where EGit has to care about it is in the compare framework when it has to read index entries itself, and there it already properly handlesCheckoutMetadata
.
关于git - 是否可以提交违背 .gitattributes 指定的行结束行为的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17161535/
我正在编写一个类,我想知道哪一对方法更适合描述流程周期: start() -> stop() start() -> end() start() -> finish() 基本上这些方法将在执行任务之前和
对于 Android 小部件类名称是否应以“View”、“Layout”或两者都不结尾,是否存在模式或命名约定? 最佳答案 如果该类扩展了 View(或在其层次结构中扩展了 View),那么它应该以“
我正在尝试找到一个插件,该插件将使用 Verilog 突出显示匹配的开始/结束语句。 VIM 让它与花括号/括号一起工作,但它不能与它的开始/结束一起工作。我希望 VIM 突出显示正确的开始到正确的结
给出以下代码: % Generate some random data n = 10; A = cell(n, 1); for i=1:n A{i} = timeseries; A{i
我需要知道是否可以检测输入何时开始聚焦以及何时结束焦点 HTML 代码: JQuery 代码(仅示例我如何需要它): $('.datas').on('focusStart', alert("fo
所以我一直在思考一款游戏的想法,一款需要穿越时空的游戏。因此,我编写了一个 JFrame 来显示螺旋的 .gif,但它并没有在对话框显示时结束,而是保留在后台。我可以解决这个问题吗? import j
给出以下使用多线程的 Java 示例: import java.util.concurrent.*; public class SquareCalculator { private Ex
好吧,我有一个 do-while 循环,应该在使用点击“q”时结束,但它给了我错误消息,请帮忙。 package Assignments; import java.util.*; public cla
我如何有选择地匹配开始 ^或结束 $正则表达式中的一行? 例如: /(?\\1', $str); 我的字符串开头和结尾处的粗体边缘情况没有被匹配。我在使用其他变体时遇到的一些极端情况包括字符串内匹配、
我试图让程序在总数达到 10 时结束,但由于某种原因,我的 while 循环在达到 10 时继续计数。一旦回答了 10 个问题,我就有 int 百分比来查找百分比。 import java.util.
jQuery 中的 end() 函数将元素集恢复到上次破坏性更改之前的状态,因此我可以看到它应该如何使用,但我已经看到了一些代码示例,例如:on alistapart (可能来自旧版本的 jQuery
这个问题在这里已经有了答案: How to check if a string "StartsWith" another string? (18 个答案) 关闭 9 年前。 var file =
我正在尝试在 travis 上设置两个数据库,但它只是在 before_install 声明的中途停止: (END) No output has been received in the last 1
我创建了一个简单的存储过程,它循环遍历一个表的行并将它们插入到另一个表中。由于某种原因,END WHILE 循环抛出缺少分号错误。所有代码对我来说都是正确的,并且所有分隔符都设置正确。我只是不明白为什
您好,我正在使用 AVSpeechSynthesizer 和 AVSpeechUtterance 构建一个 iOS 7 应用程序,我想弄清楚合成何时完成。更具体地说,我想在合成结束时更改播放/暂停按钮
这是我的代码,我试图在响应后显示警报。但没有显示操作系统警报 string filepath = ConfigurationManager.AppSettings["USPPath"].ToStri
我想创建一个循环,在提供的时间段、第一天和最后一天返回每个月(考虑到月份在第 28-31 天结束):(“function_to_increase_month”尚未定义) for beg in pd.d
我目前正在用 Python 3.6 为一个骰子游戏编写代码,我知道我的编码在这方面有点不对劲,但是,我真的只是想知道如何开始我的 while 循环。游戏说明如下…… 人类玩家与计算机对战。 玩家 1
所以我已经了解了如何打开 fragment。这是我的困境。我的 view 旁边有一个元素列表(元素周期表元素)。当您选择一个元素时,它会显示它的信息。 我的问题是我需要能够从(我们称之为详细信息 fr
我想检测用户何时停止滚动页面/元素。这可能很棘手,因为最近对 OSX 滚动行为的增强创造了这种新的惯性效应。是否触发了事件? 我能想到的唯一其他解决方案是在页面/元素的滚动位置不再改变时使用间隔来拾取
我是一名优秀的程序员,十分优秀!