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-*