我是Git的新手,我犯了一个大错。 Git一直在提示我
git - rejected master -> master (non-fast-forward)
。
但是,我仍然坚持使用:
--force
这是灾难性的,整个项目改回到大约一周前的阶段。我失去了很多变化。我似乎已被推回到早先的提交。无论如何我可以回到我的一个新提交?因为我做了大量的改变,需要让他们回来。
答案 0 :(得分:3)
使用git reflog
命令。 reflog命令将为您提供有关分支机构正在发生的事情的良好历史记录。运行它,然后找到引用您想要返回的状态的行。
找到提交后,重置分支以指向特定提交。
git reset --hard <commit_id>
--hard
选项将当前分支的HEAD设置回您指定的提交。
答案 1 :(得分:0)
从你的问题看来,你做了一个git push --force
。这真是太糟了。
我不确定这是否有效,但值得一试。按照建议的顺序进行,只有当一个建议不起作用时才跳到下一个:
master
将您强制使用的提交哈希恢复到git revert {commit_hash}
分支。如果您认为自己的更改已恢复,请执行其他git commit
和git push
。git checkout HEAD~1
返回一次提交。这将使HEAD返回一个提交。了解需要返回多少提交的最简单方法是使用git reflog
并查看哪个提交是最后一个提交。如果您觉得这种状态是正确的,请执行git commit
和git push
。请不要忽视git警告。根据我的经验,git只会警告你绝对必要的东西。