gpt4 book ai didi

git - 挤压从一个分支到另一个分支的提交( merge )

转载 作者:太空狗 更新时间:2023-10-29 13:44:34 25 4
gpt4 key购买 nike

我正在处理一个具有特定 git 项目存储库的项目。共有三个分支:

  1. 大师
  2. 开发
  3. 发布

结构如下:从 master spawns development,开发和测试特性。一旦开发了一组功能,development 就会 merge (没有快进)到 master 中, merge 提交代表发布版本或中间版本。没有任何内容直接提交给 master,它仅包含来自 development 的 merge 提交。

当一个版本被认为是发布版本时,它需要以某种方式移动到release。这个想法是 release 有一个线性历史,其中每个提交代表一个发布版本。 release 中不应有任何中间提交的痕迹。

举个例子:release/01.03.00.00 表示与 master/01.03.00.00 相同的存储库状态。我现在想在 release 中创建一个提交,它表示 master/01.04.00.00master/01.03.00.00 之间的区别。 可以不使用 git patch 来完成吗? 使用 git cherry-pick 进行一系列提交(考虑到有时可能有多个merge commits in master between release versions)似乎不起作用(它需要 -m 来处理 merge 提交,但随后会提示不 merge 提交)。

enter image description here

最佳答案

我没有一个 repo 来测试这个但是,你有没有试过从 master 创建一个分支,压缩那个新分支的所有提交,然后然后将它 merge 到发布中?

类似于:

$ git checkout master
$ git branch -b tmp-master
$ git rebase -i HASH # the hash of the first commit from master you want to bring into release
# pick the last commit, squash all other commits
$ git checkout release
$ git cherry-pick HASH # put the hash of the commit you just made in tmp-master

关于git - 挤压从一个分支到另一个分支的提交( merge ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51319321/

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