Git忽略大小写和修改文件名中大小写

                       

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51523358   文章出自:薛瑄的博客

你也可以查看我的其他同类文章,也会让你有一定的收货!

我们在平时的开发过程中,可能会需要更改文件名称的大小写,但是改好后,在Git中没有任何反应,使用git status时,如果遇到下面情况,说明GIT大小写不敏感,如下:

[rock@ROCK-PC]$ /d/WampServer/www/hexu.org/code (dev)$ git statusOn branch masterYour branch is up-to-date with 'origin/master'.nothing to commit, working directory clean
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

git对文件内的大小写是敏感的

如何解决Git的对文件名大小不敏感问题呢?

方案一:设置Git大小写敏感(不推荐):

$ git config core.ignorecase false
  
  
  • 1

使用这种方法会造成一个问题:

           
分支文件名
BTEST.txt
Atest.txt

在分支B使用了$ git config core.ignorecase false命令,并且手动把文件名改为TEST.txt,这时候再想回到分支A,就会出现如下错误:

he@he-PC MINGW64 /f/StudioProjects/artandroidclient (B)$ git checkout Aerror: The following untracked working tree files would be overwritten by checkout:        artandroidclient/src/main/java/cn/hdnc/artandroidclient/test.txtPlease move or remove them before you can switch branches.Aborting
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

找了半天,没有找到两全其美的办法
http://stackoverflow.com/questions/4858047/the-following-untracked-working-tree-files-would-be-overwritten-by-checkout

方案二:重命名文件(推荐):

第一种方法(推荐):

git mv A B 重命名A为B
  
  
  • 1

如果直接将大写名称改为小写,由于此时git是大小写不敏感的,所以不会修改。如下所示:

he@XueXuan-PC MINGW64 /f/StudioProjects/artandroidclient (master)$ git mv artsdk/src/main/java/cn/hdnc/ArtSDK artsdk/src/main/java/cn/hdnc/artsdkRename from 'artsdk/src/main/java/cn/hdnc/ArtSDK' to 'artsdk/src/main/java/cn/hdnc/artsdk/ArtSDK' failed. Should I try again? (y/n) nfatal: renaming 'artsdk/src/main/java/cn/hdnc/ArtSDK' failed: Permission denied
  
  
  • 1
  • 2
  • 3
  • 4
  • 5

先把文件名称改为其他的,再改为指定的文件名。如下所示:

he@XueXuan-PC MINGW64 /f/StudioProjects/artandroidclient (master)$ git mv artsdk/src/main/java/cn/hdnc/ArtSDK artsdk/src/main/java/cn/hdnc/arthe@XueXuan-PC MINGW64 /f/StudioProjects/artandroidclient (master)$ git mv artsdk/src/main/java/cn/hdnc/ArtSDK artsdk/src/main/java/cn/hdnc/artsdkfatal: bad source, source=artsdk/src/main/java/cn/hdnc/ArtSDK, destination=artsdk/src/main/java/cn/hdnc/artsdkhe@XueXuan-PC MINGW64 /f/StudioProjects/artandroidclient (master)$ git mv artsdk/src/main/java/cn/hdnc/art artsdk/src/main/java/cn/hdnc/artsdk  
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

第二种方法:

运行 git mv 就相当于运行了下面三条命令(详情):

$ mv README.md README$ git rm README.md$ git add README
  
  
  • 1
  • 2
  • 3

所以也可以自己去运行这些命令,到达git mv的效果

在使用git rm 命令时,先备份数据!!!

$ git rm ; git add  ;  git commit -m "rename file"
  
  
  • 1

由于我是与大家共用的仓库,所以我采用的方案2解决掉了。

$ git rm code/library/BuildTag*.php; git statusOn branch devChanges to be committed:  (use "git reset HEAD ..." to unstage)        deleted:    code/library/BuildTagAfc.php        deleted:    code/library/BuildTagAfs.phprock@ROCK-PC /d/WampServer/www/hexu.org/code (dev)$ git add code/library/BuildTag*.php; git statusOn branch devChanges to be committed:  (use "git reset HEAD ..." to unstage)        renamed:    code/library/BuildTagAfc.php -> code/library/BuildTagafc.php        renamed:    code/library/BuildTagAfs.php -> code/library/BuildTagafs.php
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

参考:http://ju.outofmemory.cn/entry/95443

 

关注我的公众号,轻松了解和学习更多技术
  这里写图片描述

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值