繁体   English   中英

从 Master 分支,但包含来自另一个未合并分支的更改

[英]Branch off Master but include changes from another unmerged branch

我有一个尚未合并的功能分支。 我需要从Master创建一个新分支,但我希望它还包括我尚未合并的功能分支中的更改。

我不想分支我的功能分支,我该怎么做?

master 
     ~ branch A (not yet merged)
     ~ branch B (new branch which includes changes from branch A)

我在想我也许应该从 master 分支,然后将我的新分支重新定位到分支 A?

当我最终在分支 A 之后合并分支 B 时,更改应该只显示分支 B 的更改,因为分支 A 已经合并 - 这是正确的吗?

无需特殊准备。 你可以

# master is checked out
git checkout -b B
git merge A

或者

# A is checked out
git checkout -b B
git merge master

在这两种情况下,您的新分支 B 最终都会“从 master 分支”并带有来自 A 的新更改。在 A 合并回 master 之后, masterB之间的差异将不再显示 A 的内容不同,因为这些提交是现在在这两个分支的历史上。 B 的稍后合并将仅包含/添加为该新功能发生的那些提交。

完整示例,从一个空目录开始:

# 1st commit
git init
echo "foo" >> foo
git add -A
git commit -m "foo"

# Branch A
git checkout -b A
echo A >> A
git add -A
git commit -m "A"

# Branch B on top of A
git checkout -b B
echo B >> B
git add -A
git commit -m "B"

# More development on master
git checkout master
echo bar >> bar
git add -A
git commit -m "bar"

# First, B "contains" both A and B changes
git diff B

# But after merging A...
git merge A

# ...Diff B now only shows "remaining" changes
git diff B

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM