本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/10854115.html
数据准备
重新克隆
日志
远程分支qzcsbj.txt内容
commit id
其他人提交
模拟其他人对master做了提交:直接gitee上修改文件并提交
新的commit id
本地提交
本地分支修改qzcsbj.txt内容为:
添加到暂存区
提交到本地仓库
推送到远程仓库,报错
To gitee.com:qzcsbj/pytest_apiautotest.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'gitee.com:qzcsbj/pytest_apiautotest.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
大概意思是:远程仓库别人推送的内容,我们本地没有
日志
解决冲突
拉取最新master分支,并rebase到该分支
git pull --rebase origin master
下面做了自动合并;当前在远程分支版本516f1a4
日志:git log中少了5344be2
git status
查看文件内容
内容修改为:
状态和日志
添加到暂存区
日志
git rebase --continue,提示不能提交暂存的修改
error: Terminal is dumb, but EDITOR unset,意思是终端无响应,未设置EDITOR
方法一:换用git bash
说明,方法一的截图和前面非同一个demo,这里仅仅为了演示;续接上面数据,我们会用方法二继续演示
执行git rebase --continue后,直接进入命令模式,显示类似如下的内容,也就是说会让修改提交信息
输入i进入编辑模式,修改log信息
修改完成后,esc退出编辑模式,:wq保存退出,然后会显示如下信息,说明生成了一个新的commit id(7e80ee6)、变基成功并更新refs/heads/master
此时直接push就可以成功
下面是日志
方法二:执行commit
如果终端未设置EDITOR,我们也可以自己commit
commit,颜色变成白色了,生成了一个新的commit id
状态和日志:当前 master分支在516f1a4,HEAD在30aa53a
git rebase --continue,master rebase到HEAD
状态、日志:git log中,少了5344be2
git push
push成功后,远程分支内容
commit id
查看分支合并图
git log --graph,是一条直线
git log --graph --oneline
标签:git,必知,rebase,--,12,master,commit,日志 From: https://www.cnblogs.com/uncleyong/p/17977772