我正在修改几个文件。然后,我尝试将代码推送到存储库中。为此,我使用了以下命令:
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
答案 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实用程序,以更好地了解您的提交