Git合并错误

时间:2013-10-09 11:41:38

标签: git

与git合并时我犯了一个错误。我有一个主分支和另一个名为mars的分支。

master分支包含非常旧的代码,我不想使用它。但是,当我尝试获取最新的火星代码时,我做了:

git fetch
git merge origin/master       <------ This is a mistake as I should use "git merge origin/mars"

最后一个命令因合并失败而失败,并要求我解决冲突。我解决了冲突并做了

git stash
git stash drop

我认为这应该是我手动解决冲突的原因。

但我不确定我是否错误地将主人与火星合并了一些东西。如果是这样,火星分支就会被污染。

无论如何,我可以确认我的本地火星没有与主人合并吗? (它不是连续的)。

非常感谢。

4 个答案:

答案 0 :(得分:3)

您可以恢复到之前的提交,忽略任何更改:

git reset --hard HEAD

其中HEAD是当前分支中的最后一次提交。

如果你想获得远程火星分支

git reset --hard origin/mars

答案 1 :(得分:0)

git中没有任何东西丢失,只要你没有推动任何东西,你就可以安全地进行大量的提交图操作。

检查日志(或使用gitk --all)以找出分支指针的用途。然后,如果需要,请将它们更改为以前使用git branch -f <branchname> <commit>的内容。

答案 2 :(得分:0)

如果您只是想检查是否存在差异(在mars上时):

git diff origin/mars

如果存在差异,您会注意到它们。

如果存在差异或确保您的本地mars分支与远程mars分支完全相同,请执行

git reset --hard origin/mars

<强>小心!这会将对mars的任何本地更改丢弃,并使其与origin/mars完全相同。

答案 3 :(得分:0)

在git中,当您尝试合并并且存在冲突时,它不会创建提交。这意味着git status导致的任何更改都是您不想要的更改。使用git log验证上次提交是您想要的提交。

如果git status产生结果,请执行git checkout *,使用最新结帐覆盖已更改的文件。假设您已经在火星分支上。

如果git status没有输出,请按照原先的预期继续执行git merge origin/mars命令。