首页 > 解决方案 > 如何删除已合并的分支并保留日期

问题描述

假设使用主线 A 和已经合并的分支 B 跟随 git 历史。

                  b1     b2
             -----•------•---            B
            /                \
   •------•----•--------------•-------•  A
   a1     a2   a3             a4      a5   

a4 是一个合并提交,带有提交消息合并“将 B 合并到 A.

是否可以将历史记录更改为以下内容。

                    b1'  b2'
   •-----•-----•-----•-----•-----•  A
   a1     a2   a3                a5  

编辑:如果可能,我不想更改提交日期。

标签: git

解决方案


git cherry-pick保存提交的日期

1) 转到提交 a2 git checkout a2
2) 创建新分支 C git branch C
3) 转到新分支 C git checkout C
4) 从 A 分支获取git cherry-pick a3 b1 b2 a5
5) 返回到 A git checkout A
6) 永久删除比提交 a2 更新的所有内容git reset --hard a2
7) 从分支 C 获取git cherry-pick a3 b1 b2 a5
8 ) 好删除分支 C,删除分支 Cgit branch -D C


推荐阅读