Gil*_*man 1157 git case-sensitive git-config git-commit
我已经改变了被命名一些文件去首字母大写,如Name.jpg到name.jpg.Git无法识别此更改,我不得不删除文件并再次上传.在检查文件名的变化时,Git是否有区分大小写的方法?我没有对文件本身进行任何更改.
Kei*_*ley 1363
你可以使用git mv:
git mv -f OldFileNameCase newfilenamecase
Run Code Online (Sandbox Code Playgroud)
小智 927
Git有一个配置设置,告诉它是区分大小写还是不敏感:core.ignorecase.要告诉Git区分大小写,只需将此设置设置为false:
git config core.ignorecase false
Run Code Online (Sandbox Code Playgroud)
core.ignorecase如果为true,则此选项启用各种变通方法,以使git能够更好地处理不区分大小写的文件系统,如FAT.例如,如果目录列表
makefile在git期望的时候找到Makefile,git将假定它实际上是同一个文件,并继续记住它Makefile.默认值为false,但git-clone(1)或git-init(1)将
core.ignorecase在创建存储库时进行探测并设置为true.
我知道的两个最流行的操作系统,它们具有不区分大小写的文件系统
CBa*_*arr 132
使用SourceTree我可以从UI完成所有这些操作
FILE.ext为whatever.extwhatever.ext为file.ext这有点单调乏味,但如果你只需要对几个文件进行操作就很快了
Sij*_*der 117
这就是我在OS X上所做的:
git mv File file.tmp
git mv file.tmp file
Run Code Online (Sandbox Code Playgroud)
两个步骤因为否则我得到"文件存在"错误.也许它可以通过添加--cached等一步完成.
Ste*_*ers 45
暂时改变Git的区分大小写有时会很有用.两种可能的方法: -
方法1:
git -c core.ignorecase=true checkout mybranch关闭单个checkout命令的区分大小写.或者更一般地说:.(感谢VonC在评论中提出这一建议.)git -c core.ignorecase= <<true or false>> <<command>>
方法2:
要更改设置更长时间(例如,如果需要在更改之前运行多个命令):
git config core.ignorecase(这会返回当前设置,例如false).git config core.ignorecase <<true or false>> - 设置所需的新设置.git config core.ignorecase <<false or true>> - 将配置值设置回其先前的设置.小智 45
我们可以使用 git mv 命令。下面的示例,如果我们将文件 abcDEF.js 重命名为 abcdef.js,那么我们可以从终端运行以下命令
git mv -f .\abcDEF.js .\abcdef.js
Run Code Online (Sandbox Code Playgroud)
use*_*510 43
在OSX下,为了避免此问题并避免在不区分大小写的文件系统上进行开发的其他问题,可以使用"磁盘工具" 创建区分大小写的虚拟驱动器 /磁盘映像.
运行磁盘实用程序,创建新磁盘映像,并使用以下设置(或根据需要进行更改,但保持区分大小写):

一定要告诉git它现在是一个区分大小写的FS:
git config core.ignorecase false
Run Code Online (Sandbox Code Playgroud)
Ame*_*icA 21
使用以下命令:
git config --global core.ignorecase false
Run Code Online (Sandbox Code Playgroud)
您可以全局配置 git 系统,使其文件和文件夹名称区分大小写。
gme*_*ben 18
我从其他答案尝试了以下解决方案,但它们不起作用:
如果您的存储库像我的一样托管在GitHub上,您可以在源(GitHub.com)上重命名文件并以自上而下的方式强制重命名文件.
下面的说明取决于您尝试重命名的文件类型,即,它是否是GitHub认为可编辑的文件类型(代码,文本等)或浏览器中的不可编辑(图像,二进制等).
branchname选中"直接提交到分支"单选按钮,然后单击"提交更改"按钮branchname选中"直接提交到分支"单选按钮,然后单击"提交更改"按钮raz*_*zon 17
1)将文件重命名Name.jpg为name1.jpg
2)提交删除的文件 Name.jpg
3)将文件重命名name1.jpg为name.jpg
4)将添加的文件修改name.jpg为先前的提交
git add
git commit --amend
Run Code Online (Sandbox Code Playgroud)
Anu*_*pam 13
与@Sijmen的答案类似,这是我在重命名目录时在OSX上起作用的方式(此灵感来自另一篇文章):
git mv CSS CSS2
git mv CSS2 css
Run Code Online (Sandbox Code Playgroud)
简单地做git mv CSS css就给出了无效的参数错误:fatal: renaming '/static/CSS' failed: Invalid argument可能是因为OSX的文件系统不区分大小写
ps BTW如果您使用的是Django,collectstatic也无法识别大小写差异,因此您还必须在静态根目录中手动执行上述操作
CBa*_*arr 11
多年后我需要回到这个问题并提供另一个可能的解决方案!我在一个只需要重命名单个文件的项目中遇到了这个问题。这就是我所做的,它对我有用。
git mv -f src/MyFile.js src/myfile.js
Run Code Online (Sandbox Code Playgroud)
我从这个帖子和这个答案中学到了这一点
小智 8
我使用了以下步骤:
git rm -r --cached .
git add --all .
git commit -a -m "Versioning untracked files"
git push origin master
Run Code Online (Sandbox Code Playgroud)
对我来说是一个简单的解决方案
Mac OSX High Sierra 10.13对此进行了一些修复。只需为您的git项目创建一个虚拟APFS分区,默认情况下它没有大小限制并且不占用空间。
Sensitivegit和ln -s /Volumes/Sensitive/git /Users/johndoe/git您的驱动器将进入 /Volumes/Sensitive/
小智 7
因此对于这种区分大小写的部署问题,GitHub 的处理方式有很多解决方案。
\n就我而言,我已将文件名大小写约定从大写更改为小写。
\n我确实相信 git 可以跟踪更改,但此命令\ngit config core.ignorecase false规定了 git 在幕后如何运行
就我而言,我运行了命令,git 突然有很多文件需要跟踪,标记为未跟踪。
\n然后我点击 git add 。,然后 git 提交并再次在 netlify 上运行我的构建。
\n然后,现在显示的所有错误都可以被跟踪(例如\n)Module not found: Can\'t resolve \'./Components/ProductRightSide\' in \'/opt/build/repo/components/products并修复,以便 git 能够成功跟踪和实施更改。
这是一个很好的解决方法,并且可以轻松避免挫败感,但相信我,这肯定会起作用。
\nPS:修复问题后,您可能需要运行命令\ngit config core.ignorecase true来恢复 git 区分大小写的工作方式。
另外,注意git config core.ignorecase false其他文件扩展名存在问题,因此您可能需要注意,如果您知道自己\xe2\x80\x99正在做什么并且确定的话,请执行此操作。
这是 netlify 上的一个帖子,可能可以帮助您
\n| 归档时间: |
|
| 查看次数: |
254587 次 |
| 最近记录: |