2016-04-22 17 views
2

重命名目錄(區分只),我想通過重命名的Git在Windows系統版本的目錄(更改目錄名的情況下):Git的方法:在Windows

$ git mv docs DOCS 
Rename from 'docs' to 'DOCS/docs' failed. Should I try again? (y/n) n 
fatal: renaming 'docs' failed: Permission denied 

我也試過用力的選擇 - 但同樣的結果:

$ git mv --force docs DOCS 
Rename from 'docs' to 'DOCS/docs' failed. Should I try again? (y/n) n 
fatal: renaming 'docs' failed: Permission denied 

出於某種原因,因爲它認爲DOCS已經是現有目錄,該目錄應在其內部移動的Git失敗。我知道我可以使用臨時目錄名稱將&提交重命名,然後將&修改爲重命名爲最終名稱,但是沒有辦法告訴Git我不想在任何其他目錄中移動?

回答

3

您可以嘗試在2個步驟中完成。

$ git mv docs DOCS2 
$ git mv DOCS2 DOCS 

,將工作

+0

爲什麼不能在內部做這個? –

+0

Git最初是爲了處理基於Linux的系統而設計的,它是區分大小寫的。 Windows不是。在Windows中,不可能在同一個地方有兩個名爲「ABC」和「abc」的文件夾。這個問題不在git per say中,SVN或Windows下沒有明確處理該問題的任何其他應用程序也會發生同樣的行爲。問題在於操作系統。 –

+0

問題不在操作系統中,因爲Windows可以將目錄從文檔重命名爲DOCS或文檔。這是一個不支持不區分大小寫,保存案例的文件系統的工具問題。 –

0

這不是git的限制,而是Windows和NTFS的限制。文件系統不會相信任何更改了簡單的案例更改(並且實際上無法執行此更改)。嘗試重命名(使用臨時名稱),然後提交或在非Windows計算機上更改它。

+1

您的第一句話不能正確,因爲在Windows資源管理器中,我可以僅通過大小寫來重命名目錄,而不會有任何問題。 –

-1

由於在櫃面的敏感,你不能將文件重命名爲相同的字母的窗口。 (Docs == docs [ignored case])

你可以從git bash開始,因爲git bash是cygwin,因爲它是一個unix仿真器,所以它是區分大小寫的。

這是一個來自git bash的演示。 (windows 7) enter image description here

+0

請再次嘗試目錄。 –