我正在寻找一种将更改合并到主分支后将更改引入功能分支的方法。目标是保持功能分支只包含与其相关的提交。
经常发生的情况是,一个特性在被推送到 master 之后还需要一些额外的打磨。在此期间对 master 所做的更改与功能不冲突,这意味着在功能分支上实现附加工作时,可以将 rebase 变为实际的 master。
下图显示了这种情况:
到目前为止我使用的方法:Rebase to master and merge feature back to 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