Git Mege冲突修改/删除

时间:2015-10-25 16:04:31

标签: git

我的git repo犯了一个错误,需要一些帮助来解决它,因为我的git foo并不是那么好。我正在处理两个分支:EBT_BranchScheduling_Branch。我对Scheduling_Branch进行了一些更改,但我还没准备好提交jus,所以我运行了git stashgit checkout EBT_Branch。然后我做了一个提交并运行git checkout Scheduling_Branchgit stash apply,这产生了以下错误,我无法弄清楚如何解决:

On branch Scheduling_Branch
Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add/rm <file>..." as appropriate to mark resolution)

    deleted by us:   dump.rdb

no changes added to commit (use "git add" and/or "git commit -a") 

在我收到错误告诉我无法合并二进制文件之前,所以我尝试运行git rm dump.rdb将其从git中删除,然后再次运行git stash apply,这就是我的结果以上信息。

在某些时候,我意外地提交了我的Redis服务器的dump.rdb文件。我后来把它添加到我的.gitignore,但现在我似乎无法摆脱它。我想知道的是如何摆脱dump.rdb

1 个答案:

答案 0 :(得分:2)

您创建的藏匿处似乎包含对dump.rdb的存档更改,但您尝试将该存储应用于已删除dump.rdb的分支。当Git尝试应用存储时,它希望将隐藏的更改应用于dump.rdb,但不能,因为该文件不存在。这就是产生你所看到的信息的原因。

要解决合并冲突,请再次运行git rm dump.rdb。完成后,您看到的消息将从git status输出中消失。

当然,每次尝试再次应用该存储时,您都会看到相同的消息,因为存储仍然包含对dump.rdb的更改。解决这个问题的最快方法是用不记录对该文件的更改的存储替换存储。通过使用git stash apply来应用存储,git stash drop删除您刚刚应用的存储,git rm dump.rdb来解决冲突,然后git stash save创建新存储。< / p>

(完整性的两个简要说明:1。您也可以使用git stash branch创建新的存储,这在处理应用存储时的合并冲突时有时很有用。我不认为这有帮助,但是,鉴于我们知道如何轻松解决合并冲突.2。通常使用git stash pop同时执行apply然后drop会更快,但在这种情况下pop将拒绝drop,因为存在合并冲突,因此applypop的行为相同。)

解释.gitignore行为:一旦你向Git添加了一个文件,Git会忽略它是否在.gitignore或类似 - 它假设你已经提交了它,你不会想忽略它。要使.gitignore实际上导致Git忽略该文件,您需要将其从Git的存储库视图中删除。