0

我有一个版本很少的项目,每个版本显然都在自己的 git 分支上运行。该项目有一个跟踪的配置文件(谷歌应用引擎的 app.yaml),其中包含版本名称。

我想用一种方法告诉 git 在将错误修复从一个分支合并到另一个分支时忽略该行。

有没有聪明的方法呢?

4

2 回答 2

2

简短的回答:

有趣的答案:英国英语中的git表示不愉快或可鄙的人

实际答案:

Git 旨在跟踪项目/存储库中的更改,而不是单个文件。

Git 的设计综合了 Torvalds 在 维护大型分布式开发项目中使用 Linux 的经验,以及他从同一项目中获得的文件系统性能的深入了解以及在短期内产生工作系统的迫切需要。

我不认为有任何方法可以做到这一点(这将被称为智能)。

PS:回复可能会冒犯某些人,但 git 背后的意识形态是“不”让人们处理单个文件的移动。

您可以做的一件事是,在分支之间创建差异并在生成/合并补丁时完全忽略特定文件。不知道它是否真的适用/有益。

您可以尝试的另一个解决方案是:“合并”来自另一个分支的特定文件

于 2013-07-28T04:39:51.950 回答
1

是的,有办法做到这一点。对于这种情况, Git 支持自定义合并驱动程序

在您的合并驱动程序中,您应该检查文件的所有三个版本并删除所有有问题的行。然后运行git merge-file结果。一些指针也可以在git merge-one-filehelper中找到。完成后,将ours版本中的行读取到结果中。

如果你真的不想跟踪那条线,你可以使用涂抹和清洁过滤器。但我认为这不是你想要的。

于 2013-07-28T11:50:41.493 回答