2016-08-16 116 views
0

本地和远程删除文件期间,我一直在使用GIT了一段时间,而且我不明白本地和远程之间的一个核心概念很明显。Git的工作流程,从高速缓存上推删除远程

我有点存储区回购。

这是一个旧的遗留应用程序,需要对配置文件阳明海运(Symfony的1.4.20)

我有一个本地版本,有需要可以在本地和远程有点不同的两个文件。

我做混帐克隆并获得我需要的信息。

我更改了apps/frontend/config/factories.yml和config/databases.yml ,并让我的本地系统上的所有功能都能正常工作。

我然后把这两个文件在我的混帐忽略文件,并从缓存中删除它们。

当我从缓存中删除,并做它说这两个文件被标记为删除的git的状态。

如果我承诺他们,然后做一个混帐推到服务器时,它是不断删除这两个文件,所以当新的服务器创建它不具有两个重要的配置文件。

我明显错过了一件非常简单的事情。

如何更改文件。 保留本地更改的副本 删除它们,以便GIT停止跟踪它们,但在执行git push时不会删除它们?

快乐阅读其他的答案,因为我得到这个可能已经提问和回答,但我还没有找到一个对我来说很有意义的感觉。

谢谢。

回答

1

不幸的是,你有一种错过了git和VCS的点。在大多数VCS模型中,git-like和其他方式,更新操作的一般概念是两组文件(本地和远程)应该处于相同状态。

当你从你的遥控器上拖动文件,然后将它们添加到你的.gitignore,你告诉git,基本上是“我不再有兴趣跟踪这些文件出于某种原因,所以继续前进,不要从现在开始,他们不会把它们包含在回购中“。

如果有不同的服务器需要这些文件的不同版本的情况,这意味着它们是自动生成的好候选者。在您的仓库中包含一个生成这些文件的脚本,然后将这些文件自己添加到您的.gitignore。这样,你在做什么git打算要做 - 跟踪每个环境相同的源文件。任何分条的VCS都不是为了跟踪跨环境应该不同的文件,也不应该被迫服务于尝试这样做。

+0

我可以添加一个autogenerate到我的aws脚本,它已经在制作nginx文件。 – smugford

+0

你去了。只需将'.yml'文件永久添加到'.gitignore',然后在一天内打电话,然后前往酒吧。 –