git - 使用 BitBucket 忽略大小写

标签 git bitbucket

我正在将 BitBucket 与 Git 结合使用,并且想知道如何在 Bitbucket 上配置 GitIgnore 以忽略区分大小写。基本上,正在使用的编程语言会自动更改某些单词的大小写,例如枚举和一些声明的变量,我希望能够更改单词的大小写而不将它们标记为以任何方式修改。

谢谢。

最佳答案

您将问题标记为 gitignore。但 gitignore 是关于文件名的。但如果您谈论变量,您可能指的是文件内容。

无论您真正的意思是什么,答案都应该是相同的。 Git 绝对不能忽略字符大小写的差异,无论是文件名还是文件内容的差异。 Git 在内部计算内容和文件名的 SHA1 校验和。如果任何字符的大小写发生变化,SHA1 值将始终完全不同。

为了消除因字符大小写更改而引起的恼人差异,您需要在 checkin 之前“规范化”所有拼写。定义您的“正常”拼写,并在 git 中定义预提交 Hook (您最喜欢的搜索引擎将找到有关 git Hook 的信息)。在其原始形式中, Hook 可能会拒绝“非标准化”输入,并且您需要在提交成功之前手动调用“标准化器”。您还可以使用 clean 和 smudge 过滤器来构建一些东西。但这只是一个工具箱,而不是现成的解决方案。请参阅https://www.git-scm.com/docs/gitattributes (我从来没有必要做类似的事情)。如果您使用相当智能的编辑器,那么最好在每个保存操作中自动进行规范化。

添加/更正:实际上 git 对忽略文件名中的大小写有一些支持。 请参阅core.ignorecase 它没有非常清楚地记录(引用“启用各种解决方法”)。我从未需要使用它,所以我无法透露更多信息。

关于git - 使用 BitBucket 忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19069225/

相关文章:

ios - 两个 iOS 应用程序的 Git 存储库结构,其中一个应用程序从另一个应用程序大量派生

android - 无法打开与身份验证代理 opensuse 13.2 的连接

git - 如何清理远程git repo中的垃圾

bitbucket - 如何从Bitbucket备份问题列表?

git - 如何仅允许对 bitbucket 存储库的 master 分支进行读访问

java - 是否可以仅从一个特定分支触发 Jenkins?

Git:将所有对象推送到远程存储库(不仅是引用,而且绝对是所有 blob、树和提交)

Git:永不提交更改的文件(但仍保留原始修订版。)

git - git reset --hard 和 git clean 的区别

git - 有没有办法避免 ssh 配置中的默认 git 用户?