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

时间:2013-02-27 19:21:16

标签: github git-commit git-checkout

我在github上做了很糟糕的提交,我想做以下事情:

  1. 从与主人不同的分支机构签出旧提交
  2. 将此提交作为我的最后一次提交(删除之后的那些)
  3. 将此分支设为主分支并删除所有其他分支
  4. 将主分支合并为新分支
  5. 有可能这样做吗?

1 个答案:

答案 0 :(得分:3)

关键命令是:

git checkout -B master aSHA1

如果您知道要重置主分支的位置,那就是在一行中完成此操作的方法。

来自git checkout man page

-B <new_branch> 
  

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

然后你可以强制推它:

git push --force

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