有没有办法在执行
时自动添加来自被压缩的mybranch
提交的所有提交注释
git merge --squash mybranch
以便单个提交包含来自mybranch
答案 0 :(得分:7)
我认为这就是“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
此时我建议执行“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付费插件,并点击“壁球“按钮它会提出拉动请求。它完全相同,只是连接了非合并提交消息。