我们在 github 中有一个 repo 我们使用 sourceTree 作为 gitclient
有没有办法将回购重置为旧提交?
我曾尝试使用 sourcetree 在本地执行此操作,并且可以在本地重置为有问题的旧提交。
但是,当我尝试推送到远程仓库以反映本地更改时,它告诉我这是不可能的,因为远程仓库在本地仓库之前
任何想法?
干杯
我们在 github 中有一个 repo 我们使用 sourceTree 作为 gitclient
有没有办法将回购重置为旧提交?
我曾尝试使用 sourcetree 在本地执行此操作,并且可以在本地重置为有问题的旧提交。
但是,当我尝试推送到远程仓库以反映本地更改时,它告诉我这是不可能的,因为远程仓库在本地仓库之前
任何想法?
干杯
Git 正在停止推送,因为它会放弃远程的历史记录。这通常是一件坏事,因此 git 正在帮助您避免错误。如果你真的要推送本地分支是一种放弃历史的方式,你需要添加-f
标志。
git push -f <remote> <branch>
听起来这就是你想要的,但要小心。检查输出
git fetch <remote>
git log <remote_branch> --not <local_branch>
并确保在强制推送之前你真的想放弃所有这些提交。
我认为最好的方法是使用git revert
为还原进行新的提交,而不是强制推送删除历史记录。
git revert用于记录一些新的提交,以扭转一些早期提交的影响(通常只是一个错误的提交)。