Git拉gitignore的问题

时间:2014-02-27 15:53:27

标签: git sqlite gitignore git-pull

我已将我的文件添加到gitignore:

db/development.sqlite3
log/development.log

我已将其从本地计算机和服务器上的跟踪中移除:

git rm --cached db/development.sqlite3
git rm --cached log/development.log

然后我从本地计算机推送到回购站,然后使用

拉到服务器
git pull origin master

我仍然收到此错误:

error: The following untracked working tree files would be removed by merge:
        db/development.sqlite3
        log/development.log
Please move or remove them before you can merge.

我不希望这些文件被覆盖或删除,我只是想让git拉出所有内容并忽略存储我的数据库信息的现有文件。我如何通过这个?

2 个答案:

答案 0 :(得分:3)

这里有2个“解决方案”。 您可以将文件复制到其他位置,执行拉取,完全删除,然后复制其他文件。

或者你可以做到

git stash
git pull
git stash pop

这将导致文件在服务器上被删除,但它们将保存在本地。之后,由于您的.gitignore,您不需要再次执行此操作。该文件仅适用于尚未跟踪的文件。

答案 1 :(得分:2)

这样做:

$ mv db/development.sqlite3 db/development.sqlite3_bak
$ mv log/development.log log/development.log_bak

$ git pull
$ rm db/development.sqlite3 log/development.log

$ mv db/development.sqlite3_bak db/development.sqlite3
$ mv log/development.log_bak log/development.log