我有以下场景:
从branch1
创建新分支master
在branch1
中,我添加了一个名为b1.txt
+的新文件,也在common.txt
中添加了新行echo 'line added in branch1';
。
从branch2
创建新分支branch1
将文件重命名为b1.txt
+也在b2.txt
中,我将该行更改为common.txt
。
将echo 'line added in branch2';
合并到branch1
将master
合并到branch2
结果:master
有一个新文件master
,并在b2.txt
中有一行新文件读取common.txt
。
我想得到的结果是:echo 'line added in branch2';
有两个新文件master
和b1.txt
,以及b2.txt
中读取common.txt
和echo 'line added in branch1';
的两行新行。
如何做到这一点?
注:我知道,通常,我应该从echo 'line added in branch2';
创建branch2
,但是复制粘贴(并稍微修改)master
的更改要容易得多,尽管branch1
尚未合并到branch1
中。
最佳答案
您可以从branch2
创建branch1
以使用更改的文件,然后使用branch2
使master
指向git reset
:
git checkout master
git checkout -b branch1
* make changes and commit *
git checkout -b branch2
git reset --soft master
* make changes and commit *
在这一点上,两个分支都有自己的更改和独立的历史记录(直到
master
),因此很容易与git merge branch1 branch2
合并为master。