Git重置和删除分支没有正确恢复

时间:2013-04-04 15:11:51

标签: ruby-on-rails git

我创建了一个名为user-microposts的新分支。我开始在制作模型时弄乱一些东西。我尝试使用以下命令返回上一次提交:

git reset --hard cb166caa1c70004f77eed6229168b06ad249a4ba

回馈:

HEAD is now at cb166ca Eliminate an unnecessary assignment

所以我尝试重做Migrate,这给了我这个错误:

SQLite3::SQLException: table "microposts" already exists: CREATE TABLE "microposts"
....

我很惊讶,因为我想如果我回到之前的提交,就会发生什么事。

所以我回到master分支并删除了我做了任何更改的分支。

然后我创建了一个新分支,并尝试创建另一个模型并运行rake db:migrate。我又得到了同样的错误

SQLite3::SQLException: table "microposts" already exists: CREATE TABLE "microposts"
....

我最近尝试手动删除任何包含微博的文件。再没有这样的运气。

我不断收到同样的错误。我认为git branch和/或git reset的目的都会阻止这种情况,所以我很困惑。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

您的数据库受源代码控制是不常见的。因此,如果您还原源,您可能会在数据库和源之间出现不一致。解决方案有几个选择:

  1. 删除数据库并重新创建
  2. 回滚数据库以匹配源
  3. 对于上述两种情况,您将使用典型的“rake db”类型命令。