关于git rebase的操作解决 push时被拒绝,整体流程

git提交远程仓库常规的操作流程:

  1. git add . (.是提交所有已更改文件,也可以只提交一个文件,在add 后面写上添加修改文件的名字就可以了,如果想要放弃添加过的文件的话,使用 git checkout . 放弃本地所有的修改)

  2. git commit -m"XXX"

  3. git pull --rebase (主干分支) == git fetch + git rebase 

  4. git push (自己的远程分支)

注意:使用git log --oneline --graph 能够看到当前分支的提交线

关于git rebase的操作解决 push时被拒绝,整体流程

                                                                       图 1-1 rebase 变基提交图

 

解决冲突:

在rebase的过程中,也许会出现冲突(confilct),在这种情况,Git会停止rebase并会让你去解决冲突;在解决完冲突后,用"git-add"命令更新冲突内容的索引,然后不需要执行git commit,只需要执行:

git rebase --continue 这样git会继续应用(apply)余下的补丁,

在任何时候,可以用git rebase --abort参数来终止rebase 的执行,并且当前分支会回到rebase开始之前的状态

关于git rebase的操作解决 push时被拒绝,整体流程

 

关于git rebase的操作解决 push时被拒绝,整体流程

没有冲突就git push 到本地分支,有的时候push会失败如下图:

关于git rebase的操作解决 push时被拒绝,整体流程

 

因为rebase 的时候我们没有将远程的代码和提交信息pull到本地分支

 

使用git push --force-with-lease origin 自己的分支名

例:git push --force-with-lease origin wangch_delivery_final

关于git rebase的操作解决 push时被拒绝,整体流程

 

这样就能够提交自己的代码了

⚠️⚠️⚠️这里切记,一定要确保是在自己的分支上只有自己在开发,不能在主干分支上进行force操作,否则会直接覆盖掉别人已经提交的代码,会被打死!!!