当我在两个不同的功能上工作时(它们是从master创建的两个不同分支),当我进行合并时,我会很烦恼因为我将没有提交历史记录。
我解释得更清楚一些。当我完成Branch-A的工作后,我将其合并到master中。如果我运行git log
,我可以看到我在Branch-A上做的所有提交。
相反地,当我完成Branch-B的工作并尝试将其合并到master中(在Branch-A已经合并之后),我必须为合并指定一个提交消息(而对于第一个分支,我没有被要求输入任何信息)。
并且在将其合并到master后,如果我输入git log
,我无法在master分支的历史记录中看到Branch-B的提交。
假设我有
**Branch A**
commit 09b2unfas9d781n2e
Add more stuff
commit 8uj8masd89jas898a
Add stuff
**Branch B**
commit 09b2unfas9d781n2e
Add feature setting
commit 8uj8masd89jas898a
Add feature
我完成了
**Master**
commit 6hf6h8hd871udjkdn
Merge: 09b2un 34osd6
Merge branch 'Branch-B' into master
commit 09b2unfas9d781n2e
Add more stuff
commit 8uj8masd89jas898a
Add stuff
commit 34osd62dhc91123j8
I'm a previous commit from 'master'.
The last one before branching...
虽然我想要获得类似于以下的东西:
**Master**
commit 09b2unfas9d781n2e
Add feature setting
commit 8uj8masd89jas898a
Add feature
commit 09b2unfas9d781n2e
Add more stuff
commit 8uj8masd89jas898a
Add stuff
commit 34osd62dhc91123j8
I'm a previous commit from 'master'.
The last one before branching...
...能更准确地反映已提交的历史记录。
我不明白为什么我只能保留两个分支中的一个的历史记录。
如果没有那些隐藏/省略合并提交的 合并 提交,如何保持一切清晰呢?
master
和branch-b
中都有更改时,我需要将master
合并到branch-b
。如何重写branch-b
,使其起始点为提交G
而不是E
?但是保留branch-b
的提交历史,并将与之冲突的更改提交到branch-b
。假设只有我知道branch-b
存在。 - Artem Pgit rebase master
。 - Artem P