合并以掌握具有先前共同历史的两个分支
merging to master two branches with previous common history
我问的是与此相关的问题:https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt
我有三个分支:master,A和B。我把B合并到A。后来发现是个错误,所以我把这个合并还原了。我知道现在不可能再进行一次 B 到 A 的合并(因为我可能会在还原之前丢失 B 的更改),我应该先还原这个合并的还原,然后再将 B 合并到 A。
master 来了...如果在第一次恢复合并后,有人将 B 合并到 master,然后将 A 合并到 master 怎么办?还是顺序相反?第一次还原之前来自 B 的更改会在 master 上吗?
谁能帮帮我?
BR
你有这段历史(时间从左到右流动):
-o--o--o--o <- master
\
a--a--a---M--R <- branch A
\ /
b--b--b <- branch B
R
是他们合并的反转M
.
What if after first revert of merge, someone will merge B to master and then A to master? Or in reverse order? Will the changes from B before the first revert be on the master?
也就是说,你得到这个历史:
-o--o--o--o--X----Y <- master
| / |
| b--b--b | <- branch B
\ / \ /
a--a--a---M--R <- branch A
这里先是B
合并到master
,然后是A
。如您所见,反转现在是 master
的一部分,它带来的变化也是如此,即它撤消了分支 B
的变化。您可以看到 X
和 Y
之前的所有提交,但不包括 Y
具有分支 B
的更改,但是 Y
和之后的这些更改被还原。
另一方面,如果首先合并分支 A
,则分支 B
(及其反转提交 R
)已包含在合并中。 git merge B
会告诉你:"Already up to date".
我问的是与此相关的问题:https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt
我有三个分支:master,A和B。我把B合并到A。后来发现是个错误,所以我把这个合并还原了。我知道现在不可能再进行一次 B 到 A 的合并(因为我可能会在还原之前丢失 B 的更改),我应该先还原这个合并的还原,然后再将 B 合并到 A。
master 来了...如果在第一次恢复合并后,有人将 B 合并到 master,然后将 A 合并到 master 怎么办?还是顺序相反?第一次还原之前来自 B 的更改会在 master 上吗?
谁能帮帮我?
BR
你有这段历史(时间从左到右流动):
-o--o--o--o <- master
\
a--a--a---M--R <- branch A
\ /
b--b--b <- branch B
R
是他们合并的反转M
.
What if after first revert of merge, someone will merge B to master and then A to master? Or in reverse order? Will the changes from B before the first revert be on the master?
也就是说,你得到这个历史:
-o--o--o--o--X----Y <- master
| / |
| b--b--b | <- branch B
\ / \ /
a--a--a---M--R <- branch A
这里先是B
合并到master
,然后是A
。如您所见,反转现在是 master
的一部分,它带来的变化也是如此,即它撤消了分支 B
的变化。您可以看到 X
和 Y
之前的所有提交,但不包括 Y
具有分支 B
的更改,但是 Y
和之后的这些更改被还原。
另一方面,如果首先合并分支 A
,则分支 B
(及其反转提交 R
)已包含在合并中。 git merge B
会告诉你:"Already up to date".