有没有办法在执行时自动添加来自压缩mybranch
提交的所有提交注释
git merge --squash mybranch
Run Code Online (Sandbox Code Playgroud)
这样单个提交包含来自的所有提交注释的串联 mybranch
我认为这就是"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付费附加组件,并点击它放置的大"壁球"按钮关于拉动请求.它完全相同,只是连接了非合并提交消息.
归档时间: |
|
查看次数: |
2876 次 |
最近记录: |