我在Windows上使用git。我有起源裸存儲庫和兩個具有相同文件結構的本地存儲庫。在firlst本地存儲庫中,我通過使用`mv git Folder \ file.txt文件夾\ file.txt'進行重命名並提交重命名來更改文件夾的大小寫。然後推到原點。在第二個本地存儲庫上,我提出了更改,但未反映該情況。當我看到該文件的日誌時,我可以看到它已重命名。沒有反映變化的原因是什麼?有趣的是,對於我重命名的其他文件夾,這些更改已反映出來。重命名不會反映當更改拉
回答
我不知道它會做的伎倆,但嘗試
更新與在
HEAD
什麼是指數:git read-tree -i HEAD
刪除文件和/或目錄應該變成改名:
del blah rmdir foo
強制創建工作樹fil從他們的ES版本的索引:
git checkout-index -a -f
今後要知道,Git是遺憾的是不與你的情況下處理好。這是可以理解的:在Windows上,NTFS不區分大小寫,而保留病例,並且FAT既不區分大小寫又不區分大小寫。 IOW,似乎只有沒有 Git可以展示出的這個問題的一種理性行爲:一方面它應該在提交的樹中處理'FoO/bAr.tXt',並在文件中處理'foo/bar.txt'系統是指同一個文件,另一方面它們應該是不同的東西?它不會工作,我可以想象的唯一解決方案是一些特定於Windows的攻擊,如git checkout-index --fix-work-tree-name-casing
,它實際上會重命名工作樹實體以匹配索引。
更新:如已被告知elsewhere,git reset --mixed HEAD
可以用來代替git read-tree
。
謝謝,我會試一試。一個問題 - 當我將這樣做'config.ignoreCase'設置爲'true'或'false'? –
它工作!你能告訴我第一條命令和最後一條命令是什麼嗎? –
當你運行普通的'git checkout'時,Git首先使用要檢出的文件填充索引,然後將工作樹同步到它。在一般情況下,檢查的方式很多,所以我的想法是:1)強制Git使索引中的狀態與HEAD完全匹配,並且2)強制Git在工作樹中重新創建此狀態。這些管道命令就是這樣做的。 – kostix
- 1. AngularJS - Firebase resetPassword更改不會反映
- 2. 反映重構更改(Java - > JSP)
- 3. 當我改變單選按鈕樣式xml - 更改不反映
- 4. JBOSS 7域名jsp更改沒有反映後重新啓動
- 5. 重命名應用程序不會更改架構
- 6. 重命名.aspx文件不會更改繼承屬性(asp.net 4.0)
- 7. WPF更改不反映,僅反映清潔解決方案更改
- 8. 網站修改不會反映
- 9. SQL iaas,更改版本會反映賬單更改嗎?
- 10. 更新陣列不會反映到DOM
- 11. 文件不會重命名?
- 12. 重命名/更改cygwin用戶名
- 13. 當使用gem browserify-rails時,它並不反映文件更改
- 14. NSfetchedResultsController更改不反映到UI
- 15. 更改不反映在我的網站
- 16. 更改classname但不反映結果
- 17. JQuery更改不反映在回發
- 18. ImageView不刷新/反映更改
- 19. 更改圖像數據不反映ModelView
- 20. UIView更改不反映在iOS 7中
- 21. prestashop:不立即反映的更改
- 22. WordPress的CSS更改不反映
- 23. Datatable更改不反映在數據集
- 24. CSS樣式表不反映更改
- 25. 單聲道爲Android,更改不反映
- 26. 更改不反映在前端Typo3
- 27. 頁面更改不反映lighttpd
- 28. css更改不反映在玉文件
- 29. spring-hibernate事務 - 更改不反映?
- 30. Magento js和css更改不反映
Windows有一個不區分大小寫的文件系統,它會將文件和文件夾的名稱相同但不同的情況視爲相同。 Git有一些設置可以控制這一點,但我不記得他們是什麼在我頭頂。 – 2014-03-19 10:00:44
它們是'config.ignoreCase' :)。你是否認爲它應該是「錯誤」的變化被反映出來? –