【发布时间】:2017-10-05 13:27:17
【问题描述】:
我遇到以下问题: 我在一个分支 A 工作。 分支 A 已合并到 Master 分支中,到目前为止一切正常。
一段时间后,客户决定撤消在主分支上的分支 A 中所做的更改,因为它必须更新。
所以主分支中的历史看起来像:
Some stuff
Some other stuff
Some stuff, where the merge of Branch A was reverted
Some other stuff
Some other stuff
Branch A was merged into master
The commit of Branch A (Branch A contains one Commit)
我想变基分支 A,所以我想要这样的东西:
The commit of Branch A (From here I want to continue working)
Some stuff
Some other stuff
Some stuff, where the merge of Branch A was reverted
Some other stuff
Some other stuff
Branch A was merged into master
The commit of Branch A (Branch A contains one Commit)
请注意,我不想更改远程 master 的历史记录,我需要将分支 A 的提交重新设置为我的 master 的最后一次提交。然后我想再次将我更新的分支 A 推送到 Master。
现在我想继续在分支 A 上工作,但首先我想在当前主分支上重新设置分支 A,以获得最新状态。
现在的问题是:当我在 master 上 rebase 分支 A 时,git 似乎删除了我在分支 A 中所做的更改。我认为这是因为 Master 分支中的合并反向。所以:Git 看到,分支 A 在 master 分支中被删除了,所以当我在 master 上 rebase 分支 A 时,删除也会完成。
我不想将我在分支 A 中更改的文件一个接一个地复制到另一个分支上,这是从 master 结帐的。我认为有更好的解决方案,有什么建议吗?
【问题讨论】:
-
客户究竟做了什么?他是revert 合并提交,还是用
rebase删除它?一个人将决定最佳行动方案的答案。 -
@SebastianLenartowicz 给定的历史记录表明存在还原提交。
-
为什么不在分支 A 上合并(而不是变基)
master后恢复它? -
有一个提交,它只是恢复了分支 A 的合并。恢复恢复听起来不错,但是当分支 A 再次被推送到我们的远程主服务器时会发生什么,我无法访问至。我认为分支 A 中的更改再次被删除,但我的新更改将设置在顶部,我理解正确吗?
-
你能澄清
master指向哪个提交,branch-a指向哪个提交吗?