Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 删除最后2次提交,放弃本地更改,重置--硬对签出_Git - Fatal编程技术网

Git 删除最后2次提交,放弃本地更改,重置--硬对签出

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

场景:最后两个提交错误,必须在本地和远程删除。工作树必须返回到头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 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