如何在git中将旧版本合并到分支的头部?

如何在git中将旧版本合并到分支的头部?,git,Git,我的存储库有两个分支,master和mybranch。我已经向mybranch提交了很多次,意识到我的许多更改并不是我想要的 因此,我使用 git checkout 02c383 我希望这个旧提交成为mybranch的头。我该怎么做 当我看我的树枝时,我看到: $ git branch *(detached from numbershere) mybranch master 在此之后,mybranch将移动到指向02c383 您可以使用将当前分支重置为其他提交 git reset --har

我的存储库有两个分支,master和mybranch。我已经向mybranch提交了很多次,意识到我的许多更改并不是我想要的

因此,我使用

git checkout 02c383
我希望这个旧提交成为mybranch的
头。我该怎么做

当我看我的树枝时,我看到:

$ git branch
*(detached from numbershere)
mybranch
master

在此之后,
mybranch
将移动到指向
02c383

您可以使用将当前分支重置为其他提交

git reset --hard <ref>
当心

  • 您应该避免这样做(特别是当mybranch已经被其他人使用时)
  • 回到mybranch之前指向的上一个提交(如果您记不起这个SHA,那么现在是有点棘手)

好的,但是我添加了一个文件,然后做了一个git添加,提交。当我做一个git push origin mybranch时,我得到了“更新被拒绝,因为您当前分支的尖端位于远程分支的后面”啊,好的,您以前已经推过
mybranch
。是否有其他人参与回购,或者只有您?如果只有您(你必须确定这一点),然后执行一个
git push-f
。否则,我将以另一种方式编辑我的答案。我无法在重置后立即更改git push origin mybranch。我执行了:git重置,添加了一个文件,git提交,git push origin mybranch。获取“![rejected]mybranch->mybranch(非快进)“当然,这是一个大红色警告标志。你必须使用
git push--force
——警告你正在做危险的事情(重写该分支的历史记录)。
git reset --hard <ref>
git reset --hard 02c383