Git rebase

背景:SourceTree使用过程中,用自己的邮箱提交了公司的项目,发现push失败。
公司GitLab推送的时候会检查邮箱是否属于公司邮箱,所以需要修改自己邮箱为公司邮箱

变基,是一连串命令的组合。

参考:https://zhuanlan.zhihu.com/p/65561851,这个写的很详细,还包含了过程中sourcetree的界面,但是有一点 是不正确的,所以这里会纠正一下;

git rebase -i
执行后,会打开最近一条的提交记录

git rebase -i [startpoint] [endpoint]

其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)。

假设需要修改最近两次提交的邮箱:
git rebase -i e0585da 如果以第二条commit ID作为startpoint 只会得到最新的一次提交记录,因为区间是前开。
That means after(>) startpoint, so what's the right way?
git rebase -i cffb707 or git rebase -i cffb707 ba419e9

image.png

rebas之后会出现一个文件,其实就是类似Linux文件。


image.png

pick修改为edit,然后:wq

You can amend the commit now, with
​
  git commit --amend 
​
Once you are satisfied with your changes, run
​
  git rebase --continue
chengmingdeMacBook-Pro:server cmlanche$ 

接下来:git commit --amend --author="xiaosi "
注意:姓名与邮箱之间有一个空格,之前看博客说需要空格,待验证

最后:git rebase --continue

总结三步:
1.git rebase -i
2.git commit --amend --author="xiaosi "
3.git rebase --continue

你可能感兴趣的:(Git rebase)