亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

git mv并且僅更改目錄的大小寫

git mv并且僅更改目錄的大小寫

Git
元芳怎么了 2020-02-04 15:17:39
雖然我發現了類似的問題,但沒有找到解決問題的答案當我嘗試通過該目錄從FOO重命名為foo git mv FOO foo我得到fatal: renaming 'FOO' failed: Invalid argument好。所以我嘗試git mv FOO foo2 && git mv foo2 foo但是,當我嘗試提交通過git commit .我得到# On branch master# Untracked files:#   (use "git add <file>..." to include in what will be committed)## foonothing added to commit but untracked files present (use "git add" to track)當我通過git add foo任何方式添加目錄時,都不會更改,并git commit .再次給我相同的消息。我究竟做錯了什么?我以為我使用的是區分大小寫的系統(OSX),為什么我不能簡單地重命名目錄?
查看完整描述

3 回答

?
慕村9548890

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次提交之前引入了錯誤的案例)來修復該案例,而不會在歷史記錄中的任何位置出現錯誤的案例。如果要執行此操作,則必須小心,因為從那時起的提交哈希值將有所不同,其他人將不得不根據分支的最近歷史重新建立或重新合并其工作。


查看完整回答
反對 回復 2020-02-04
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

您要將選項設置core.ignorecase為false,這將使Git注意本機不支持它的文件系統的大小寫。要在您的倉庫中啟用:


$ git config core.ignorecase false

然后,您可以使用來重命名該文件,git mv它將按預期工作。


查看完整回答
反對 回復 2020-02-04
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

我能夠通過使用臨時文件名使用git 1.7.7解決此問題:


$ git mv improper_Case improve_case2

$ git mv improve_case2 improve_case

$ git commit -m "<your message>"


查看完整回答
反對 回復 2020-02-04
  • 3 回答
  • 0 關注
  • 758 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號