Git 删除最后2次提交,放弃本地更改,重置--硬对签出
场景:最后两个提交错误,必须在本地和远程删除。工作树必须返回到头2,覆盖当前的更改让我们假设它正常或b/c它们已被隐藏。另外,假设我是唯一一个处理分支的人,可以删除远程提交 以下两者之间的区别是什么:Git 删除最后2次提交,放弃本地更改,重置--硬对签出,git,Git,场景:最后两个提交错误,必须在本地和远程删除。工作树必须返回到头2,覆盖当前的更改让我们假设它正常或b/c它们已被隐藏。另外,假设我是唯一一个处理分支的人,可以删除远程提交 以下两者之间的区别是什么: git reset --hard HEAD~2 git push origin +HEAD vs 问题2:截至2017年4月,对于强制推动分支,建议采用什么语法 git push origin +HEAD vs git push origin MyBranchName --force git
git reset --hard HEAD~2
git push origin +HEAD
vs
问题2:截至2017年4月,对于强制推动分支,建议采用什么语法
git push origin +HEAD
vs
git push origin MyBranchName --force
git checkout HEAD~2用于查看过去在某个提交时填充工作目录的情况,但不修改历史记录。你现在是一个分离的头部状态,了解它是因为知道如何处理它是有用的
git reset-hard HEAD~2就是您描述的和想要的
git push origin-force with lease是一个不错的选择。
这与“-force”相同,但添加了一个验证,即您不会破坏由您未看到的其他人推送的历史,您无法覆盖您尚未获取的历史。这绝对是一条路要走,当你使用“-force”时应该是默认的,但事实并非如此,当然是为了兼容性 但是checkout命令令人困惑。在某些情况下,它必须用于放弃更改。例如:从最新提交还原myFilename:git checkout HEAD-myFilename。但是git reset-hard HEAD-myFilename不正确致命:无法使用路径进行硬重置
git push origin +HEAD
vs
git push origin MyBranchName --force