我有以下情况:
- 创建了新分支
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';
. - 已 merge
branch1
进入master
- 已 merge
branch2
进入master
结果:master
有 1 个新文件 b2.txt
,以及 common.txt
中的新行上面写着echo 'line added in branch2';
.
我想要得到的结果: master
有 2 个新文件 b1.txt
和b2.txt
,以及 common.txt
中的 2 个新行上面写着echo 'line added in branch1';
和echo 'line added in branch2';
.
如何实现这一目标?
注意:我知道,通常情况下,我应该创建 branch2
来自master
,但是复制粘贴(并稍微修改) branch1
的更改要容易得多,虽然branch1
尚未 merge 到 master
.
最佳答案
您可以从 branch1
创建 branch2
以使用更改后的文件,然后使 branch2
指向 master
git重置
:
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 mergebranch1branch2
merge 到master。
关于GIT:将branch1和branch2 merge 到master中而不覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51174187/