Git rebase 详解

1.出现情况的背景:

当你提交的代码后,管理员发现,您的代码不能提交到服务器上,主要原因在于,你的commit 中和服务器中的有些commit不再同一时间轴上,即:你的有些commit要插入到服务器中的某些commit之间,这样就会造成代码的冲突。所以这个时候就要使用git rebase。

假如,你平时使用的分支叫new ,然后在这个分支上你刚提交过几个commit。

做法:

1.新建一个分支,并且代码和服务器中代码同步

[codesyntax lang=”text”]


git checkout origin/v2.0 -b temp

[/codesyntax]

2.为了保证新建的temp分支代码是最新的,可以多执行下面一步

[codesyntax lang=”text”]


git pull

[/codesyntax]

3.当你新建分支后,系统会自动checkout到temp分支上,此时

[codesyntax lang=”text”]


git checkout new

[/codesyntax]

4.合并代码,并整理

[codesyntax lang=”text”]


git rebase temp //会将temp分支的代码合并过来,并按照提交的顺序排序

[/codesyntax]

5. 因为顺序是重新整理的,所以肯定会出现冲突

6.解决冲突,最后git add * ,但不许要git commit

7.解决后,执行

[codesyntax lang=”text”]


git rebase --continue

[/codesyntax]

8.重新提交代码

[codesyntax lang=”text”]


git push for-*

[/codesyntax]

注意:如果要对某些代码的commit重新整理

1. 可以记住某个commit号

2. git rebase -i commit号

3. 会显示一个整理提交的界面,有很多参数,e。p。等等

4.将前面的参数改为e。则wq保存后,系统会自动让你重新修改commit内容

5.修改完成后,再git push for-*

发布者

混沌未开

一个经常性心血来潮的收藏狂,希望能通过自己所学所见来获得周遭孩纸的认可……