1. 程式人生 > >當git上只做文件大小寫重命名的修改時,如何躲坑

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

function http ner ips %20 error: ace mbed lips

一、 提交時

假設修改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

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