zoukankan      html  css  js  c++  java
  • 当git上文件名大小写重命名的修改时(git大小写敏感/默认不敏感),如何重命名并提交

    git默认是大小写不敏感!!!

    加了感叹号是什么意思呢,意思就是这本身就是一个坑,本人使用的IDE是idea(网上说Eclipse可以避开问题),这个IDE本身就集成了git,但是如果要在terminal使用git命令,还需先安装并配置好git环境变量,然后在idea配置git安装路径。。。。扯远了,先说说这个坑,在idea上对文件大小写重命名时,比如DataExt.java改成Dataext.java,git是不会做辨认的,即使你看到的是Dataext.java,等到你push到远程分支上去,你会发现分支上的还是DataExt.java,这时别人要是merge你的分支或者checkout下来时,就报错啦。

    如何避免:

    哎,你上网一搜,都是说把git设置成大小写敏感 git config core.ignorecase false(其实这也是个坑)。。。。

    我就分情况解决吧:

    1、先说一下git大小写不敏感,也就是默认的情况下如何解决:(建议默认)

    使用命令:git mv DataExt.xml Dataext.xml

    ps:  文件夹重命名      git mv foldername tempname && git mv tempname folderName (在大小写不敏感的系统中,如windows,重命名文件夹的大小写,使用临时文件名)

    此时暂存区的文件已改动

    接下来commit到本地分支,最后push上远程分支

    git commit -m '提交说明'
    git push

     使用IDE的可以操作界面提交并推送。

    2、接下来要说那些设置了大小写敏感的怎么提交:(不建议设置)

    为什么说设置了大小写敏感也是个坑,因为假设

    分支 文件
    A DataExt.java
    B Dataext.java

     

     

     

    我在本地的分支B设置了git config core.ignorecase false,并且文件是小写的Dataext.java,接下来如果merge了分支A的话,会出现错误:

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

            DataExt.java

    意思是:分支A中的DataExt.java将会重写分支B的文件

    那这样的话,假设路人甲和乙都是使用分支A的,你merge他们,就会提示文件将被重写。。。坑啊!

    解决方法都是将core.ignorecase设置为true,然后再进行操作,那设置为false又有何意义?

    哎。。。对于设置了大小写敏感的修改文件名大小写要怎么提交呢?

    首先 记住 将你的文件备份

    然后删除

    git rm DataExt.java

    ,将备份文件重命名Dataext.java放到路径下,添加

    git add Dataext.java

    ,提交

    git commit -m '提交说明'

  • 相关阅读:
    Python生成二维码
    SSO单点登录
    小说 · 凉生,我们可不可以不忧伤
    RabbitMQ入门教程——.NET客户端使用
    ASP.NET MVC 拓展ActionResult实现Html To Pdf 导出
    ASP.NET MVC 拓展ViewResult实现word文档下载
    RabbitMQ入门教程——安装及配置
    MongoDB学习笔记——分片(Sharding)
    MongoDB学习笔记——Replica Set副本集
    MongoDB学习笔记——Master/Slave主从复制
  • 原文地址:https://www.cnblogs.com/samwang88/p/6611947.html
Copyright © 2011-2022 走看看