zoukankan      html  css  js  c++  java
  • 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 命令执行修改文件名就可以避免仓库出现同名大小写不一样的文件。

                

    图一

    图二

    图三

  • 相关阅读:
    Ansible配置管理Windows主机
    Docker中安装rabbitmq并启用插件
    解决Ubuntu不能直接root用户连接ssh
    Error in invoking target ‘agent nmhs’ of makefile ‘/home/dong/tools/oracle11g/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk’
    Ubuntu16.04安装sqlserver-快速入门
    记录一次归档日志爆满事件
    Linux下Mysql忘记root密码
    Ubuntu16.04安装Rabbitmq
    Oracle查看执行计划
    Ubuntu16.04随笔
  • 原文地址:https://www.cnblogs.com/fxck/p/13435085.html
Copyright © 2011-2022 走看看