【发布时间】:2018-11-22 09:44:24
【问题描述】:
我有以下情况:
我的项目中有类似主分支的东西(图中为绿色)。
我的同事创建了自己的分支(红色)并推送了他的提交。
不幸的是,在其中一次推送之前,他合并他的红色分支与绿色分支丢弃了我同时推送的所有更改(图片上的 R2)。之后,他又进行了一些推动(R3 和 R4)。
目前,我在 G2 中,我想将我的绿色分支与红色分支合并,但不幸的是,当我合并这两个分支时,所有 G1 和 G2 之间的更改都被跳过,因为 git 将这些更改视为合并。
所以我的问题是如何将 G1 和 G2 之间的更改标记为未与红色分支合并,或者至少如何查看这两个分支之间的 所有差异 以便能够手动合并?很高兴看到其他提案。
【问题讨论】:
-
也许恢复错误提交?
-
它会“取消合并”文件还是只删除在 R1 和 R2 之间添加的更改?
-
不清楚你想要什么。你不能取消合并。这不是一回事。所以忘记这一点,专注于你可以做什么来实现你想要的结果。我认为,虽然问题真的不清楚,但您将不得不将 G1 和 G2 挑选到红色分支的末端。究竟什么是“错误合并”?
-
什么是“错误合并”? (解释)我的同事在 R1 -> 他与我的绿色分支合并,丢弃了我所有的更改 -> 他添加了自己的更改 -> 他提交并推送了
-
你告诉他我希望他的行为有多愚蠢?!所以合并没有什么不好的。就 GIT 而言,它只是一个合并。要撤消它需要重写历史,这不是一件容易的事。如果我们是我,我会在 R1(或 G1 甚至 G2)创建一个新分支,然后愉快地再次选择每个提交并在你看到它时合并。然后丢弃红色和绿色的分支
标签: git git-branch git-merge