【问题标题】:Git squash commits in a branch merged with masterGit squash 在与 master 合并的分支中提交
【发布时间】:2018-04-03 17:24:21
【问题描述】:

我的分支中几乎没有提交,提交 A、提交 B、提交 C,然后我在我的分支中合并了 master,因为提交 D、提交 E、提交 F 现在在我的提交之上。如何将提交 A、B、C 压缩为单个提交?

【问题讨论】:

  • 这很棘手,因为您在 A、B 和 C 之上有一个合并提交。

标签: git rebase squash


【解决方案1】:

所以你有这个:

master      -----D---E---F--\
work_branch   \---A---B---C--* (merge-Point) 

所以你创建了一个头在 C 上的分支

git checkout <sha1 at C>

git checkout -b work_branch_2

然后使用交互式变基

git rebase -i 

这将打开一个编辑器,其中包含每次提交时要执行的操作列表:

pick <sha1 A>  comment A
pick <sha1 B>  comment B
pick <sha1 C>  comment C

在线提交 B 和 C 用 squash 替换 pick

pick <sha1 A>  comment A
s <sha1 B>  comment B
s <sha1 C>  comment C

所以你会得到这个:

master      -----D---E---F--\
work_branch   \---A---B---C--* (merge-Point)  
work_branch_2  \---A'

我建议在此之后你变基而不是合并 git rebase master

注意:您可以根据需要为每次尝试创建分支,只需推送正确的分支 :)

【讨论】:

    猜你喜欢
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多