推送后如何压缩git中的提交?
|
这很好地解释了压缩多个提交:
http://git-scm.com/book/en/Git-Branching-Rebasing
但不适用于已推送的提交。如何在本地和远程存储库中压缩最近的几次提交?
编辑:当我执行
git rebase -i origin/master~4 master
时,将第一个保留为pick
,将其他三个保留为squash
,然后退出(通过emacs中的c-x c-c),我得到:
$ git rebase -i origin/master~4 master
# Not currently on any branch.
nothing to commit (working directory clean)
Could not apply 2f40e2c... Revert \"issue 4427: bpf device permission change option added\"
$ git rebase -i origin/master~4 master
Interactive rebase already started
其中2f40是pick
提交。现在4个提交中没有一个出现在ѭ5中。我希望编辑器可以重新启动,以便我可以输入提交消息。我究竟做错了什么?
没有找到相关结果
已邀请:
8 个回复
葛瞎说漓
然后用力推
和
的区别 从ѭ10的文档中: 请注意,
适用于所有推送的参考,因此使用 将
设置为
或多按 配置为“ 14”的目的地可能会覆盖其他引用 比当前分支(包括严格落后于本地引用) 他们的远程对应对象)。要强制只推一个分支,请使用ѭ9 在refspec前面推动(例如
强制 推送至
分支)。
坛沤疲撑拆
矾醒忻
在打开的交互式屏幕上,将壁球替换为壁球 在您要压缩的所有提交的顶部。 通过ѭ20保存并关闭编辑器 使用以下方法推送到遥控器:
淘圃跺枯替
即可工作,而不使用
可以避免很多问题:
以下已完成
提交的作品和&25ѭ提交/ / 27 /的混合作品:
我也有一些请求请求注释,这可能会有所帮助。
宦哨抹存胳
您将打开编辑器vm,并使用msgs这样的操作
在这里,我将所有其他提交更改为\“ f \”(用于修正的立场)。
这会将所有提交固定为一个提交,并删除所有其他提交。 我做到了,这对我有帮助。
枫湃揩乾纲
选择壁球或修正来提交。此时,您将使用git status进行检查。消息可能是:
而且您可能很想拉它。请勿这样做,否则您将处于与以前相同的情况。 而是使用以下方法推到您的起源:
+允许仅强制推送到一个分支。
闲窍
默认情况下,这将包括最新提交的提交消息,作为对旧提交的注释。
哩翔购
2)这时,编辑器打开,并带有提交列表,以更改第二个及之后的提交,用南瓜替换pick然后保存。 输出:成功地重新建立了基准并更新了refs / heads / branch-name。 3)git push origin refs / heads / branch-name --force 输出: ... 远程: 远程:要为分支名称创建合并请求,请访问: 远程:http:// xxx / sc / server / merge_requests / new?merge_request%5Bsource_branch%5D = sss 远程:到ip:sc / server.git + 84b4b60 ... 5045693分支名称->分支名称(强制更新)