【问题标题】:Git: Pull new changes for file but ignore local changesGit:为文件提取新更改但忽略本地更改
【发布时间】:2014-05-19 19:26:23
【问题描述】:

我想知道是否有办法继续跟踪远程分支上的特定文件,但让您的本地机器忽略您对其所做的任何本地更改(例如,配置文件或类似的东西)。

【问题讨论】:

  • 冲突怎么办?
  • 它需要一些研究,但您可以通过 .gitignore 和 .git/info/exclude 忽略本地文件中的更改。不确定在那里添加跟踪文件时如何解决冲突。

标签: git


【解决方案1】:

我使用.template 文件。

您可以将带有.template 后缀的配置文件存储在存储库中,并在没有它的情况下创建本地配置文件(并将其添加到.gitignore)

例如,在你刚刚克隆了 repo 之后,你有

$ git clone my_repo
$ ls
myconfig.conf.template .gitignore
   (and .gitignore contains myconfig.conf)

克隆后,你应该复制模板文件,你可以编辑配置文件,不要伤害 repo

$ cp myconfig.conf.template myconfig.conf
$ vim myconfig.conf

【讨论】:

    【解决方案2】:

    如果您不打算使用.template 文件,filters 会派上用场。您将设置一个 smudge 过滤器来引入您在工作副本中的更改,以及一个在任何 git diffgit add 之前运行的 clean 过滤器。

    clean 过滤器会将文件恢复到默认状态,smudge 过滤器会根据您的需要修改文件。

    前段时间我有类似的需求,从那时起就使用过滤器 (How to set a VSPROPS variable only if it does not already exist?)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      相关资源
      最近更新 更多