区分大小写和特殊字符的 git 问题

汉尼斯

我在 github 上有一个远程存储库,它与我的 macbook 和实时服务器(unix)同步。目前,我无法从我的 macbook 拉或推到远程,并出现以下错误:

error: cannot pull with rebase: You have unstaged changes.
error: please commit or stash them.

我的本地工作副本中有 4 个文件:

modified:   app/webroot/files/uploads/ABC.png

Untracked files:
(use "git add <file>..." to include in what will be committed)

app/webroot/files/get/Ä Ö ü.pdf
app/webroot/files/uploads/xyz Übc.png
app/webroot/files/uploads/def äbc.png

所有 4 个相关文件都来自服务器上的用户上传(可能应该被 gitignore 忽略,但我们现在......)

第一个/修改后的文件 (ABC.png) 可能是因为我的 macbook 不区分大小写,因为存储库中有 abc.png 和 ABC.png。但是,由于这些是在客户服务器上上传的,因此我不能删除其中任何一个。所以这是我现在无法解决的第一个问题。

对于其他文件,我完全不知道如何摆脱它们。其他情况没有重复,所以我怀疑特殊字符。我删除了整个本地存储库并再次克隆它,它立即附带了这 4 个文件,到目前为止我尝试过的任何操作都不起作用(git clean -ndx、git reset --hard、git fetch 以及各种参数)。

通常,即使存在本地未跟踪或修改的文件,只要这些文件不受提交的影响,拉取和推送也能正常工作。但这一次我什么也做不了,我真的不知道为什么......

我希望一些 git 专家可以帮助我!

周二

这种情况很难处理。这并非不可能,但可用的工具并不足够。

问题正是您所怀疑的:您的主机操作系统对文件名(路径名)提出了特殊要求,而 Git 没有,并且使用 Git 的人已经违反了。Git不在乎有人同时做了ABC.pngand abc.pngGit可以分别存储这两个路径名;但是在您的工作树中,您将在其中完成自己的工作,您的计算机确实关心并拒绝让您拥有这两个文件。带有变音符号的文件名相似,但有些不同:在 UTF-8 中,可以将此类名称表示为组合字符序列,或使用“内置”变音符号的代码点。Git 允许,但 MacOS 强制您使用 MacOS 喜欢的名称。

这意味着要使用这个存储库,你必须在不使用工作树的情况下工作——或者至少,不使用 Git 常用的工作树机制。使用 来执行此操作是可能的,但通常太痛苦了,git update-index它可以让您处理原始字节字符串,而git cat-file -p可以让您通过哈希 ID 提取底层 Git 对象。

在 Mac 上解决这个问题的最简单方法是在 VM 中安装 Linux,例如,使用 vagrant。那么你有一个Linux系统确实让你有与两个名字的情况下的文件,并且不试图为Unicode正常化适用于UTF-8名。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Git-区分大小写的问题

来自分类Dev

Git-文件夹区分大小写的问题

来自分类Dev

如何清除OS X上git中区分大小写的问题?

来自分类Dev

Git在不区分大小写的文件系统上添加文件夹的问题

来自分类Dev

传入的XML区分大小写问题

来自分类Dev

Java中区分大小写的问题

来自分类Dev

不区分大小写的git merge

来自分类Dev

如何解决“替换字符串”方法区分大小写的问题?

来自分类Dev

Git分支名称-区分大小写还是不区分大小写?

来自分类Dev

模式比较和SqlPackage 150区分大小写的问题

来自分类Dev

Git区分大小写错误-从Android Studio重命名和提交

来自分类Dev

Xelement配对问题不区分大小写

来自分类Dev

如何使“问题”的“标签”字段不区分大小写

来自分类Dev

区分大小写的URL与NextJS 10问题

来自分类Dev

如何使“问题”的标签字段不区分大小写

来自分类Dev

htaccess区分大小写的重写条件问题

来自分类Dev

pandas groupby-组中区分大小写的问题

来自分类Dev

“pubg”而不是“PUBG” - 区分大小写的输入问题

来自分类Dev

不区分大小写的git pickaxe搜索

来自分类Dev

Azure Devops Git分支区分大小写

来自分类Dev

Git SVN区分大小写的文件夹名称

来自分类Dev

修复 macOS 中 Git 文件夹大小写问题

来自分类Dev

在不区分大小写的文件系统上自动执行区分大小写的重命名的git commit

来自分类Dev

在Java中区分字母数字数据(和特殊字符)且区分大小写的标准

来自分类Dev

Git和SourceTree中的大小写差异

来自分类Dev

不区分大小写的preg替换特殊字符/ Umlaute

来自分类Dev

不区分大小写的preg替换特殊字符/ Umlaute

来自分类Dev

比较元素tagName时可以避免区分大小写的问题吗?

来自分类Dev

MongoDB不区分大小写的索引“开始于”性能问题

Related 相关文章

  1. 1

    Git-区分大小写的问题

  2. 2

    Git-文件夹区分大小写的问题

  3. 3

    如何清除OS X上git中区分大小写的问题?

  4. 4

    Git在不区分大小写的文件系统上添加文件夹的问题

  5. 5

    传入的XML区分大小写问题

  6. 6

    Java中区分大小写的问题

  7. 7

    不区分大小写的git merge

  8. 8

    如何解决“替换字符串”方法区分大小写的问题?

  9. 9

    Git分支名称-区分大小写还是不区分大小写?

  10. 10

    模式比较和SqlPackage 150区分大小写的问题

  11. 11

    Git区分大小写错误-从Android Studio重命名和提交

  12. 12

    Xelement配对问题不区分大小写

  13. 13

    如何使“问题”的“标签”字段不区分大小写

  14. 14

    区分大小写的URL与NextJS 10问题

  15. 15

    如何使“问题”的标签字段不区分大小写

  16. 16

    htaccess区分大小写的重写条件问题

  17. 17

    pandas groupby-组中区分大小写的问题

  18. 18

    “pubg”而不是“PUBG” - 区分大小写的输入问题

  19. 19

    不区分大小写的git pickaxe搜索

  20. 20

    Azure Devops Git分支区分大小写

  21. 21

    Git SVN区分大小写的文件夹名称

  22. 22

    修复 macOS 中 Git 文件夹大小写问题

  23. 23

    在不区分大小写的文件系统上自动执行区分大小写的重命名的git commit

  24. 24

    在Java中区分字母数字数据(和特殊字符)且区分大小写的标准

  25. 25

    Git和SourceTree中的大小写差异

  26. 26

    不区分大小写的preg替换特殊字符/ Umlaute

  27. 27

    不区分大小写的preg替换特殊字符/ Umlaute

  28. 28

    比较元素tagName时可以避免区分大小写的问题吗?

  29. 29

    MongoDB不区分大小写的索引“开始于”性能问题

热门标签

归档