Git:错误地解开了提交
问题描述:
我想检查Git的错误修复,但我已经开始研究另一个功能。我正确检查了错误修复的文件(没有检查我为功能更改的文件,该文件尚未完成)。然后,当我在Git中单独构建版本时,我意识到我也错误地检查了一个与功能相关的更改。所以,我首先想到Git:错误地解开了提交
让我提交所有的文件。虽然该功能尚未完成,但代码已成功编译并正常工作。
因此,我开始检查一些与新功能部件编码有关的文件。然后,我认为我可以在最初犯的错误文件中更改一行,然后重新提交。所以,我想撤消提交。我做了
git reset HEAD~1
git reset HEAD~1
(两次)。然后,问题开始了。我的Eclipse开始显示一些错误。所以,我想撤消重置。所以我这样做:
git reflog
反复&给(简称Undoing git reset?)
git reset [email protected]{N}
对于我在引用日志,我想回来看到每N。现在,当我尝试推到混帐与
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)
我我很困惑!我只想在我的本地机器中备份代码副本,这些副本在开始所有此提交/取消提交之前进行了更改。任何帮助,将不胜感激。
答
在reflog中,您也有提交哈希ID。
使用此哈希复位时(和--hard
它):
git reset --hard <HASH>
此外,作为您的正确的提交是你的遥控器上,你可以这样来做:
git reset --hard origin/master