gpt4 book ai didi

git - .gitignore 是否具有版本控制文件的等效项?

转载 作者:太空狗 更新时间:2023-10-29 12:53:14 24 4
gpt4 key购买 nike

这个问题与以下问题相关:https://stackoverflow.com/search?q=[git]+%2Bassume-unchanged ,然而,这些问题的答案似乎都不能满足我的需求。

我有一个由 py​​thon 脚本生成的头文件 (key_info.h)。为了聪明,我用一行代码控制了 header (key_info.h) 的占位符版本:

int i = you_need_to_run_the_key_info_gen_python_script_to_generate_this_file();

在运行 python 脚本之前,编译此代码会产生一个错误,告诉开发人员确切的操作;运行脚本。

当然,开发人员将继续运行 python 脚本以生成最新版本的 key_info.h,代码将成功编译。然后,开发人员将继续进行一系列更改,然后“git 提交”他们的代码。

我们遇到的问题是 key_info.h 现在已经被修改了。因此,git 会将其作为修改获取并允许提交。但是,此 header 的生成版本不应受版本控制。我们需要占位符版本保持不变,才能继续为开发者提供编译错误提示。

我的第一直觉是使用 .gitignore 来防止 git 在提交中获取 key_info.h。 .gitignore 可以很容易地在开发人员之间共享,因为 .gitignore 本身是受版本控制的。不幸的是,.gitignore 仅适用于不受版本控制的文件。

我的下一个想法是使用“git update-index --assume-unchanged/path/to/file”。这在本地非常有效,但我无法对其他开发人员强制执行此规则。开发人员意外提交生成的 header 只是时间问题。

所以我的问题是: 有没有一种方法可以对文件进行版本控制,同时默默地执行一个规则,即在提交更改时忽略该文件?我真正想要的是用于版本控制文件的 .gitignore。

最佳答案

but I have no way of enforcing this rule upon other developers

你几乎做到了:你可以让你的 key-info-gen 脚本运行 git update-index --assume-unchanged/some/path

但我认为这不是一个好主意。

我可能会选择根本不覆盖头文件。让您的 Python 脚本生成正确的头文件并将其写入不同的 目录,然后以正确的顺序为这两个目录传递 -I 编译器选项。如果脚本尚未运行,将找到受版本控制的 header 。如果脚本已运行,将找到用户生成的 header 。然后您可以将用户生成的 header 的路径放在 .gitignore 中。

关于git - .gitignore 是否具有版本控制文件的等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23835272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com