【问题标题】:GIT preserve sample data unique to each local repo/machine when pulling to the same file拉到同一文件时,GIT 保留每个本地存储库/机器唯一的样本数据
【发布时间】:2018-08-14 10:32:03
【问题描述】:

我的问题可能从问题标题中看不出来,所以我举个例子,

假设我在 Machine-1 上的 html 文件 index.html 如下:

MACHINE-1

<div class="col-xs-5 col-md-5 col-lg-3>
Lorem ipsum eget turpis urna curabitur fermentum ultricies enim, est magna at quam nam nisl praesent accumsan egestas, ut sit ac pulvinar tristique quisque tristique.</div>

我提交这个并推送到远程。

在我的另一台机器上,我从远程提取,但在这里我希望示例数据有所不同:

MACHINE-2

<div class="col-xs-5 col-md-5 col-lg-3>
Pharetra diam aenean vehicula sociosqu etiam at cubilia, mattis inceptos suscipit curabitur placerat ultrices, lorem consectetur lorem class curabitur donec.</div>

我提交这个并推送到远程。

当我从 Machine-1 上的远程提取时,Machine-1 上的样本数据“Lorem ipsum eget turpis ...”(在本地存储库中)不应被 Machine-2 的样本数据“Pharetra diam aenean vehicula”覆盖……”

是否有任何命令、解决方法、设置来管理这种情况。

谢谢

【问题讨论】:

    标签: git git-merge git-pull git-add


    【解决方案1】:

    问题是,git 如何知道您认为特定于 repo 的样本数据;更不用说跟踪哪些样本数据是从哪台机器推送过来的?

    一种解决方案是对模板进行源代码管理

    <div class="col-xs-5 col-md-5 col-lg-3>
    ${sample_data}</div>
    

    然后你会有一些过程,$(sample_data} 被替换为机器或环境的特定样本数据。 (通常这是软件构建过程的一部分。)

    在 Maven 中,这称为“过滤”,特定于机器的值将位于“过滤文件”中。更一般地,您正在为占位符插入值,您可以将包含这些值的文件视为特定于机器的属性文件。无论您如何称呼它们,您都可以根据某些约定将每台机器的数据存储在源代码控制中的单独文件中(例如 /filter-files/machine1.filter 可能具有 machine1 的值),以便在为特定机器/环境构建时可以选择正确的文件.或者这些值可以存储在源代码控制之外,并在构建时简单地提供。

    这种方法更常用于配置文件,而不是 div 的示例内容,但原理大致相同。在更一般的上下文中,您可以看到在源代码控制中具有一些默认配置可能有用的地方,但例如在构建服务器上保持生产系统的值分开,以便不需要将敏感信息放入源代码控制中。

    【讨论】:

      猜你喜欢
      • 2015-03-11
      • 2014-10-20
      • 2014-09-06
      • 2017-06-19
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多