我在与 git 合并时犯了一个错误。我有一个主分支和另一个叫做火星的分支。
主分支包含非常旧的代码,我不想使用它。然而,当我试图获得最新的火星代码时,我做到了:
git fetch
git merge origin/master <------ This is a mistake as I should use "git merge origin/mars"
最后一个命令因合并失败而失败,并要求我解决冲突。我解决了冲突并做了
git stash
git stash drop
我认为这应该删除我刚刚手动解决冲突的任何内容。
但我不确定我是否错误地将主人到火星的东西合并了。如果是这样,火星分支就被污染了。
无论如何,我可以确认我的本地火星没有与主人的任何东西合并吗?(它不被连接(。
非常感谢。
您可以恢复到以前的提交,忽略任何更改:
git reset --hard HEAD
其中 HEAD 是当前分支中的最后一次提交。
如果你想得到远程火星分支
git reset --hard origin/mars
git 中不会丢失任何东西,只要你没有推送任何东西,你就可以安全地做很多提交图手术。
检查日志(或使用gitk --all
(以了解分支指针是什么以及以前是什么。然后,如果需要,将它们更改为以前使用 git branch -f <branchname> <commit>
.
如果您只想检查是否存在差异(在mars
时(:
git diff origin/mars
如果存在差异,您会注意到它们。
如果存在差异或要确保本地mars
分支与远程mars
分支完全相同,请执行
git reset --hard origin/mars
小心!这将丢弃对mars
的任何本地更改,并使其与origin/mars
完全相同。
在 git 中,当您尝试合并并且存在冲突时,它不会创建提交。这意味着由于git status
而产生的任何更改都是您不希望的更改。验证最后一次提交是否是您想要的 git log
提交。
如果git status
产生结果,请通过执行 git checkout *
使用最新的签出覆盖更改的文件。这假设你已经在火星分支上。
如果 git status
没有输出,请按原预期继续执行 git merge origin/mars
命令。