背景: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
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 <xiaosi@alibaba.com>"
注意:姓名与邮箱之间有一个空格,之前看博客说需要空格,待验证
最后:git rebase --continue
总结三步:
1.git rebase -i
2.git commit --amend --author="xiaosi <xiaosi@alibaba.com>"
3.git rebase --continue
网友评论