如何修改git已提交记录的邮箱?
有时候,公司提交的代码必须使用公司邮箱,而你误操作,直接把自己个人邮箱提交上去了,此时你就会遇到这样的需求:如何修改git已提交的邮箱?
而这个需求对于新手来说,往往要花费半天的时间才能理解修改过程,简直太傻比了,所以我这里做一个详细的文档来帮助自己和你搞清楚这个流程。尤其要理解变基,它不是一个命令执行就完成了,而是一连串命令的组合。
变基
git rebase -i
复制代码
执行后,会打开最近一条的提交记录,当然上面的命令可以指定某一条记录,命令是:
git rebase -i "your commit id"
复制代码
对于sourcetree用户来说,commit id是SHA-1,可以右键某条提交记录,选择菜单"复制SHA-1到剪贴板",如下图:
变基rebase命令执行完成后,会打印类似如下内容:
pick bd81df5 更新API
# Rebase abcb9d0..bd81df5 onto abcb9d0 (1 command)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
复制代码
新手往往会一脸懵逼,不止所错,此时是在rebase的过程中,你需要把pick改为edit,如下:
edit bd81df5 更新API
# Rebase abcb9d0..bd81df5 onto abcb9d0 (1 command)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
复制代码
更改完成后,保存并退出vi编辑器::wq
然后会打印这样的消息:
chengmingdeMacBook-Pro:server cmlanche$ git rebase -i "abcb9d0d1e99cdad25d8d08119e494436b000e59"
Stopped at bd81df5... 更新API
You can amend the commit now, withgit commit --amend Once you are satisfied with your changes, rungit rebase --continue
chengmingdeMacBook-Pro:server cmlanche$
复制代码
给大家先科普一下这个amend
英文单词,是修改的意思,对我来说好陌生,为啥不用change或者fix之类的。
上面的信息说了,如果你要amend,也就是要修改这个提交的话,那么用
git commit --amend
复制代码
如果你对这次修改满意的话,就用如下命令结束此次变基
git rebase --continue
复制代码
重置账户邮箱信息
我们当然要修改啦,那么执行如下命令,重置提交的账户信息:
git commit --amend --author="cmlanche <1204833748@qq.com>" --no-edit
复制代码
同事,要注意你的sourcetree,出现了新情况!
我们可以看到一个新的提交,并且,邮箱账号都经过了修改,如果你去掉--no-edit
还可以修改commit message,也就是图中的"更新API",举栗子吧,我可以继续用amend修改此次变基
git commit --amend --author="cmlanche <1204833748@qq.com>"
复制代码
保存退出vi编辑器,看sourcetree咋样了:
真的很完美,接下来就是合并了,退出变基。
退出变基
git rebase --continue
复制代码
在控制台中打印如上命令退出变基,我们看到退出变基也就是使用最新的修改了,就一条分支了。
chengmingdeMacBook-Pro:server cmlanche$ git rebase --continue
Successfully rebased and updated refs/heads/bulma.
复制代码
最后总结一下
变基真的很有用,他不是一条命令搞定的,是一个过程,就像变成中打开了一个输入流,最后用完你得关闭输入流一样。
通过变基你可以轻松实现提交信息的任意重新修改!
转载于:https://juejin.im/post/5cd8f73df265da038932b2fc
如何修改git已提交记录的邮箱?相关推荐
- 修改 Git 已经提交记录的 用户名 和邮箱
修改 Git 已经提交记录的 用户名 和邮箱 有关 Git 和版本控制的常见问题. 如何更改提交的作者姓名/电子邮件? 在我们进入解决方案之前,让我们找出您到底想要完成什么: 在提交之前更改作者信息 ...
- git_修改git历史提交记录
本修改仅限于修改本地的提交,提交的远程的请勿修改,以防引起开发者混乱. 首先执行 git rebase -i HEAD~3 这里首先rebase到HEAD~3的提交,这是你可以修改HEAD~2 - H ...
- 修改git已提交的commit中提交者的用户名和邮箱
如下图中,将已经提交的commit中,用户名jincheng-demo,jincheng-demo01,以及邮箱jincheng@test.com, 修改为正确的用户名:jincheng,正确的邮箱: ...
- 【mac如何修改git本地提交代码的用户名和邮箱】
mac如何修改git本地提交代码的用户名和邮箱 入职新公司,推完代码发现推送人不是自己,因为电脑里还是前同事的用户信息,所以我们需要在本地客户端重新设置一下. 一.打开mac的终端,查看本地配置 # ...
- 修改git历史提交的commit信息
本文是基于idea的操作,亲测可用 前言: 很多公司都会自定义 Git - 使用强制策略,那么他的commit信息就会有固定的格式,一旦不是这个格式,就会出现push失败 但是push失败,很多也只在 ...
- git修改已提交记录的注释
已提交暂存区但还未提交远端仓库 命令:git commit --amend -m 已提交远端仓库 命令:git rebase 可以参考:http://www.cnblogs.com/dudu/p/47 ...
- git commit --amend修改git commit提交的message
当git commit -m "message"提交之后,在push之前,发现git commit中的message有误,想把提交的message改过来,有什么办法? 首先输入gi ...
- 怎样修改git用户名、密码和邮箱?
如何查看git用户名? 命令如下: git config user.name 如何查看git密码? 命令如下: git config user.password 如何查看git邮箱地址? 命令如下: ...
- Git已提交代码,强行回退,覆盖曾提交过得代码(删除提交记录)
工具:SourceTree git版本控制 第一步:选择想要回退提交的地方,回滚 直接确定:无需其他操作 此时:回到了当前提交的状态(文件该储藏,该丢弃,自己选择):我这里是直接储藏(因为提交错分支了 ...
最新文章
- 微软并行编程类库Parallel Extensions初探 Part1
- Java 冒泡排序的实现
- Windows误关闭资源管理器重启的办法
- webpack 4x的安装和简单使用
- Best Coder Round#25 1003 树的非递归访问
- 如何在Python中解析XML?
- 字节跳动教育部分开始裁员,N+2赔付...一大波读者失业
- mybatis xml sql分页
- 【十次方】十次方项目前期准备
- 微信支付:手机系统自带的浏览器,调用微信支付如何实现(非扫码)
- 22条创业军规(读书)
- 模拟文曲星上的猜数游戏c语言,文曲星上的“猜数字”游戏Python版
- Multiple Instance Detection Network with Online Instance Classifier Refinement
- 模仿某招聘网站的Js搜索菜单
- HTML页面只能使用微信浏览器打开
- Hi3519v101 uart驱动
- 愉快的学习就从翻译开始吧_0-Time Series Forecasting with the Long Short-Term Memory Network in Python
- 选购移动硬盘注意事项
- 国足晋级12强 | 爬取《NBA30支球队》“现役球员信息”,再来看看篮球吧!
- ORAN专题系列-18:5G O-RAN FrontHaul前传接口互操作性测试规范IOT概述与总体架构
热门文章
- tensorflow神经网络拟合非线性函数与操作指南
- 深度学习解决多视图非线性数据特征融合问题
- js面向对象的封装方法,【案例】
- 一个利用Dataflow实现的Actor
- spring中lazy-init详解
- POJ3080方法很多(暴力,KMP,后缀数组,DP)
- hdu4998 旋转坐标系
- 【C 语言】动态库封装与设计 ( 动态库调用环境搭建 | 创建应用 | 拷贝动态库相关文件到源码路径 | 导入头文件 | 配置动态库引用 | 调用动态库中的函数 )
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )
- 【EventBus】事件通信框架 ( 订阅类-订阅方法缓存集合 | 事件类型-订阅者集合 | 订阅对象-事件类型集合 )