2014-02-20 54 views
0

我对git非常陌生。我用如何在不覆盖单个文件的情况下进行拉动

git push origin master 

推我的应用程序,并

git pull origin master 

把它拉下来。我不想覆盖单个文件:db/development.sqlite3,因为它包含用户在我的实时应用程序中输入的所有数据。但是,当我从我的开发计算机上推送更改时,请将它们拉到实时服务器上,我收到一条错误消息,说我无法撤消更改,因为该文件现在不同,并且会被合并覆盖。它说,请提交您的更改或存储它们,然后才能合并。但我只是想git不拉和覆盖该文件。

+0

听起来像你不应该在版本控制下有该文件的副本。 –

+0

我如何从版本控制中删除它? – sabrams

回答

3

停止跟踪您的回购中的文件。

git rm --cached db/development.sqlite3 

这将从您的回购中删除它,但保留文件的当前状态。然后,您应该创建一个文件,其中包含此文件列表中的.gitignore

+0

当我创建.gitignore文件时,我把它放在哪个机器上。服务器?或工作站? – sabrams

+1

您将其交给回购。 – Schleis

+0

所以我会添加db/development.sqlite3文件到.gitignore,然后git添加和git提交该文件,从那时起,它会忽略该文件,无论何时我推或从我的回购拉? – sabrams

0

您可以创建一个分支并将该文件的更改提交给它。然后做一个git pull origin master。您可以稍后合并分支。

相关问题