【问题标题】:Ignore line of code in Git忽略 Git 中的代码行
【发布时间】:2015-08-19 03:46:54
【问题描述】:

在我的项目中,我想忽略一行代码,因为它包含一个目录,对于 repo 的每个用户来说都是不同的。

我为我的问题找到了a useful answer,但是我不知道如何将其应用于我自己的问题。

我需要忽略的行如下: MyMesh.loadMesh("D:/Software Projects/OpenGL/Raytracing-Project/dodgeColorTest.obj", true);

所以我想知道的是我必须在$ git config filter 设置中插入什么,用于清洁和涂抹的情况。

【问题讨论】:

  • 将字符串移动到配置文件中,将配置文件放入.gitignore(如果还没有的话)。这是正确的做法。您可能使用的任何其他 hack 都只是一颗等待爆炸的定时炸弹。
  • @axiac 什么样的配置文件?你能给我举个例子吗?
  • @RobinvanHeukelum,实际上是任何类型的配置文件。一个纯文本文件,JSON、YAML、XML,...选择您的堆栈中常用的一个或选择您喜欢的一个。
  • 由于您没有指定您使用的语言(它看起来像 C#Java 对我来说,但我不知道这些语言),我添加了一个解释如何在CC++ 中进行操作。 C#Java 应该不会有太大的不同(除了语法上的差异)。

标签: git gitignore gitattributes


【解决方案1】:

您的问题的标准解决方案是将字符串移动到配置文件中并将该文件添加到.gitignore。此外,将文件的重命名副本连同有关如何使用它的说明一起放入存储库。

配置文件的格式和你使用它的方式取决于你使用的语言。


对于CC++ 和类似的语言,它可以像包含以下内容的.h 文件一样简单:

/**
 * This file contains various constants (paths, for example) that are specific
 * to the computer where this code is compiled.
 *
 * Make a copy of this file as 'config.h' and change it to match your system.
 */

#ifndef __CONFIG_H__
#define __CONFIG_H__


/* The path to the OBJ file used by blah-blah-blah feature */
#define OBJ_PATH "D:/Software Projects/OpenGL/Raytracing-Project/dodgeColorTest.obj"


#endif

将其命名为 config.h.dist(或使用更适合您的项目和编码风格的其他名称)并将其添加到存储库中。

将其复制为config.h,并将config.h 添加到.gitignore

#include "config.h" 放入您提取上述代码的文件中,并将具体文件路径替换为config.h 中定义的符号:

#include "config.h"

MyMesh.loadMesh(OBJ_PATH);

使用该技术从代码中提取到config.h 中所有可能在您同事的系统上不同的值。不要忘记将它们也添加到config.h.dist,并附上关于它们的类型和它们可能具有的值的相关描述。

【讨论】:

  • 为什么要使用 .dist 扩展名来命名第二个配置文件?
  • 它来自“分发”。它是您分发给他人的那个;他们使用它作为模板来获得满足他们需求的自己的版本。阅读 this SO question 以获取有关该想法的更详细说明。
猜你喜欢
  • 2017-12-23
  • 2012-06-22
  • 2017-01-23
  • 1970-01-01
  • 2021-12-17
  • 2023-03-04
  • 2023-03-17
  • 2013-01-28
  • 1970-01-01
相关资源
最近更新 更多