Git restore保持在两个同名但大小写相反的文件之间切换
我想摆脱git中的一些变化。假设文件名为ABC.sql 如果我执行Git restore保持在两个同名但大小写相反的文件之间切换,git,Git,我想摆脱git中的一些变化。假设文件名为ABC.sql 如果我执行git restore ABC.sql,它会显示一个文件“ABC.sql”,然后如果我尝试执行git restore ABC.sql,则“ABC.sql”文件会返回 除了git restore,我还尝试了: git签出 git重置 但似乎没有什么能帮我摆脱这个文件。 任何帮助都将不胜感激 我将做两个假设: 您正在Windows或OSX中工作。本机Windows不区分大小写,OSX配置为不区分大小写,但Git是 您签入了两个文件,它
git restore ABC.sql
,它会显示一个文件“ABC.sql”,然后如果我尝试执行git restore ABC.sql
,则“ABC.sql”文件会返回
除了git restore,我还尝试了:
任何帮助都将不胜感激 我将做两个假设:
git ls-tree -r HEAD | grep -i abc.sql
如果您在列表中同时看到两个文件:“abc.sql”和“abc.sql”,那么您就知道这两个文件都是以相似的名称进入回购协议的。这种情况有多种可能发生,例如,如果此回购协议的某些用户不使用Windows,或者该文件是在具有不同外壳的不同分支上创建的,并且两个分支都合并在一起
最好的做法是检查文件的两个版本,然后删除一个或重命名它(并提交更改),这样Windows用户就不会再有这个问题了。根据您的远程Git服务,您通常可以启用一些设置,以防止任何人推送包含仅大小写不同的分支和文件的提交。您也可以在本地repo中对此进行配置,但如果可能,最好在远程服务器级别停止此问题。我正在使用OSX
对我来说,有效的方法是从缓存中删除文件:
$git rm——缓存的abc.sql
这有帮助吗?文件是否不同?是否使用windows?默认情况下,Windows不区分大小写(更改它不是一个好主意),这是git for Windows的一个已知问题