Git在Mac OS X上更改文件
我刚刚克隆了一个包含一些linux内核模块的旧存储库(不问)。 如果我在linux机器上克隆,一切都很好。然而,在我的Mac上,有人(大概是Mac OS X)对模块进行二进制更改。我已经禁用了autocrlf 下面是克隆后直接输出的Git在Mac OS X上更改文件,git,macos,binaryfiles,hfs+,Git,Macos,Binaryfiles,Hfs+,我刚刚克隆了一个包含一些linux内核模块的旧存储库(不问)。 如果我在linux机器上克隆,一切都很好。然而,在我的Mac上,有人(大概是Mac OS X)对模块进行二进制更改。我已经禁用了autocrlf 下面是克隆后直接输出的git diff-p--stat: .../kernel/net/ipv4/netfilter/ipt_ecn.ko | Bin 3853 -> 4535 bytes .../kernel/net/ipv4/netfilter/ipt_
git diff-p--stat
:
.../kernel/net/ipv4/netfilter/ipt_ecn.ko | Bin 3853 -> 4535 bytes
.../kernel/net/ipv4/netfilter/ipt_ttl.ko | Bin 3458 -> 3904 bytes
.../kernel/net/netfilter/xt_connmark.ko | Bin 4534 -> 5618 bytes
.../2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko | Bin 4378 -> 5217 bytes
.../2.6.26-2-686/kernel/net/netfilter/xt_mark.ko | Bin 3679 -> 4334 bytes
.../kernel/net/netfilter/xt_rateest.ko | Bin 4545 -> 7137 bytes
.../2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko | Bin 3841 -> 6553 bytes
7 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko b/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko
index 76d7d8d..b1470d6 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko and b/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ttl.ko b/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ttl.ko
index d974dc9..9dcb633 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ttl.ko and b/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ttl.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_connmark.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_connmark.ko
index d9381a6..14c2a2c 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_connmark.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_connmark.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko
index 36af201..178adfa 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_mark.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_mark.ko
index 2dd1a0a..1329162 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_mark.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_mark.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_rateest.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_rateest.ko
index 8678387..b23e514 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_rateest.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_rateest.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko
index 13e4891..7c3c61c 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko differ
git重设--hard也不起作用。但是,奇怪的事情确实发生了:每次我重置时,
git diff
右侧的大小会改变位置,文件名中的一些大写字母也会改变。我在Mac上有一个不区分大小写的文件系统,这可能是原因吗?我如何解决这个问题(如果可能的话,不重新格式化Mac)这个问题是由于HFS+文件系统的不区分大小写的默认设置造成的
以第一个有问题的文件为例:
i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko
您会发现(如原始记录)在同一目录中还有名为ipt_ECN.ko
的文件:
git ls-tree HEAD -- i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ |
grep '^ipt_.*\.ko'
从理论上讲,您可以重新格式化引导卷以使用区分大小写的HFS+,但这往往会导致随机应用程序出现问题(例如,那些存储/安装名为foo
,但后来专门尝试读取名为foo
的文件的应用程序)
除了备份/重新格式化/恢复之外,您还可以在使用区分大小写的HFS+格式化的磁盘映像中工作。使用Disk Utility创建一个新的磁盘映像(可能是一个“稀疏包”映像),并将您的工作树放在该卷中(它将安装在
/Volumes/
下)。您可能需要创建一个默认磁盘映像,然后通过在rsulting卷的擦除选项卡中指定“Mac OS Extended(区分大小写,日志)”来重新格式化它。该问题是由于HFS+文件系统的默认不区分大小写
以第一个有问题的文件为例:
i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko
您会发现(如原始记录)在同一目录中还有名为ipt_ECN.ko
的文件:
git ls-tree HEAD -- i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ |
grep '^ipt_.*\.ko'
从理论上讲,您可以重新格式化引导卷以使用区分大小写的HFS+,但这往往会导致随机应用程序出现问题(例如,那些存储/安装名为foo
,但后来专门尝试读取名为foo
的文件的应用程序)
除了备份/重新格式化/恢复之外,您还可以在使用区分大小写的HFS+格式化的磁盘映像中工作。使用Disk Utility创建一个新的磁盘映像(可能是一个“稀疏包”映像),并将您的工作树放在该卷中(它将安装在/Volumes/
下)。您可能需要创建一个默认磁盘映像,然后通过在rsulting卷的擦除选项卡中指定“Mac OS Extended(区分大小写,日志)”来重新格式化它