如何禁用 .gitignore 文件的自动提交?

11
我们有一个测试团队使用HP Unified Functional Testing。测试和开发团队都共享同一个Git存储库。测试团队中没有人使用HP-UFT中的Git功能,文件是在工具之外提交和推送的。
尽管如此,HP-UFT(自动)创建并执行.gitignore文件的提交,看起来像下面这样。提交似乎是按项目为基础进行的,并且会使git日志混乱。
# UFT忽略部分 *.lck /Res* # 结束UFT忽略部分
提交不会自动推送。
所有提交的提交消息都相同(并且不是非常信息化):
UFT Commit
如何在HP Unified Functional Testing(版本12.51)中禁用此奇怪的行为?更加明确地说,我要找的是一种方法使工具不执行这些提交。我知道应该忽略这些文件和文件夹,但我宁愿在文件夹层次结构中管理一个单独的.gitignore文件。

搜索或阅读用户指南并没有什么帮助。


我在这个问题上设置了悬赏,要求回答包含以下内容之一:
  • 禁用该工具的提交方式。我知道可以通过git钩子和其他解决方案来实现绕过。
  • 提供可信来源的链接,指明无法从该工具中禁用此行为。
悬赏到期后,没有任何答案满足这些条件,因此我正在尝试澄清我想要的答案类型。

也许清理一下过滤器会让 Git 相信那些 .gitignore 文件实际上并没有改变?(参见 http://stackoverflow.com/a/23604651/6309) - VonC
@VonC 这是个好主意,但也许我在问题描述上没有表达清楚。这个工具会创建_新的_.gitignore文件。我正在寻找一种避免这种情况的方法。 - Magnilex
1
忽略git ignore文件怎么样? - VonC
请提供需要翻译的具体内容。 - VonC
@VonC 那是一种替代方案,虽然它只是一个变通方法。理想情况下,我正在寻找一种让 UFT 工具停止这种行为的方法。然而,我明白这里可能有更多的“git人”比“UFT人”。(包括我自己) - Magnilex
3个回答

2
两位回答者mprilVonC的回答都是正确的,因为似乎没有一种简单的方法可以禁用HP-UFT自动提交文件的功能。因此,Git的解决方案是使用VonC提供的解决方案,并添加Git钩子来强制忽略这些提交。

然而,在HP-UFT中我们成功找到了一个解决方法,我认为这个方法更好:

Git插件位于HP-UFT-INSTALLATION-DIRECTORY/addins/VersionControlSystem中。将此文件夹的名称更改为VersionControlSystem_backup(或仅删除该文件夹)可以确保HP-UFT不执行这些不需要的提交。

当然,如果应用程序内部有一个禁用插件的设置,那就更好了,但似乎并不存在。希望HP在未来的应用程序版本中修复这个问题(或者最好是根本原因导致的不需要的提交)。


2
我不知道UFT是什么,但如果您可以访问由该工具管理的git存储库,您可以考虑设置一个git pre-commit hook(在.git/hooks/pre-commit中),类似于使用git pre-commit hooks阻止不必要的提交,由Jake McCrary编写的(该脚本只是一个示例,需要根据您的情况进行调整)。
其想法是查找即将提交的文件列表
git diff --cached --name-only --diff-filter=ACM

如果列表中只包含.gitignore文件,则拒绝提交。

我也不了解UFT,但理想情况下,我希望避免使用git的变通方法(正如我在悬赏描述中所述)。无论如何,我们可能需要退而求其次采用这样的解决方案。然而,钩子需要更加复杂一些,因为我们希望允许其他.gitignore文件的提交。 - Magnilex
@Magnilex 这些不需要的提交信息是否总是相同的?如果是,那么预提交钩子可以非常简单,拒绝任何带有不需要的信息的提交。 - VonC
是的,实际上我在问题中已经说过了。那也是我想到的第一件事。我会带着这个去的。 - Magnilex
@Magnilex 希望一位真正的“UFT”专家能够提供更多意见,但作为一名“Git专家”,这将是我的方法 ;) - VonC

2

在UFT中,没有直接避免这种行为的方法。实际上,您可以在“UFT”部分下添加自己的忽略规则。例如,您可以添加以下内容:

'!/Res1' 

理论上,这将允许提交 '/Res1' 文件夹。或者,您可以为结果文件夹指定另一个名称并自由提交它。但请记住,.lck文件不应出现在公共存储库中。

而你为什么需要将本地机器上的测试结果放到存储库中呢?


我自己不使用这个工具,但对我来说,它在幕后“秘密”提交似乎非常奇怪。我并不是要寻找一种提交这些文件的方法,但如果我们想在文件夹层次结构中更高层级地拥有单个.gitignore文件怎么办?每个项目都需要一个忽略文件是没有必要的。 - Magnilex
你有这方面的“证据”吗?文档或其他来源? - Magnilex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接