gpt4 book ai didi

git - merge 到 master 后功能分支的变化

转载 作者:太空狗 更新时间:2023-10-29 14:05:50 27 4
gpt4 key购买 nike

我正在寻找一种方法,在功能分支 merge 到 master 后将更改引入功能分支。目标是保持功能分支只包含与其相关的提交。

经常会发生这样的情况,即某项功能在被推送到 master 之后还需要一些额外的润色。在那段时间对 master 所做的更改与功能不冲突,这意味着在功能分支上实现额外工作时,可以对实际 master 进行 rebase 。

下图显示了情况:

enter image description here

到目前为止我使用的方法: rebase 到 master 并将功能 merge 回 master

enter image description here

反对 -> 特性分支现在被 master 的部分污染了。

enter image description here

问题:您在实践中采取了哪些方法来解决这个问题?

示例代码

为了帮助描述下面的方法,是从示例创建 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

最佳答案

Approach i used so far: Rebase to master and merge feature back to master

我认为您可能对 rebase 的目的有点困惑。如果您在将功能分支 merge master之后对它进行了新的提交,并且您希望将这些新更改也带入master,那么 rebase 是一种选择。考虑下图:

master:  A <- B <- C <- D
feature: A <- B <- C <- E <- F

如果你要这样做:

git checkout feature
git rebase master

那么你会得到:

master:  A <- B <- C <- D
feature: A <- B <- C <- D <- E' <- F'

此时,您只需推送 feature 分支到master不会 merge 它.在做 rebase 之后将 feature merge 到 master 中是没有意义的,并且违背了 rebase 保持线性的目的。

最后,这是您问题的答案。您基本上有两种选择来处理这些具有新更改的功能分支。您可以 merge ,也可以 rebase 。是否希望保留在功能分支中发生的原始提交取决于您。

关于git - merge 到 master 后功能分支的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32244693/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com