簡體   English   中英

Git在Mac OS X上更改文件

[英]Git changes files on Mac OS X

我剛剛克隆了一個包含一些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_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 reset --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的文件)。

如果沒有bakup / reformat / restore,您可以在使用區分大小寫的HFS +格式化的磁盤映像中工作。 使用“磁盤工具”創建新磁盤映像(可能是“稀疏捆綁”映像),並將工作樹放入該卷(它將安裝在/Volumes/ )。 您可能需要創建默認磁盤映像,然后通過在擦除選項卡的擦除選項卡中指定“Mac OS Extended(區分大小寫,已記錄日期)”來重新格式化它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM