在我的部分的第一個承諾中被稱爲_Electronics
它是以大寫字母開頭,然後我將其更改爲_electronics
。git是否不區分大小寫?
cygwin下的Git在提交新名稱後忽略了這個案例,所以我在目標回購庫中手動更改了名稱。
現在它有時會將承諾的_electronics
部分更改爲_Electronics
。
我做錯了什麼?
在我的部分的第一個承諾中被稱爲_Electronics
它是以大寫字母開頭,然後我將其更改爲_electronics
。git是否不區分大小寫?
cygwin下的Git在提交新名稱後忽略了這個案例,所以我在目標回購庫中手動更改了名稱。
現在它有時會將承諾的_electronics
部分更改爲_Electronics
。
我做錯了什麼?
它將被視爲2種不同的東西,但會導致您在非區分大小寫的系統上遇到問題。如果是這種情況,請確保您製表符完成任何路徑或文件名。此外,爲了改變在短短的情況下事物的名稱,這樣做:
mv file.txt temp.txt
git add -A
git commit -m "renaming..."
mv temp.txt File.txt
git add -A
git commit --amend -m "Renamed file.txt to File.txt"
這是更改提交它們,然後摺疊提交的明確方式。較短的方式來做到這一點是操作都在一個索引和工作文件夾:
git mv file.txt temp.txt
git mv temp.txt File.txt
git commit -m "Renamed file.txt to File.txt"
這涉及到調整目錄名稱,以及:git mv and only change case of directory
這是要依賴於core.ignorecase
配置值,在大小寫敏感的文件系統中設置爲false,在Windows上的msysgit中設置爲true。
core.ignorecase
如果爲true,此選項允許在不同的解決方法,使GIT中上不區分大小寫,如FAT文件系統更好地工作。例如,如果一個目錄列表在git需要 「Makefile」時發現「makefile」,git會認爲它確實是同一個文件,並且繼續 將它記爲「Makefile」。
缺省值爲false,除非git-clone(1)或git-init(1)將在創建存儲庫 時探測並設置core.ignorecase爲true(如果適用)。
這是正確的答案。對於將來我來說,使用'git config --unset-all core.ignorecase && git config --system core。用sudo忽略錯誤。 – Znarkus
@Znarkus在OS X上,你的代碼完全是我需要的。謝謝! –
同上James,@Znarkus已經在OS X上發現了這個問題的解決方法,謝謝! –
這是容易得多:
git mv Electronics electronics -f
git commit -m "That was easy!"
您是否在不區分大小寫的文件系統上嘗試這種方法? –
@愛德華是的,OS X – Arnoud
我最初讀這篇文章爲原始海報,試圖對一個文件夾進行改變格式的重命名,而不是文件。現在我重新閱讀這個,目前還不清楚。事實上,'mv -f'可以用於文件。 –
git config --system core.ignorecase false
什麼OS是你嗎? –
你使用的是什麼文件系統? –
Windows與cygwin。我的服務器運行Ubuntu Linux。不知道文件系統,我猜ext3或ext2 - 我的提供者配置了最小安裝。 – JAkk