从repo中删除和取消跟踪文件,但将它们保存在远程服务器上

时间:2016-05-10 18:37:06

标签: git

我已经做了一些搜索,但要么我不明白它是如何工作的,要么我找不到我需要的东西。

我有一个生产服务器,我有我的本地开发盒。

到目前为止,git repo已经跟踪了一个目录,我不再想跟踪它了。我还想从repo中删除这些文件,因为它们不会被跟踪,只是让git repo比它需要的大。

但是,我的理解是,如果我本地git rm --cached并更改我的.gitignore文件,当我下载更新的仓库时,它将删除远程服务器上的文件,这是我不想要的。我希望文件保留在生产中,不再跟踪,而不是在回购中。

我认为有人不得不这样做,我可能会遗漏一些明显的东西。

我希望这是有道理的。谢谢!

1 个答案:

答案 0 :(得分:1)

你理解正确。但是,您可以在生产服务器上制作这些文件的副本,拉出本地存储库(将删除原件),然后从副本中还原文件。之后,这些文件将不会被跟踪,因此没有(通常的)git操作,包括任何进一步的拉动,将覆盖或删除它们。

编辑:

实际上,该问题的作者提出了一个更好的解决方案,即在生产服务器上使用git rm --cached,它将从索引中删除文件(允许它们在下次提交时从存储库中删除),但保留它们在工作树中。