github仓库合并多个commit message
问题描述如下:
第一步:确保自己在对应分支上
比如说现在我要合并issue/108分支的提交记录,使用git log --oneline查看提交记录一共有6次,
git log --oneline
第二步:使用rebase功能
git rebase -i HEAD~6
将上述内容修改如下,把第二行以后的pick改成s即可
由于vscode默认打开的是nano编辑器,将内容做好修改以后,需要保存文件,保存过程是:
- Ctrl + O(不会退出,会提示保存)
- Enter(确认保存)
- Ctrl + X(退出nano)
第三步:
编辑合并后的Commit Message,保存并退出 nano 后,Git 会弹出另一个编辑窗口,用于编辑最终的 commit message,你会看到所有被 squash 的提交消息,类似:
此时可以修改这些message,比如说我修改为下面这个内容,继续保存并退出文件。
- Ctrl + O(不会退出,会提示保存)
- Enter(确认保存)
- Ctrl + X(退出nano)
第四步:
上一步结束以后界面是
第五步:强制推送即可:
git push origin issue/108 --force
github解决rebase文件冲突
issue/18从main分支切出来,但是main分支被别人做了修改,导致issue/18目前和main存在文件冲突,现在使用rebase来解决冲突。
第一步:
git pull最新的main和最新的issue/18分支,成功以后切换到issue/18
git checkout main
git pull
git checkout issue/18
git pull
第二步:使用rebase命令,展示出冲突文件
git rebase main
git status
第三步:点击冲突文件xmake.lua
比如说我选择接受当前,然后点击右下角的Complete Merge
第四步:根据提示继续rebase
git rebase --continue
打印出下面这个界面
第五步:检查rebase是否完成
为了安全起见,我不修改任何提交信息,直接使用Esc,以及:wq保存并且退出,打印出下面这个界面,下面这个git rebase --continue是上一步的,不需要额外再用
这里要注意,如果这一步使用git status会打印出
千万不要理会,千万不要使用git pull,直接强制推送即可,
git push origin issue/18 --force