将git repo重置为旧提交?

时间:2013-05-16 18:14:17

标签: git github atlassian-sourcetree

我们在github有一个回购 我们使用sourceTree作为gitclient

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

我已尝试使用sourcetree在本地进行此操作,我可以将本地重置为有问题的旧提交。

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

有什么想法吗?

干杯

2 个答案:

答案 0 :(得分:2)

Git正在停止推送,因为它会放弃遥控器上的历史记录。这通常是一个的东西,所以git可以帮助你避免错误。如果确实想要推送本地分支是一种放弃历史记录的方法,则需要添加-f标记。

git push -f <remote> <branch>

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

的输出
git fetch <remote>
git log <remote_branch> --not <local_branch>

并确保在强行推送之前确实要放弃所有这些提交。

答案 1 :(得分:0)

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

  

git revert 用于记录一些新的提交以反转其效果   一些早期的提交(通常只是一个错误的提交)。