我想检查一下Git的bug修复,但我已经开始研究另一个功能了。我正确检查了文件中的错误修复(没有检查我为该功能更改的文件,但尚未完成)。然后,当我分别在Git中构建版本时,我意识到我错误地检查了一个与功能相关的更改。所以,我首先想到了
让我提交所有文件。虽然该功能尚未完成,但代码正在成功编译并正常工作。
所以,我开始检查一些与新功能编码相关的文件。然后,我认为我可能只是在我最初错误提交的文件中更改了那一行并重新提交了它。所以,我想撤消提交。我做了
git reset HEAD~1
git reset HEAD~1
(两次)。然后,问题就开始了。我的Eclipse开始显示一些错误。所以,我想撤消重置。所以我这样做了:
git reflog
反复&给(引用Undoing git reset?)
git reset HEAD@{N}
我在reflog中看到的每一个我想要的N.现在,当我尝试使用
推送git时git push -u origin master
我收到以下消息
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes
当我尝试
时git status
我看到了
Your branch and 'origin/master' have diverged,
and have 5 and 5 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
我很困惑!我只想在我的本地机器中备份代码副本,其中包含我在开始所有提交/取消提交之前所做的更改。任何帮助将不胜感激。
答案 0 :(得分:0)
在reflog中你也有提交哈希id。
重置时使用此哈希(及--hard
):
git reset --hard <HASH>
此外,由于您的遥控器上有正确的提交,您可以这样做:
git reset --hard origin/master