如何防止git跟踪单行?

时间:2013-07-28 04:05:02

标签: git gitignore

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

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

有这么明智的方式吗?

2 个答案:

答案 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。但我不认为这就是你想要的。