我有一个版本很少的项目,每个版本显然都运行在自己的git分支上。 该项目有一个跟踪配置文件(谷歌应用程序引擎的app.yaml),其中包含版本名称。
我想在将错误修复从一个分支合并到另一个分支时告诉git忽略该行。
有这么明智的方式吗?
答案 0 :(得分:2)
简短回答:否。
有趣的回答:英国英语中的git表示一个不愉快或卑鄙的人。
实际答案:
Git旨在跟踪项目/存储库中的更改,而不是单个文件。
Git的设计综合了Torvalds在Linux中的体验 维护一个大型的分布式开发项目,以及他的 熟悉从文件系统中获得的文件系统性能 项目和迫切需要制定一个简短的工作制度 顺序。
我认为没有任何方法可以做到这一点(这将是聪明的创造)。
PS:回复可能会冒犯某些人,但git背后的意识形态是“不要”让人们处理个别文件的移动。
您可以做的一件事是,在分支之间创建差异,并在生成/合并补丁时完全忽略特定文件。不知道它是否真的适用/有益。
您可以尝试的其他解决方案是:"Merge" Specific Files from Another Branch
答案 1 :(得分:1)
是的,有办法做到这一点。对于这样的情况,Git支持custom merge drivers。
在合并驱动程序中,您应该检查文件的所有三个版本,并删除所有这些文件中的行。然后对结果运行git merge-file
。在git merge-one-file
helper中也可以找到一些指针。完成后,请阅读ours
版本到结果的行。
如果您确实想不跟踪该行,可以使用smudge and clean filters。但我不认为这就是你想要的。