2014-02-20 49 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。您可以稍後合併分支。

相關問題