【发布时间】:2015-08-27 08:48:52
【问题描述】:
我正在寻找一种在功能分支合并到主分支后将更改引入的方法。目标是保持功能分支只包含与其相关的提交。
经常发生的情况是,一个功能在被推送到 master 之后还需要一些额外的润色。在此期间对 master 所做的更改与功能不冲突,这意味着在功能分支上实现额外工作时,可以将 rebase 变为实际的 master。
下图显示了情况:
我目前使用的方法:变基到主控并将功能合并回主控
反对 -> 功能分支现在被 master 的部分污染了。
问题: 您在实践中采取了哪些方法来解决这个问题?
示例代码
为了帮助描述以下方法,是从示例中创建 repo 结构的代码。
# mkdir test
git init
touch master-change-file
git add master-change-file
git commit -m "initial commit"
echo 1 > master-change-file
git commit -a -m "master commit 1"
echo 2 > master-change-file
git commit -a -m "master commit 2"
git checkout -b feature
echo 3 > feature-change-file
git add feature-change-file
git commit -a -m "feature commit 1"
echo 4 > feature-change-file
git commit -a -m "feature commit 2"
echo 5 > feature-change-file
git commit -a -m "feature commit 3"
git checkout master
git merge --no-ff feature -m "Merge branch 'feature'"
git checkout feature
echo 6 > feature-change-file
git commit -a -m "feature commit 4"
echo 7 > feature-change-file
git commit -a -m "feature commit 5"
git checkout master
echo 8 > master-change-file
git commit -a -m "master commit 3"
echo 9 > master-change-file
git commit -a -m "master commit 3"
# gitk --all
【问题讨论】:
标签: git git-flow feature-branch