git - 如何根据每次提交的日期将两个分支 merge 为一个分支?

标签 git date merge rebase cherry-pick

假设我有一个如下所示的 git 存储库:

merge-base---A1--A2------A3------A4 (branchA)
          \
           ----------B1------B2 (branchB)

为了让事情更简单,假设分支 A 上的提交是对文件 A 的严格修改,分支 B 上的提交是对文件 B 的严格修改。

我想将这些分支 merge 到第三个分支 branchAB,其中提交将按日期排序:

merge-base---A1--A2------A3------A4 (branchA)
          \
           ----------B1------B2 (branchB)
            \
             A1--A2--B1--A3--B2--A4 (branchAB)

有没有一种方法可以使用单个 git 命令自动执行此操作,或者我是否坚持使用手动方法(例如 cherry picking 或 rebase -i)?

顺便说一句,merge-base 是一个标签。

最佳答案

这是一个基于 adymitruk's original answer 的解决方案,可以满足我的需求:

git checkout -b branchAB merge-base
git merge branchA
git merge branchB
git rebase --onto merge-base merge-base branchAB

关于git - 如何根据每次提交的日期将两个分支 merge 为一个分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5410742/

相关文章:

windows - 使用 Git Bash 退出文件夹

php - 如何在 Drupal 7 中显示数组的所有值

Javascript 获取数组中的连续日期

visual-studio - 缺少合并工具中的 Visual Studio 合并更改

python - Pandas 强制对包含重复键的列进行一对一合并

git - Mac 到 EC2 - 源代码控制三角问题 - git?同步?啥?

php - Zend Studio 中的错误 "Detecting Library Folders"

linux - 如何使当前目录成为git工作目录

r - 从先前的观察中选择日期并将其输入到 R 中的新列中

python - 我可以实现自己的基于 Python 的 git merge 策略吗?