在Git中的分支维护

3

我有一个主分支(master branch)和三个其他的分支,如b1、b2和b3。我已经在主分支上提交了代码。我想让这个特定的提交(commit)在b1和b2分支中反映出来。如何在b1和b2中包含该提交?


这要看情况。如果你发现功能 b1/b2 取决于主分支的更改(那么你应该使用 rebase),或者当前主分支中的变化的一个变体是该功能的有效部分,本来不应该首先推送到主分支,那么你可以使用 cherry-pick - RJFalconer
2个回答

2

git-cherry-pick - 应用现有提交引入的更改。

  1. 切换到分支 b1,也就是说,你应该在想要应用提交的分支中。

  2. 执行 cherry-pick <master 分支中提交的提交 ID>

  3. 使用 git push origin b1 将更改推送到远程。

现在,已经将提交应用于所检出的分支,只需将其推送到远程即可。


它只会将那段代码挑选到我们的本地。但是如何将其推送到 b1 和 b2 分支呢?因为我们没有任何 git add 选项来添加文件以进行提交。 - Gajukorse
@user1595186,回答已更新,你需要将分支推送到远程。 - Abimaran Kugathasan
@user1595186:不客气,别忘了采纳答案! :) - Abimaran Kugathasan
我不是很喜欢这个,这可能意味着根据它的解决方式,你的历史记录中会有两份更改的副本。你可能想要使用 rebase - RJFalconer
@RJFalconer:他只想让特定的提交在另一个分支中。 - Abimaran Kugathasan
我的观点是,有许多方法可以使提交“在”另一个分支中(例如作为祖先?作为当前头部?)。对于普通搜索者来说,“rebase”可能是他们想要的。 - RJFalconer

0

git-rebase - 将 b1 和 b2 重新定位到在 master 分支上的提交之上。

  1. git checkout b1
  2. git fetch master
  3. git rebase master (解决任何冲突)
  4. git checkout master
  5. git merge -no-ff -m "将功能 b1 合并到主分支" b1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接