git checkout 提交并删除较新的提交

use*_*529 6 github git-checkout git-commit

我在 github 中做了错误的提交,我想做以下事情:

  1. 从与 master 不同的分支检出到旧提交
  2. 将此提交作为我的最后一次提交(在此之后删除那些)
  3. 将此分支设为主分支并删除所有其他分支
  4. 将主分支合并到一个新分支

是否有可能做到这一点?

Von*_*onC 5

关键命令是:

git checkout -B master aSHA1
Run Code Online (Sandbox Code Playgroud)

如果你知道你想在哪里重置你的主分支,那就是在一行中完成的方法。

git checkout手册页

-B <new_branch> 
Run Code Online (Sandbox Code Playgroud)

创建分支<new_branch>并在<start_point>;
如果它已经存在,则将其重置为<start_point>。这相当于git branch用“ -f”运行“ ”;

然后你可以强制推送它:

git push --force
Run Code Online (Sandbox Code Playgroud)

这将重置origin/master(GitHub 端的主分支)到您的旧 SHA1。