在git上合并主题分支,删除所有主题分支的提交历史记录?

Mar*_*lio 4 git branch

我想知道git中是否有以下内容:

假设我有以下历史:

A---B---C---D---E  master
         \
          W---X---Y  topic
Run Code Online (Sandbox Code Playgroud)

我想将主题分支中所做的所有更改合并回master,但不保留提交历史记录.也就是说,而不是:

A---B---C---D---E---F  master
         \         /
          W---X---Y  topic
Run Code Online (Sandbox Code Playgroud)

我想有以下历史:

A---B---C---D---E---F  master
Run Code Online (Sandbox Code Playgroud)

F被新的主分支,它等效于提交所做的修改提交W,X,Y,应用的一次.

我还希望能够保持主题分支的完整性:

A---B---C---D---E---F  master
         \         
          W---X---Y  topic
Run Code Online (Sandbox Code Playgroud)

这可能吗?我一直在使用git rebase进行一些测试,但到目前为止它还没有按照我需要的方式运行.

提前致谢.

Bol*_*wyn 7

它应该比不起zeppelin建议的更简单,但我没试过这个:

$ git checkout master
$ git merge --squash topic
$ git commit *what has changed*
Run Code Online (Sandbox Code Playgroud)

但是,当我理解git help merge正确时,它应该可以解决问题.