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