问题:
项目启动时创建自己的分支时,把文件名称开头大写了Feature/XXX,但是后来发现远程的主分支名称为feature/AAA,拉取远程分支名称为Feature/AAA,而且不能进行push操作。
原因:
由于分支存储为.git目录中的文件。单个分支是包含分支指向的提交对象的哈希的单个文件。
所以,当创建一个分支Feature/XXX这将对应于文件的目录 .git/refs/heads/Feature/。所以Git将创建一个文件夹Feature文件夹,然后指向提交。
由于macOS 默认是不区分文件路径中的大小写的。这意味着feature/AAA和Feature/AAA是相同的。所以当你添加另一个分支feature/AAA时,它将创建一个文件AAA并将其添加到该文件夹中
但实际的内部名称取自原始文件夹和文件名。因此,当您的feature分支类别的文件夹以大写形式写入时,那么分支被识别为大写修改。所以提交到远程分支并不是提交到原来到feature/AAA,而是会创建新的Feature/AAA
解决方案:
需进入 .git/refs/heads/feature/ 将更改文件夹名称Feature->feature
或创建新分支时,直接用feature/XXX,保持前缀到一致性,避免上述问题发生