git 场景

场景:多人共用一个分支开发,提交 merge 请求时,需要合并多个提交为一个提交

假设:主分支为:master,对应的远程主分支为:origin/master;你与队友当前开发的分支为:dev,对应的远程分支为:origin/dev。
此时,你与队友所在的 dev 分支上有多次提交(commit)记录,并且已经推送(push)到远程分支(origin/dev);现在,你们的的工作已经完成,需要向远程主分支(origin/master)申请 merge request,并且需要将你们所有的工作提交记录合并为一个提交记录。

做法:
(1) git checkout -b merge_branch
在当前分支 (dev) 新建一个用于提交 merge_request 的分支。
(2) git rebase -i b7b5b77
在本地将 merge_branch 分支变基到 b7b5b77,b7b5b77是远程主分支(origin/master)最后一次提交的 id。

1.显示多次提交日志,从上到下为按时间正序,编辑每行开头的pick:
# p, pick = use commit ,默认,使用提交和提交信息
# r, reword = use commit, but edit the commit message    使用该提交,重新编辑提交信息
# e, edit = use commit, but stop for amending    使用并编辑, 一般不使用
# s, squash = use commit, but meld into previous commit    使用并合并到之前提交,保留编辑信息.不要在第一行使用 **
# f, fixup = like "squash", but discard this commit's log message    使用并合并到之前提交,不保留编辑信息.不要在第一行使用,后续无意义提交合并使用这个选项 **
# x, exec = run command (the rest of the line) using shell    执行其他shell命令
# d, drop = remove commit    删除提交,慎重
2.保存并退出编辑
3.冲突解决(提交有冲突)

(3) git push --set-upstream origin merge_branch 首次将本地新建的 merge_branch 分支推送到远程仓库。
(4) 到远程仓库中向 origin/master 分支提交 merge 请求,选择 origin/merge_branch 分支。
(5) 等待远程主分支同意合并
(6) 远程主分支同意合并之后,删除本地 merge_branch 分支:git branch -d merge_branch。
(7) 对远程分支执行剪枝操作:git remote prune origin

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。