Git:为文件提取新更改但忽略本地更改

时间:2014-04-07 13:46:29

标签: git

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

2 个答案:

答案 0 :(得分:3)

我使用.template个文件。

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

例如,在您刚刚克隆了回购后,您有

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

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

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

答案 1 :(得分:2)

如果您不打算使用.template个文件,filters会派上用场。您可以设置一个smudge过滤器,用于介绍工作副本中的更改以及在cleangit diff之前运行的git add过滤器。

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

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