关于代码版本库的管理,早些年风光无限的svngit所取代。而git基本上都是在命令行下使用的,所以就有了gui图形化工具,比如sourcetree。这款软件是非常好用的,推荐大家使用。本文中描述的事项是:当文件命名大小写错误后,git如何识别处理的问题。

背景描述

苏南大叔在调试thinkcmf的时候,新建了一个indexController.php文件,开发机(mac)能够正常识别出这个文件。但是部署上线后,却报错404。检查发现,这个indexController.php文件的首字母应该是大写。所以,这里需要对这个文件进行改名。然后提交到git仓库里面。

狗血的事情,就在这个时候发生了,在sourcetree里面,显示并没有文件可以提交!

目录大小写改名(推荐)

上一小节的内容说的是普通文件的大小写改名,接着说明目录的大小写改名。目录的改名操作比较复杂一些,下面的范例中,原名称是Ajax,要改名的新名称是ajax

苏南大叔:sourcetree/git如何识别文件名大小写变动 - git目录改名
sourcetree/git如何识别文件名大小写变动(图15-12)

这个步骤用git mv -f <老名称> <新名称>操作的话,要操作两次。用个临时名称tmp来做个过渡。否则就会报错。"Invalid argument"。

<!--with.su.ping->

git mv -f <老名称> <临时名>
git mv -f <临时名> <新名称>

苏南大叔:sourcetree/git如何识别文件名大小写变动 - git目录改名
sourcetree/git如何识别文件名大小写变动(图15-13)

苏南大叔:sourcetree/git如何识别文件名大小写变动 - git目录改名2
sourcetree/git如何识别文件名大小写变动(图15-14)

如果这个目录下面还有其它文件的话,就更麻烦一些,直接提交的话,sourcetree会报错。错误信息是:already exists in index

要把这些内部文件“删除”,然后再“添加”进去。其实就是先移动到一个临时的外部目录,然后提交submit之后,再移动回来,再提交一次。有些麻烦是不?

苏南大叔:sourcetree/git如何识别文件名大小写变动 - git目录改名3
sourcetree/git如何识别文件名大小写变动(图15-15)

总体上来说,就是git mv -f两次,移动该目录下面的文件两次,sourcetree提交两次。

结论

sourcetree的背后就是git,所以苏南大叔推荐您:要是sourcetree找不到解决方案的话,不妨试试从git的角度来看待这些问题。您说是吧?

更多sourcetree相关经验文章,请点击这里查看。https://newsn.net/tag/sourcetree/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   sourcetree    git

本站的忠实读者小伙伴,正在阅读下面这些文章: