Git: 保持同一文件的两个位置同步

2024-10-02 02:40:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Git RePo用于一个单头C/C++库,它在根中有一个特定的^ {CD1>}文件。这就是主代码所在的地方。现在我想为其他编程语言(如Python或Python)做一些绑定节点.js. 我想把每个绑定在自己的子文件夹。现在需要注意的是,在发布过程中只发布这个子文件夹。.h文件(位于上几层并包含在相对路径中)没有发布,这破坏了几乎所有语言的绑定安装。你知道吗

我可以看到以下选项:

  1. 符号链接。这与我的需求非常接近,但在某些文件系统上可能会有问题,因此我想知道是否有合理的替代方案。

  2. 硬链接。AFAIK,完全不受Git支持。

  3. Git钩子以确保子文件夹中的文件与顶层文件匹配,并在需要时进行更新。但是由于Git不跟踪Git钩子,一些开发人员可能会忽略这些钩子并破坏它。

  4. 手动同步文件的脚本。很像Git钩子,但更明确。可能还允许将.h文件的不同版本保存在不同的子文件夹中,并且允许在紧急情况下更新一个绑定而不更新其他绑定。可能应该附带一个服务器端钩子或CI脚本,以确保在推送标记的commit时(例如,在发布新版本时)文件匹配。

您认为什么是首选的解决方案,或者我是否遗漏了任何未注意到的陷阱?你知道吗


Tags: 文件代码git版本脚本文件夹节点链接
1条回答
网友
1楼 · 发布于 2024-10-02 02:40:43

如果不打算在Windows上使用此功能,可以使用符号链接。你知道吗

不要使用钩子或其他方法来复制git中的文件,因为这样就有了一个不必要的版本控制的副本,它可能会失去同步,除非您(如您所提到的)希望需要它故意失去同步。你知道吗

我建议您解决这个根本问题:“在发布过程中只发布这个子文件夹”。您需要的是一个构建过程,它将文件复制到绑定工作所需的位置,然后“发布”结果。这可以是一个简单的脚本或Makefile,它复制文件,然后执行“发布”操作。(请确保将副本添加到.gitignore,以免意外添加!)你知道吗

相关问题 更多 >

    热门问题