我们在github有一个回购 我们使用sourceTree作为gitclient
有没有办法将repo重置为旧提交?
我已尝试使用sourcetree在本地进行此操作,我可以将本地重置为有问题的旧提交。
但是,当我尝试推送到远程仓库以反映本地更改时,它告诉我这是不可能的,因为远程仓库位于本地仓库之前
有什么想法吗?
干杯
答案 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 用于记录一些新的提交以反转其效果 一些早期的提交(通常只是一个错误的提交)。