git - 如何撤消 git rebase 操作

标签 git

情况复杂。

有 2 个分支,featuredevelop

功能分支git日志

* D
* E (feature checkout from develop)

开发分支git日志

* H
* G
* F
* E

(1) 在功能中做 => git rebeasedevelopment

这应该是一个 merge 操作,rebease更改开发的提交信息,git日志如下,标志-表示被rebease更改

* H -
* G -
* F -
* D
* E

(2) 有人继续推送 feature 几天,git log 如下所示

* A
* B
* H -
* G -
* F -
* D
* E

(3) 有一天,功能开发人员向开发分支发出 pull 请求

PR 的更改提交:

* A
* B
* H -
* G -
* F -
* D

应该是下面这样,因为rebease改变了开发者的commit H,G,F

* A
* B
* D

我想撤消 rebease 操作(1) 进行 merge 但重新调整,然后重做操作(2)

是否可以修复???或者只是接受...

让我无法评论,因为H,G,F....总共超过100个~~

最佳答案

您可能应该恢复到以前的状态(请参阅git reflog),然后重新应用 rebase (检查git rebase -i for interactive rebase 时,您可以选择提交 rebase 的内容和顺序)

关于git - 如何撤消 git rebase 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33798037/

相关文章:

git - 在进行手动 merge 后,我是否应该删除提交消息中的冲突列表?

Windows 上的 Git Bash 卡在某种 linux shell 环境中

git - 如何在git中提交之前找到最近的标签

Eclipse:Git 如何在本地提交后推送

git - 仅构建已推送到的 Git 分支

git - 比较两个分支会产生不同的差异

git - IntelliJ 中的更改 View 继续列出文件,其中唯一的区别是 LF 与 CRLF

项目根目录的 Git 状态显示子模块更改,但在子模块中没有可用的

git - 权限被拒绝(公钥)在 Windows 7 上使用 git 时出错

git - 将 git 分支显示为网站