Git 仓库中文件大小写重命名实践(Windows 环境)

前段时间使用 Jenkins 自动部署编译时遇到的一个场景,在 Windows 环境中编译运行 0 error,但在 Jenkins 执行自动编译时就会报错,xxx 文件找不到。但该文件在本地存在,Git 仓库中也存在。经过反复排查对比,发现唯一区别就是大小写不一致。下面来操作下边将文件名从小写重命名为大写。

1.这是文件夹和 IDE 中的效果。

2.这是在 Git 仓库中的效果。

3.将文件从小写改为大写并提交代码。

问题就从这里开始了,在 Windows 上看起来文件名已经从 xxx 重命名为 xXx,没毛病。编译运行均正常(在 Windows 环境)。

4.在看 Git 仓库时,结果就有点不一样了。出现了两个文件 xxxAppService 和 xXxAppService,猜测原因是 Linux 环境对大小写铭感,所以在重命名文件后大写的 xXx 和小写的 xxx 是不同的文件。如果一直在 Windows 环境中,这个问题可管可不管。如果需要跨环境请继续向下看。

5.接下来我们需要将原来的小写 xxxAppService 文件删除,操作步骤的大概思路是:

1.先将 xxxAppService.cs  文件在原地复制粘贴备份(文件名:xxxAppService - 复制.cs);

2.提交代码(这一步如果不提交,就开始后面的步骤,那么 Git 上不会有变化);

3.删除源文件 xxxAppService.cs;

4.重复第二步,提交代码;

5.将备份的文件名 xxxAppService - 复制.cs 改为 xXxAppService.cs 并提交代码;

 

按照这5个步骤操作,文件名才能在 Git 上真的被修改。当前的使用的 Git 仓库是 Gita,也有可能在 Github 或 Gitlab 中的结果不一样。下面是5步操作的截图。

如果使用 Git 命令执行修改文件名就可以避免仓库出现同名大小写不一样的文件。

            

图一

图二

图三

posted @ 2020-07-15 13:56  Jöhan  阅读(419)  评论(0编辑  收藏  举报