3 回答

TA貢獻1884條經驗 獲得超4個贊
您處于不區分大小寫的環境中。此外,如Git所理解-A的mv那樣,添加no 將不會照顧到remove的一面。警告!執行此操作時,請確保沒有其他更改或未跟蹤的文件,否則它們將作為更改的一部分得到落實! git stash -u首先,執行此操作,然后再執行git stash pop。繼續:要解決此問題,請執行以下操作:
mv foo foo2
git add -A
git commit -m "renaming"
mv foo2 FOO
git add -A
git commit --amend -m "renamed foo to FOO"
這是更改工作目錄,提交然后折疊2個提交的引出方式。您可以只在索引中移動文件,但是對于git的新手來說,它對發生的事情可能不夠明確。較短的版本是
git mv foo foo2
git mv foo2 FOO
git commit -m "changed case of dir"
如其中一項注釋中所建議,您還可以進行交互式重新編排(git rebase -i HEAD~5如果在5次提交之前引入了錯誤的案例)來修復該案例,而不會在歷史記錄中的任何位置出現錯誤的案例。如果要執行此操作,則必須小心,因為從那時起的提交哈希值將有所不同,其他人將不得不根據分支的最近歷史重新建立或重新合并其工作。

TA貢獻1860條經驗 獲得超8個贊
您要將選項設置core.ignorecase為false,這將使Git注意本機不支持它的文件系統的大小寫。要在您的倉庫中啟用:
$ git config core.ignorecase false
然后,您可以使用來重命名該文件,git mv它將按預期工作。

TA貢獻1859條經驗 獲得超6個贊
我能夠通過使用臨時文件名使用git 1.7.7解決此問題:
$ git mv improper_Case improve_case2
$ git mv improve_case2 improve_case
$ git commit -m "<your message>"
- 3 回答
- 0 關注
- 758 瀏覽
添加回答
舉報