Git 自动更改文件扩展名

Git automatically changing file extensions

我在 windows 上有一个 git 存储库,其中包含一些文件扩展名为 .for 的 Fortran 源代码。此代码由第 3 方软件编译并 运行,如果文件扩展名不是 .for,则会抛出错误。这个第 3 方软件的一个相当烦人的功能是,在 linux 上,它需要相同的 fortran 源代码文件的 .f 文件扩展名。因此,当我将 git 存储库克隆到 linux 系统时,我必须将 fortran 源文件更改为 .f。我如何配置 git 来自动执行此操作,所以当我克隆到 linux 时,所有 fortran 文件都有一个 .f 文件扩展名,而在 windows 上相同的文件是 .for?

这不是一个真正的git问题,所以你发现的障碍主要是因为你想用锤子来完成螺丝刀的任务。

在你的位置,我会执行以下操作之一:

  • git 可以很好地处理符号链接,因此您可以在 .for 上为每个 .f 个文件构建一个符号链接(例如:for x in *.f;do ln -svf ${x%.f}.for $x;done
  • 您可以在 .git 目录中设置检出和提交挂钩,根据需要重命名文件 before/after 提交。您可以对其进行设置,以便在本地存储库中具有 .for,而在远程存储库中具有 .f

第一个要简单得多,但不是很漂亮。第二个非常漂亮,但需要棘手的脚本编写,而且它会 不稳定 (挂钩脚本的一些小问题可能会损害您的源代码)。对我来说,第一个更好。