2010-10-13 108 views
51

我想將文件夾從「Frameworks」重命名爲「frameworks」,但git不會讓我添加新的小寫名稱。我想它對待文件名不區分大小寫,是嗎?Git:文件重命名

一個git add frameworks/ -f沒有幫助

+0

哪個操作系統? – 2010-10-13 06:05:34

+0

我運行MacOS 10.6 – 2010-10-13 06:08:20

回答

97

你可以試試:


但情況(Windows上的實例)中的問題msysgit issue 228描述(再次:這應該now -- June 2014 -- work with git 2.0.1

總有設置ignorecase假的一個選項配置文件將強制Unix像Git語義在NTFS之上。
的Git支持這種行爲,但它不是默認 - 但從NTFS點a.txtA.txt是同樣的事情 - 這樣的Git嘗試保留,由於大多數用戶所期望

作爲一個更好的解決方法,您可以

git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt 

,這也改變了存儲在磁盤上的文件的情況。

本博客文章illustrates the same issue on MacOs一個重訂期間:

在Mac OS X文件系統默認是,他們是不區分大小寫。 FFFFFF.gifffffff.gif相同。

如果您刪除有問題的文件,只是從文件系統而不是從Git索引,請注意,您可以合併有問題的分支,並讓它恢復文件,就好像沒有任何事情發生一樣。

的步驟非常簡單:

$ rm file/in/question.gif 
$ git merge trunk 

總之,remember what git mv stands for

mv oldname newname 
git add newname 
git rm oldname 

,所以如果newnameoldname衝突,你需要讓他們不同的(即使它只是短暫的一段時間),因此git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt

+0

我已經嘗試過'git mv',但它給了我致命的結果:'重命名'框架'失敗:無效參數' – 2010-10-13 06:13:40

+0

@Erik:你試過的命令行是什麼? – VonC 2010-10-13 06:14:24

+1

好吧,2步'git mv'確實有效! – 2010-10-13 06:20:31

1

我有一個類似的問題,無法獲得新的文件夾名稱(不同的情況下)在遠程回購更改。我發現最簡單的解決方案只是將文件移出回購並提交。觸發刪除操作。然後重新添加,當我添加時,它進入了適當的情況。

2

如果您碰巧在Github上託管,則可以在其網站上使用重命名功能。不得不改變5個文件的外殼,發現它工作得很好。