无法签出或存储或提交的文件

时间:2015-05-19 15:02:44

标签: git

我正在尝试git pull,但我得到了:

  

错误:您对以下文件的本地更改将被覆盖   合并:           database.sqlite3请在合并之前提交更改或存储它们。

我尝试了git checkout database.sqlite3git stash甚至git add -A,但此文件仍然存在。在git add -A中,这个家伙同时坐在分阶段的文件上,而不是同时上演:

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   database.sqlite3
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   database.sqlite3

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

如果要提交文件,请执行以下操作:

git commit -m 'database.sqlite3  changes' 
git add database.sqlite3
git commit -m 'database.sqlite3 more changes'
git push origin [branch-name]

文件已更改两次,因此需要提交暂存的database.sqlite3。然后,当前未上演的更改需要单独提交。

如果要删除文件中的更改,请执行以下操作:

git checkout database.sqlite3
git reset
git checkout database.sqlite3

上面重复结帐步骤,因为您需要删除两个更改。要进入您所处的状态,您可能已更改文件,添加文件,然后再次更改文件。这就是你必须撤消两个更改的原因。

在上述任一场景之后,您应该能够进行git pull。

答案 1 :(得分:0)

我发现问题的根源不在于git hands。问题是每当我做git checkout database.sqlite3git stash时...我检查了git状态并看到该文件仍在那里。问题如下: 有一个uwsgi进程正在运行并且它与database.sqlite3有连接,并且由于某些原因它在我删除/ checkout / etc文件之后立即创建了database.sqlite3文件。 我按killall -s INT uwsgi然后正常git checkout database.sqlite3然后git pull -v

将其删除