如何修复因中断而在两者之间停止的git merge?

时间:2018-08-08 12:26:12

标签: git git-merge

我正在修改几个文件。然后,我尝试将代码推送到存储库中。为此,我使用了以下命令:

git add <FILENAME1>
git commit -m "explanation of merge"
git pull

此时,拉取失败并显示以下消息:

  

错误:您对以下文件的本地更改将被合并覆盖:

     

(FILENAME2)。

     

请在合并之前提交您的更改或将其保存。

所以我尝试了以下命令:

git checkout FILENAME2
git pull

但是,这时git pull被卡住了。我现在意识到,也许我应该在拉动之前再次运行“ git commit”命令。那是什么导致git卡住?

我等待了大约10分钟,却什么也没有发生。然后我使用cntrl + C中止了此操作。但是,现在我看到已经创建了一个新分支。

如果以前我在(分支1)上,那么现在我在(分支1 |合并)上。

有人可以解释发生了什么吗?如何回到分支1 并同时保留我的filename1?

注意:运行git状态将显示以下内容:

  

要提交的更改:

   modified:   FILENAME2

   modified:   FILENAME1

1 个答案:

答案 0 :(得分:1)

然后尝试找到您的上次提交ID,您需要使用以下命令将存储库重置为上一次提交状态:

git reset --hard commitId

完成此操作后,您就可以选择使用

在另一个分支中保护您的工作。
git check-out -b savedBranch
git check-out branch1

然后您需要拉branch1,因为有人在您之前进行了推送,您可以正确合并

否则,如果您不想创建新分支,则可以通过以下方式简单地基于推送的代码重新构建工作

git rebase origin/branch1

此命令将尝试使您像在处理分支之前已将其拉出一样

然后更正冲突

git add . (Note: This will add all modified files and untracked files that's result of the rebase conflicts correction into the staging)
git rebase --continue

这是您需要的次数

然后享受! :)

我建议您在命令行中使用linux的tig实用程序,以更好地了解您的提交