2

我们在 github 中有一个 repo 我们使用 sourceTree 作为 gitclient

有没有办法将回购重置为旧提交?

我曾尝试使用 sourcetree 在本地执行此操作,并且可以在本地重置为有问题的旧提交。

但是,当我尝试推送到远程仓库以反映本地更改时,它告诉我这是不可能的,因为远程仓库在本地仓库之前

任何想法?

干杯

4

2 回答 2

2

Git 正在停止推送,因为它会放弃远程的历史记录。这通常是一件坏事,因此 git 正在帮助您避免错误。如果你真的要推送本地分支是一种放弃历史的方式,你需要添加-f标志。

git push -f <remote> <branch>

听起来这就是你想要的,但要小心。检查输出

git fetch <remote>
git log <remote_branch> --not <local_branch>

并确保在强制推送之前你真的想放弃所有这些提交。

于 2013-05-16T21:28:17.880 回答
0

我认为最好的方法是使用git revert为还原进行新的提交,而不是强制推送删除历史记录。

git revert用于记录一些新的提交,以扭转一些早期提交的影响(通常只是一个错误的提交)。

于 2013-09-30T16:23:17.273 回答