1.出现情况的背景:
? ?当你提交的代码后,管理员发现,您的代码不能提交到服务器上,主要原因在于,你的commit 中和服务器中的有些commit不再同一时间轴上,即:你的有些commit要插入到服务器中的某些commit之间,这样就会造成代码的冲突。所以这个 时候就要使用git rebase。
?假如,你平时使用的分支叫 new ,然后在这个分支上你刚提交过几个commit。
?做法:
1.新建一个分支,并且代码和服务器中代码同步
? ?git checkout origin/v2.0 -b temp ?
2.为了保证新建的temp分支代码是最新的,可以多执行下面一步
? git pull
3.当你新建分支后,系统会自动checkout到temp分支上,此时
? git checkout ?new
4.合并代码,并整理
? git rebase ?temp ?//会将temp分支的代码合并过来,并按照提交的顺序排序
5. ?因为顺序是重新整理的,所以肯定会出现冲突
6.解决冲突,最后 git add * ,但不许要git commit
7.解决后,执行 git rebase --continue
8.重新提交代码: git push for-*
?
注意:如果要对某些代码的commit重新整理
1. 可以记住某个commit号
2. git rebase -i commit号
3. 会显示一个整理提交的界面,有很多参数,e。p。等等
4.将前面的参数改为e。则wq保存后,系统会自动让你重新修改commit内容
5.修改完成后,再git push for-*