6

我搞砸了我的应用程序,最后做了一个

git checkout <commit number>

回到我想去的地方。

当我做一个 git status 时,它说

 Your branch is behind 'origin/master' by 5 commits, and can be fast-forwarded.

我想我在最近提交的第 5 天。有没有办法让我最近提交的第 5 次提交成为我最近提交的第 5 次?几乎要覆盖或丢弃我前四次提交中的所有内容?

更新。

我做了一个

git reset --hard <commit number>

但是我怎样才能推送到我的存储库?它说...

To prevent you from losing history, non-fast-forward updates were rejected

我不想执行合并,我非常想清除我最近的 4 次提交

谢谢

4

3 回答 3

5

您始终可以使用以下-f选项强制推送:

git push -f origin master

但当然要小心,因为这破坏历史。

还要确保同时指定远程和分支名称,因为没有它,默认情况下 git 将尝试强制将所有分支推送到给定(或上游)远程。

于 2012-04-30T01:18:31.713 回答
1
git checkout ORIG_HEAD

应该让您回到最近一次结帐后的位置。

如果这没有帮助,您也可以查看git reflog. 它会显示你最近的 rebase、checkout 等的列表,你可以找到你想要返回的提交的 SHA。

于 2012-04-30T00:55:22.903 回答
1
git reset --hard <commit number>
于 2012-04-30T00:57:52.027 回答