2013-10-21 58 views
0

我想讓git對源代碼不區分大小寫。無論如何要實現這一目標? (不,我不希望它忽略文件路徑中的大小寫更改。)讓git對源代碼不區分大小寫?

+2

你能否更詳細地解釋你想達到的目標?你想忽略文件名或者源代碼或其他內容的情況嗎? –

回答

-1

Git對源代碼不區分大小寫,因爲源代碼不區分大小寫。更改代碼的大小寫會改變代碼的含義。 var abcvar ABC是兩個不同的變量聲明。

你應該做的是遵循一個適當的編碼風格,採取案例模式遵循,並堅持下去。

+1

實際上,git不區分大小寫,因爲小寫字母和大寫字母被編碼爲不同的字節。因爲git不關心源代碼。它甚至不關心信件。它只知道字節! –

+0

*「'var abc'和'var ABC'是兩個不同的變量聲明」*。不一定,有一些不區分大小寫的語言。他們中的大多數是舊的語言btw。 – talles

+1

我不區分大小寫的編程語言。 (VB6) – Abhi2011

3

好吧,當然有。如果你想掛自己,git會很樂意爲你提供足夠的繩索 一個鉤子。

Git自己跟蹤內容並且不關心內容是什麼。小寫字母和大寫字母被編碼爲不同的字節,這就是所有的git知道的。

但是git是非常可擴展的。當從磁盤讀取文件,寫入磁盤時,計算它們之間的差異以及合併它們時,可以告訴它使用自定義過濾器。

如果您想使其保留大小寫並忽略大小寫diffmerge,您需要實現自定義比較和合並驅動程序。在gitattributes(5)中查找diff。如果要將所有內容標準化爲大寫或小寫,則需要實現讀取和寫入過濾器(稱爲「乾淨」和「塗抹」)。在gitattributes(5)中查找filter。而且,您必須使用gitattributes機制將其應用於適當的文件。


也就是說,我真的認爲這是一個壞主意。大多數編程語言都是區分大小寫的,對於那些不符合要求的編程語言來說,僅僅堅持一種情況(通常較低)會容易得多。但也許在某些情況下,它可能是最糟糕的選擇。

您必須自己提供繩索(過濾器以進行大小寫轉換)。

+0

很好的答案,謝謝。我有一個較舊的VB項目,每隔一段時間,某個庫會更改大小寫(例如,DAO。)。不會在代碼方面打擾任何東西,但它會拋出git中的每一個模塊,並且它是PITA在源代碼中返回並更改以避免合併衝突。也就是說,不確定這個過濾器是否真的更好,但至少這是我可以衡量的一個選項。 – jleach