如何压缩分支中的所有合并?

紫薇拉维尔

我有一个这样的分支:

A---B---B1---B2---D---E---E1---E2---G---H
     \           /     \           /
      C1---C2---’       F1---F2---’

我想重写它,使它像这样:

A---B---B1---B2---D---E---E1---E2---G---H

这意味着,挤压所有合并。

分支很长。如何自动完成?

编辑

这不是历史记录线性化。我要压缩所有合并,例如D和G。

约瑟夫·施特劳斯

这应该可以解决问题。由于我们选择的是提交消息,因此作者和作者日期将与原始提交(包括合并)相同。

或者,您可以通过将以下行添加到第一个条件中来获取合并之前从上次提交到分支的提交的消息和作者信息,即合并的第二个父对象:

git commit --amend -C $(git rev-parse $rev^2)

如果经常执行这些命令,则可以轻松地将其转换为脚本。

签出基本提交(处于分离状态):

git checkout A~0

Cherry选择所有提交:

for rev in $(git rev-list  HEAD..branch-name --first-parent --reverse)
do
    if [[ $(git show --summary --format="%P" $rev | wc -w ) -gt 1 ]]
    then
        git cherry-pick $rev --mainline 1
        # git commit --amend -C $(git rev-parse $rev^2)
    else
        git cherry-pick $rev
    fi
done

强制旧分支和结帐:

git branch -f branch-name HEAD
git checkout branch-name

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

压缩并合并父分支后,如何自动将所有子分支重新设置为master分支?

来自分类Dev

Git:如何查找从未合并回master的所有分支

来自分类Dev

如何从以前的分支重新合并我的所有更改

来自分类Dev

将所有文件合并到多个分支中

来自分类Dev

SVN-如何获取分支上所有提交以及合并到该分支的分支的所有提交的列表?

来自分类Dev

如何将所有合并的远程git分支转换为标签?(创建标签,删除分支)

来自分类Dev

Git将一个分支合并到所有其他分支中

来自分类Dev

使用Git合并从开发中的功能分支到发布分支的所有更改

来自分类Dev

Git将一个分支合并到所有其他分支中

来自分类Dev

在GitHub中合并+压缩PR到主数据库后,如何同步git dev分支?

来自分类Dev

如何从一个git分支中获取所有文件,然后将它们放到当前分支中而不合并?

来自分类Dev

Git合并到所有分支

来自分类Dev

如何压缩 Bash 中的所有子文件夹?

来自分类Dev

如何从Github中删除所有过时的分支?

来自分类Dev

如何git cherrypick特定分支中引入的所有更改

来自分类Dev

如何查看远程git存储库中的所有分支

来自分类Dev

我可以在GitHub中查看合并功能分支的所有提交吗?

来自分类Dev

将所有文件从分支合并到主文件中(使用命令/脚本)

来自分类Dev

如何递归复制目录中的所有文件并快速解压缩压缩文件

来自分类Dev

如何获取从GIT分支创建的所有分支的列表(获取分支的所有子分支)

来自分类Dev

如何获取从GIT分支创建的所有分支的列表(获取分支的所有子分支)

来自分类Dev

如何压缩git分支?

来自分类Dev

如何用另一个(上游)分支覆盖GIT分支中的所有文件?

来自分类Dev

现有分支中的新git分支,无需与master合并

来自分类Dev

我如何在master分支之上重新应用分支的所有提交,但将其保留在自己的分支中?

来自分类Dev

制作git别名以删除所有本地合并的分支

来自分类Dev

Git:合并到母版,然后推回所有分支

来自分类Dev

Git:所有分支的默认“不提交”合并行为?

来自分类Dev

Git-查找所有未合并的后代分支

Related 相关文章

  1. 1

    压缩并合并父分支后,如何自动将所有子分支重新设置为master分支?

  2. 2

    Git:如何查找从未合并回master的所有分支

  3. 3

    如何从以前的分支重新合并我的所有更改

  4. 4

    将所有文件合并到多个分支中

  5. 5

    SVN-如何获取分支上所有提交以及合并到该分支的分支的所有提交的列表?

  6. 6

    如何将所有合并的远程git分支转换为标签?(创建标签,删除分支)

  7. 7

    Git将一个分支合并到所有其他分支中

  8. 8

    使用Git合并从开发中的功能分支到发布分支的所有更改

  9. 9

    Git将一个分支合并到所有其他分支中

  10. 10

    在GitHub中合并+压缩PR到主数据库后,如何同步git dev分支?

  11. 11

    如何从一个git分支中获取所有文件,然后将它们放到当前分支中而不合并?

  12. 12

    Git合并到所有分支

  13. 13

    如何压缩 Bash 中的所有子文件夹?

  14. 14

    如何从Github中删除所有过时的分支?

  15. 15

    如何git cherrypick特定分支中引入的所有更改

  16. 16

    如何查看远程git存储库中的所有分支

  17. 17

    我可以在GitHub中查看合并功能分支的所有提交吗?

  18. 18

    将所有文件从分支合并到主文件中(使用命令/脚本)

  19. 19

    如何递归复制目录中的所有文件并快速解压缩压缩文件

  20. 20

    如何获取从GIT分支创建的所有分支的列表(获取分支的所有子分支)

  21. 21

    如何获取从GIT分支创建的所有分支的列表(获取分支的所有子分支)

  22. 22

    如何压缩git分支?

  23. 23

    如何用另一个(上游)分支覆盖GIT分支中的所有文件?

  24. 24

    现有分支中的新git分支,无需与master合并

  25. 25

    我如何在master分支之上重新应用分支的所有提交,但将其保留在自己的分支中?

  26. 26

    制作git别名以删除所有本地合并的分支

  27. 27

    Git:合并到母版,然后推回所有分支

  28. 28

    Git:所有分支的默认“不提交”合并行为?

  29. 29

    Git-查找所有未合并的后代分支

热门标签

归档