Git rebase命令

git rebase --abort 会回到rebase操作之前的状态,之前的提交的不会丢弃;

git rebase --skip 则会将引起冲突的commits丢弃掉;

git rebase --continue 用于修复冲突,提示开发者,一步一步地有没有解决冲突,fix conflicts and then run "git rebase --continue"

 

1、使用 $git rebase --abort

按(2)“引入问题”步骤中执行后,执行:

$ git rebase --abort

$ git push

仍然出现Updates were rejected because the remote contains work that you do not have locally...错误,说明此次提交与rebase之前的提交一样,出现的除外也一样(逻辑不严谨,大致是这个意思),可以猜想git rebase --abort会当前的commit会回到rebase操作之前的状态 。

当然此时可以使用$git add ,重新提交新的文件,例如

$ git add c.sh

$ git commit -m "XXXX"

$ git push

在远程master分支上可以查看提交内容,展示如下:

 技术分享

 

2、使用 $git rebase --skip

git rebase --skip 引起冲突的commits会被丢弃,对于本文应用的例子来说开发者A对c.sh文件的commit无效,开发者A自己修改的部分全部无效,因此,在使用skip时请慎重。

执行:$ vim c.sh

查看本地c.sh文件提交内容,展示如下图所示,执行语句之后开发者A的修改无效。

 技术分享

 

3、使用 $git rebase --continue

可以运行git rebase –continue继续直到完成

You must edit all merge conflicts and then mark them as resolved using git add

无误之后就回退出。回到matser分支

 

git rebase -i 交互式的变基,最后合成一条整齐的提交线

 

posted @ 2019-07-25 15:43  GLORY-HOPE  阅读(280)  评论(0编辑  收藏  举报