Git删除跟踪的文件,但保持本地和远程

时间:2015-04-09 14:53:28

标签: git

我是Git的新手,并添加了一些我不想跟踪的文件(配置文件和一些缓存文件)。我熟悉将文件添加到.gitignore然后运行git rm --cached <file>以便将其从git中删除但保留本地文件的过程。

然后,当我推动此更改并拉远程时,它会删除远程文件。由于这是一个需要存在的配置文件,是否有任何解决方案在执行git pull时基本上应用--cached选项?或者这只是必须手动完成吗?

2 个答案:

答案 0 :(得分:1)

你不能这样做。如果文件需要存在于repo中,则需要保留在repo中。更好的解决方案是使用其他一些工具来管理配置文件,而不是提交在repo的不同实例中意味着不同的文件。

通常,您会提供类似file.config.example的内容,其中包含占位符值。存储库的每个克隆实例都会将file.config.example复制到file.config,这将包含在.gitignore中,以防止特定配置文件被评估。

答案 1 :(得分:0)

我担心必须手动完成,但您可以使用git本身将文件从旧版本中删除。

git checkout HEAD^ -- file.config

应该在HEAD之前复制名为file.config的文件。显然,在生产中尝试之前,确保它在测试回购中做了你想要的东西:)。