Git Merge覆盖我的文件而不显示冲突
我不知道为什么,但今天我做到了:Git Merge覆盖我的文件而不显示冲突,git,merge,Git,Merge,我不知道为什么,但今天我做到了: git checkout master git pull origin master git checkout myFeature git merge master 我正在将master与myFeature分支合并,以便解决任何冲突。 令我惊讶的是,没有显示任何冲突,它重写了我的文件,我失去了在新功能上所做的一切 问题1:为什么会发生这种情况?冲突不应该被显示出来? 问题2:如何正确恢复?我还没有做出承诺 如果我做一个git日志,它会显示我的所有提交,
git checkout master
git pull origin master
git checkout myFeature
git merge master
我正在将master与myFeature分支合并,以便解决任何冲突。
令我惊讶的是,没有显示任何冲突,它重写了我的文件,我失去了在新功能上所做的一切
问题1:为什么会发生这种情况?冲突不应该被显示出来?
问题2:如何正确恢复?我还没有做出承诺
如果我做一个git日志,它会显示我的所有提交,记住,我还没有提交这个合并。我不能100%确定是否应该重置-很难重置到最后一次提交SHA1。我不想保留当前的更改,这是合并,但我想保留合并之前的所有内容,这是最后一次提交
问题1:为什么会发生这种情况?冲突不应该被显示出来
发生这种情况是因为你应该从你的主人那里合并,而不是从你的分支那里合并。i、 e
git checkout master
您应该确保您在主分支上,然后运行合并
问题2:如何正确恢复?我还没有承诺
要恢复您最后的marge,请运行:
您的回答可能也会有所帮助。这里没有足够的信息供我们回答您的问题。将origin/master拉入master,然后将master合并到myFeature中,通常不会撤消myFeature中的更改,但有许多情况会偏离正常的假设,可能看起来像您描述的那样。不过,底线是,如果你想让我们解决这个问题,你需要提供足够的信息来重现问题,而当我执行你描述的步骤时,我没有得到你描述的行为。你还没有做出承诺吗?你没有犯什么罪?如果合并是干净地完成的,它应该自动提交,您不应该让合并中的文件处于未提交状态,除非您明确要求git在不提交的情况下进行合并,或者存在合并冲突或其他错误。合并前是否有未提交的工作?您需要更明确地了解存储库的状态以及丢失的更改类型。
git merge myFeature
git reset head~ <path>