- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我们正在使用位于办公室 Linux 服务器上的远程 Git 存储库。所有客户端都是安装了 Git Extensions 作为客户端(使用 msysgit 运行)的 Windows PC。
在客户端系统上,如果我尝试执行以下操作:
git branch Branch1
git branch branch1
第二个命令将失败,告诉我同名的分支已经存在。这正是我所期望的,因为我在 git config
中将 core.ignorecase
设置为 true。
但是,如果我直接登录到 Linux 系统并运行相同的命令,即使 core.ignorecase
标志设置为 true,也会创建两个分支。
我原以为第二个命令也会失败,因为我将存储库配置为忽略大小写,但要么该标志在 Linux 系统上不执行任何操作,要么我错过了一些东西。
任何人都可以帮助我理解这个问题,因为我们计划很快将我们的 SCM 从 Source Safe 迁移到 Git,这个问题让我们很害怕。如果两个开发人员创建名称相同但大小写不同的分支并将结果推送到 Linux 存储库,会发生什么情况?
最佳答案
我想在@meagar 的回答中添加更多细节:
FAT32/NTFS 是 case-preserving文件系统。也就是说,如果您将文件命名为“Foo.txt”,它将被存储为“”Foo.txt”。如果您将文件另存为“foo.txt”,它将被存储为“foo.txt”。但是由于不区分大小写,“Foo.txt”和“foo.txt”实际上是相同的,您不能将两个文件放在同一目录中。
在 Windows 中的存储库中,如果您将名称从“Foo.txt”更改为“foo.txt”,并且如果您不通过 git 将其显示为更改,则可以设置 core.ignorecase
配置为 true,git 不会将其视为更改。如果你将它设置为 false,它就会。 (但由于文件系统和 git 的性质,它看起来像是添加了一个新文件 foo.txt,这在 Windows 上增加了困惑)。
这就是 core.ignorecase
的目的
来到分行。分支只是指向提交的指针。这些指针只是文件。这些文件存储在 .git/refs/heads
中。当你创建一个分支时,比如 bar
,一个名为 .git/refs/head/bar
的文件被创建。现在,在 Linux 中,当您创建一个名为 Bar
的分支时,它可以继续创建一个文件 .git/refs/head/Bar
并因此允许创建分支。但是在 Windows 上,您无法创建 .git/refs/head/Bar
,因此当 bar 存在时您将无法创建 Bar 分支。意识到 core.ignorecase
与您的存储库中的文件有关 - 您的代码库 - 并且对 git 的元数据文件没有影响。
因此您将不得不忍受并适应这样一个事实,即在 Linux 中,您可以创建名称相同但大小写不同的分支,但在 Windows 中,您不能。
关于windows - 如何使 "git branch"遵守 Linux 上的 "core.ignorecase"标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8439432/
这个问题已经有答案了: How to check if a String contains another String in a case insensitive manner in Java? (
我是这个网站的新成员(member),谢谢 stackoverflwo好吧,我有一个程序要做: 创建一个程序,它将查找并显示输入的字符是元音、辅音、数字还是特殊字符。 这是我的代码: Scanner
我想忽略大写/小写、标点符号和空格。这是我要调用它的代码: public static boolean isPal(String s) { if(s.length() == 0 || s.le
我有一个程序,用户应该能够输入多少度以及什么比例(摄氏度、华氏度或开尔文)。如果用户希望退出 session ,则如果他们写“退出,退出,退出,退出,退出或退出”,则程序应该退出。我知道如何一次仅使用
我想做这样的事情: re.findall(r"(?:(?:\A|\W)" + 'Hello' + r"(?:\Z|\W))", 'hello world',re.I) 并且 re.I 是动态的,因此我
这个问题在这里已经有了答案: Access JavaScript property case-insensitively? (19 个回答) 关闭 2 年前。 我想在不区分大小写的对象中找到键。 对
我想计算java中字符串列表中单个单词的出现次数。看似这个任务很简单,但我遇到了以大写字母开头或包含,的单词的问题。或.在单词的末尾。我的方法如下: public static Long countW
我正在将一个文本文件读入我的程序,并让用户搜索一个字符串。我怎样才能使它不区分大小写?这是我的代码片段: while (str1.hasNextLine()) { String line =
我在 stackoverflow 上找到了这段代码,它用于从字符串数组中删除重复项。 arr = arr.filter (function (v, i, a) { return a.indexOf (
我正在尝试将正则表达式定义为 IGNORECASE 并且点将匹配所有。 以下代码: str = "Test " a = re.findall(r"(\w+)", str, re.IGNORECASE,
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How to add a case-insensitive option to Array.IndexOf
我试图忽略字符串的大小写敏感性。例如,用户可以输入“巴西”或“巴西”,乐趣就会触发。我该如何实现?我是 Kotlin 的新手。 fun questionFour() { val edittex
IgnoreCase 属性 设置或返回一个Boolean值,指明模式搜索是否区分大小写。 object.IgnoreCase [= True | False ] Object 参数总是一个 R
我在 python 中有以下正则表达式来解析文本中的列表: re.compile('(.*,?) and (.*)') 一切都按预期工作,除了在使用 re.IGNORECASE 标志编译 re 时,不
我在 python 中有以下正则表达式来解析文本中的列表: re.compile('(.*,?) and (.*)') 一切都按预期工作,除了在使用 re.IGNORECASE 标志编译 re 时,不
在 C# 中有一个问题:没有不区分大小写的 String.Contains 方法(参见 Case insensitive 'Contains(string)' )。 在 VB.NET 中问题是相同的,
(这里是java初学者), 我正在制作一个简单的游戏,用户可以在其中输入是否想再玩一次。但是,我希望只要他键入是、是或是的任意组合,游戏就会继续重播。所以只要第一个字母是 y 游戏就会继续。例如) 游
我一直在尝试使用 collection.where 对 backbone.js 集合执行不区分大小写的搜索,我刚刚意识到集合中搜索值和模型字段值的大小写必须匹配。我找到了 this 例如,但我应该在哪
myJList.setSelectedValue("someTHING", true); //if "SomeThing" in the list, it won't be selected 我想设置
如果我使用一些希腊月份名称并根据它们制作不区分大小写的正则表达式,它们将不会匹配大写的同一月份: var names = [ 'Μάρτιος',
我是一名优秀的程序员,十分优秀!