【问题标题】:git checkout commit and delete newer commitsgit checkout commit 并删除较新的提交
【发布时间】:2013-02-13 18:11:30
【问题描述】:

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

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

可以这样做吗?

【问题讨论】:

  • 这个post 可能会有所帮助。

标签: github git-commit git-checkout


【解决方案1】:

关键命令是:

git checkout -B master aSHA1

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

来自git checkout man page

-B <new_branch> 

创建分支&lt;new_branch&gt; 并在&lt;start_point&gt; 启动它;
如果它已经存在,则将其重置为&lt;start_point&gt;。这相当于运行“git branch”和“-f”;

那你就可以强制推送了:

git push --force

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

【讨论】:

  • 这也意味着我可以将master恢复到初始状态?
  • @user2065529 您可以将其重置为您想要的任何先前提交(来自master 分支),是的。
猜你喜欢
  • 2014-09-11
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-11
  • 2021-11-21
  • 1970-01-01
相关资源
最近更新 更多