Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何删除已合并的分支并保留日期_Git - Fatal编程技术网

Git 如何删除已合并的分支并保留日期

Git 如何删除已合并的分支并保留日期,git,Git,假设跟随git历史,主线A和已经合并的分支B b1 b2 -----•------•--- B / \ •------•----•--------------•-------• A a1 a2 a3 a4 a5 a4是一个合并-提交w/提交消息-合并“将B合并到a” 是否可以将历史记录

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

                  b1     b2
             -----•------•---            B
            /                \
   •------•----•--------------•-------•  A
   a1     a2   a3             a4      a5   
a4是一个合并-提交w/提交消息-合并“将B合并到a”

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

                    b1'  b2'
   •-----•-----•-----•-----•-----•  A
   a1     a2   a3                a5  
编辑:
如果可能,我不想更改提交日期。

git cherry pick
保存提交日期

1) 转到提交a2
git签出a2

2) 创建新的分支C
git分支C

3) 转到新分支C
git签出C

4) 从分支机构取货
git cherry pick a3 b1 b2 a5

5) 返回A
git签出A

6) 永久删除比提交a2更新的所有内容
git reset--hard a2

7) 从C分支机构取货
git cherry pick a3 b1 b2 a5


8) 删除分支C很好,删除分支C
git branch-dc

也必须将
a5
重写为一个新的和不同的提交。在a3
git rebase a2
@Daniel1147 afaik cherry pick不会改变从
git rebase a2 a
中选择的提交如果您已经在分支A上。a3、b1、b2和a5将被重写,a4将被展平。感谢您的提示,它不能解决a5和a3的提交日期问题。它不适用于大型存储您希望a5和a3中的哪个日期?(我的解决方案中的步骤以与图片a1 a2 a3 b1 a5中相同的顺序保存日期)