jjzjj

gitattributes

全部标签

Git 将文件标记为二进制文件以避免行分隔符转换

我有一个包含示例数据的文本文件,我想将其置于Git控制之下(在Windows上)。我如何告诉Git将此文件视为二进制文件,以便它不转换行分隔符(就像存储库中的其他/文本文件一样)。 最佳答案 把这个写在.gitattributes(在文件的目录或更高层):myfile.bin-text更多解释参见手册。 关于Git将文件标记为二进制文件以避免行分隔符转换,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

git - .gitattributes 涂抹和清洁过滤器作为存储库的一部分

我的git存储库中有许多模板文件,它们以不同的速率变化。这些然后用于生成HTML页面。如果有人报告问题,我希望他们能够告诉我哪个版本的模板文件有问题。目前,我在更改文件时手动将日期输入到文件中。或者,好吧,我尝试。大多数时候我都忘记了。至少在理论上,我应该能够使用gitsmudge和cleanfilters来修复文件并自动插入上次更新的日期。这会很棒。除了我在一台机器上开发,当我准备好后,我推/pull到另一台机器。如何让污迹和清洁过滤器显示在另一台机器上?我不想在路径中添加奇怪的脚本;这只是这个存储库所需要的,所以我想让它完全独立。网上的一切都说“将此过滤器定义添加到您的~/.git

git - .gitattributes 涂抹和清洁过滤器作为存储库的一部分

我的git存储库中有许多模板文件,它们以不同的速率变化。这些然后用于生成HTML页面。如果有人报告问题,我希望他们能够告诉我哪个版本的模板文件有问题。目前,我在更改文件时手动将日期输入到文件中。或者,好吧,我尝试。大多数时候我都忘记了。至少在理论上,我应该能够使用gitsmudge和cleanfilters来修复文件并自动插入上次更新的日期。这会很棒。除了我在一台机器上开发,当我准备好后,我推/pull到另一台机器。如何让污迹和清洁过滤器显示在另一台机器上?我不想在路径中添加奇怪的脚本;这只是这个存储库所需要的,所以我想让它完全独立。网上的一切都说“将此过滤器定义添加到您的~/.git

git - 使用 .gitattributes 强制 LF 行结尾而不丢失自动文本/二进制推断?

我想在我的.gitattributes文件中使用eol=LF,但我希望它仅应用于Git自动确定为文本文件的文件。我能找到的最好的方法是将特定的文件扩展名/glob定义为文本或二进制文件。这并不理想,因为列表可能会很大。我试过*text=autoeol=LF,但eol=LF部分似乎覆盖了auto部分。我可以强制LF行结尾而不需要特定的gitconfig设置,并且不会丢失自动文本/二进制推断吗? 最佳答案 更新:在@romkyns发表评论后,我重新检查了所有内容,发现我的解决方案略有不正确。正确的是一个包含以下内容的.gitattrib

git - 使用 .gitattributes 强制 LF 行结尾而不丢失自动文本/二进制推断?

我想在我的.gitattributes文件中使用eol=LF,但我希望它仅应用于Git自动确定为文本文件的文件。我能找到的最好的方法是将特定的文件扩展名/glob定义为文本或二进制文件。这并不理想,因为列表可能会很大。我试过*text=autoeol=LF,但eol=LF部分似乎覆盖了auto部分。我可以强制LF行结尾而不需要特定的gitconfig设置,并且不会丢失自动文本/二进制推断吗? 最佳答案 更新:在@romkyns发表评论后,我重新检查了所有内容,发现我的解决方案略有不正确。正确的是一个包含以下内容的.gitattrib

git - 如何在 git add 之前自动调用脚本?

这是我的用例:我在我的Git存储库中提交PNG和其他内容。我想对我想要提交的每个PNG应用一个特定的过程,这是我最终想要提交的过程的结果(可能修改的PNG)。一开始我想到了一个钩子(Hook)(就像一个pre-commit)但是它有点奇怪因为这个过程会改变文件所以我需要重新添加它!根据我的read,没有pre-addHook(或类似的东西)。可能是创建一个git别名的解决方案?但我不想改变-太多-人们的工作方式,我正在寻找一种流畅和透明的方式。如果你有线索……即使线索是改变我的流程想法。 最佳答案 您可能需要考虑使用smudge&c

git - 如何在 git add 之前自动调用脚本?

这是我的用例:我在我的Git存储库中提交PNG和其他内容。我想对我想要提交的每个PNG应用一个特定的过程,这是我最终想要提交的过程的结果(可能修改的PNG)。一开始我想到了一个钩子(Hook)(就像一个pre-commit)但是它有点奇怪因为这个过程会改变文件所以我需要重新添加它!根据我的read,没有pre-addHook(或类似的东西)。可能是创建一个git别名的解决方案?但我不想改变-太多-人们的工作方式,我正在寻找一种流畅和透明的方式。如果你有线索……即使线索是改变我的流程想法。 最佳答案 您可能需要考虑使用smudge&c

git - 是否可以将 git 配置为禁用特定文件类型的 merge ?

例如,Apple的InterfaceBuilder文件格式(xib)就所有实际用途而言是不可能merge的。然而,因为它是一种文本格式,git会很乐意尝试merge这种类型的文件,如果git“成功”,这几乎肯定会导致损坏。是否可以将git配置为始终无法mergexib文件,就像它对二进制格式一样? 最佳答案 是的。有一个名为.gitattributes的很棒的文件,它允许您为git项目中的文件设置单独的属性。出于您的目的,您将使用此行填充您的.gitattributes*.xib-crlf-diff这将关闭换行校正并禁用此文件的差异

git - 是否可以将 git 配置为禁用特定文件类型的 merge ?

例如,Apple的InterfaceBuilder文件格式(xib)就所有实际用途而言是不可能merge的。然而,因为它是一种文本格式,git会很乐意尝试merge这种类型的文件,如果git“成功”,这几乎肯定会导致损坏。是否可以将git配置为始终无法mergexib文件,就像它对二进制格式一样? 最佳答案 是的。有一个名为.gitattributes的很棒的文件,它允许您为git项目中的文件设置单独的属性。出于您的目的,您将使用此行填充您的.gitattributes*.xib-crlf-diff这将关闭换行校正并禁用此文件的差异

git - git涂抹/清除分支之间的过滤器

有许多相关的问题涉及污点/清洁过滤器-我花了几个小时阅读它们,尝试各种选择,但仍然失败。我希望我能以某种方式问,我得到一个对我有用的答案。具体来说,我已经阅读了该页,其中大部分答案链接回:CustomizingGit-GitAttributesDR这是一个详细的问题,但总结如下:我可以将DEBUG=false存储在一个分支的文件中,并使用smudge/cleanfilters来管理该文件,将DEBUG=true存储在另一个分支中吗?怎么办?背景我在BitBucket托管了各种远程回购。我正在使用Win8上的sourcetree将远程repos克隆到我的笔记本电脑上。我为开发、特性、发布