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