當git上只做文件大小寫重命名的修改時,如何躲坑


一、 提交時

假設修改ABC.java為Abc.java。

1.1 如果使用git命令進行僅涉及大小寫的重命名

1.1.1 設置git庫為大小寫敏感(不建議)

$ git config core.ignorecase  false

用這種方法進行重命名,用git status就可以識別出修改了,但是不推薦用這種方式,因為在更新這種修改的時候會有麻煩。

1.1.2 使用git mv命令(僅當core.ignorecase為true時可用)

$ git  mv  ABC.java Abc.java
$ git status
......
             renamed: ABC.java -> Abc.java

此時的狀態是renamed,git commit即可。

1.2 如果使用Eclipse進行僅涉及大小寫的重命名

無論core.ignorecase設置為true還是false或者沒有設置該項,修改之后均可正常提交,在進行Commit的時候,對話框中顯示的修改文件列表有:

即刪除ABC.java並增加Abc.java,直接commit然后push即可。

偶爾會出現在Eclipse端修改完之后右鍵commit為灰色的情況,這時候如果使用git status發現有renamed狀態的修改的話,也可以直接在git bash上commit並push。

二、 更新時

可能更多的問題出現在更新時。

2.1 如果使用git命令更新內容

core.ignorecase不為true時會出現如下錯誤:

......
error: The following untracked working tree files would be overwritten by merge:
         Abc.java
.......

或者在切換分支等操作的時候莫名出現這樣的錯誤,解決方法都是將core.ignorecase設置為true,然后再進行操作。

2.2 如果使用Eclipse更新內容

測試發現無論core.ignorecase如何設置均木有問題。

三、總之

在涉及到只修改文件名大小寫的提交和更新時,

3.1 全部使用Eclipse來進行是最穩妥的;

3.2 如果喜歡使用git命令,將core.ignorecase設置為true即可:

git config core.ignorecase  true

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM