Git可以合并--squash保留提交评论吗?

Jon*_*onN 3 git git-merge

有没有办法在执行时自动添加来自压缩mybranch提交的所有提交注释

git merge --squash mybranch
Run Code Online (Sandbox Code Playgroud)

这样单个提交包含来自的所有提交注释的串联 mybranch

G. *_*ies 9

我认为这就是"git merge --squash"自动执行的操作!只需使用"git commit --no-edit"进行提交,我认为这就是你得到的.在运行"git merge --squash"命令后,我立即在.git/SQUASH_MSG中看到所有提交消息.你呢?

就个人而言,我压缩成大师,然后强制将结果推回到我的主题分支.这样我的最终提交可以通过pull-request进行代码审查.

实例(尝试这些确切的命令,这使用我的演示服务器,并且确实有效):

git clone http://vm.bit-booster.com/bitbucket/scm/bb/rebase-example-2.git
cd rebase-example-2
git checkout branch
git reset --hard origin/master
git merge --squash origin/branch
git commit --no-edit

git show
commit 74656c51212526af49382c985419244737141217
Author: G. Sylvie Davies <sylvie@bit-booster.com>
Date:   Mon Dec 26 22:07:50 2016 -0800

    Squashed commit of the following:

    commit 3120cbba4e94e0a81eed2f9ff42e7012cca996bf
    Author: G. Sylvie Davies <sylvie@bit-booster.com>
    Date:   Thu Dec 15 18:24:02 2016 -0800

        b2

    commit ccb522334464879b8f39824031c997b57303475d
    Merge: 6b85efb 026bf0c
    Author: G. Sylvie Davies <sylvie@bit-booster.com>
    Date:   Thu Dec 15 18:13:35 2016 -0800

        m

    commit 6b85efbddbb74d49a096bfc54fd4df15e261b72f
    Author: G. Sylvie Davies <sylvie@bit-booster.com>
    Date:   Thu Dec 15 18:12:51 2016 -0800

        b1
Run Code Online (Sandbox Code Playgroud)

在这一点上,我建议做一个"git push --force-with-lease",让这个被压缩的提交到你的远程主题分支准备好进行代码审查.

注意:我在示例中做了一件奇特的事情.我实际上是挤压原点/主人,而不是本地主人,我首先做"git checkout branch"和"git reset --hard origin/master".这使得我的本地主人不会受到这种操作的影响,所以无论我在做什么,都会留下.

我正在使用Git 2.7.4.我不知道,也许老款gits表现不同.

如果你想在Web UI中完成所有操作,而你碰巧使用的是Atlassian Bitbucket Server(本地版本),你可以安装我的Bit-Booster付费附加组件,并点击它放置的大"壁球"按钮关于拉动请求.它完全相同,只是连接了非合并提交消息.

在此输入图像描述