赞
踩
转载请标明出处: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
git对文件内的大小写是敏感的
如何解决Git的对文件名大小不敏感问题呢?
$ git config core.ignorecase false
使用这种方法会造成一个问题:
分支 | 文件名 |
---|---|
B | TEST.txt |
A | test.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
意思是:分支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
如果直接将大写名称改为小写,由于此时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
先把文件名称改为其他的,再改为指定的文件名。如下所示:
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
第二种方法:
运行 git mv 就相当于运行了下面三条命令(详情):
$ mv README.md README$ git rm README.md$ git add README
所以也可以自己去运行这些命令,到达git mv的效果
在使用git rm 命令时,先备份数据!!!
$ git rm ; git add ; git commit -m "rename file"
由于我是与大家共用的仓库,所以我采用的方案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
参考:http://ju.outofmemory.cn/entry/95443
关注我的公众号,轻松了解和学习更多技术
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。