本文须知

背景介绍

事情的起源是这样的:迷恋的谷歌的我最近申请了一个新的 google 邮箱。然后果断在 github 上更新了邮箱地址,并且删除了之前的 163 等国内邮箱。

回到 github 首页,我发现之前的项目提交记录都没了。到底什么情况(O_o)??

看一张灾难现场图:

仔细查找了相关资料,发现了是因为之前的提交记录中Author字段的信息是 163 等国内邮箱的。如下:

所以,解决方法就是:更改log中的提交信息

简单尝试:

通过百度,发现通过如下命令可以修改:

git commit --amend --author='名称 <邮箱>'

但是,这只能修改最近一条。如何批量修改 log 信息呢?

解决方法

通过 google,发现stackoverflow上早有人提问,请移步墙外

同时,Github官方也提供了脚本,虽然仓库没了,但是复制脚本,然后执行即可,移步这里

首先,我们创建change.sh脚本,并根据个人信息复制以下脚本

#!/bin/sh

git filter-branch --env-filter '
OLD_EMAIL="填写原来的邮箱"
CORRECT_NAME="填写现在的名称"
CORRECT_EMAIL="填写现在的邮箱"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

将脚本移入要修改的git仓库,并执行脚本。修改后的 log 信息如下。

通过git push --force强行推送修改后的 log 信息。

哈哈,我的 github又重新绿了起来。

Git 实战手册(一): 批量修改log中的提交信息的更多相关文章

  1. Python批量修改Excel中的文件内容

    import osimport xlrdfrom xlutils.copy import copydef base_dir(filename=None):    return os.path.join ...

  2. Git实战手册(三): stash解惑与妙用

    0. 介绍 教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步原文地址 有空就来看看个人技术小站, 我一直都在 在实际项目开发中,总会遇到代码写到一半(没法去打commit),去开启新 ...

  3. git 撤销,放弃本地修改,放弃已提交修改

    一, 未使用 git add 缓存代码时. 可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 &quo ...

  4. 谁记录了mysql error log中的超长信息

    [问题] 最近查看MySQL的error log文件时,发现有很多服务器的文件中有大量的如下日志,内容很长(大小在200K左右),从记录的内容看,并没有明显的异常信息. 有一台测试服务器也有类似的问题 ...

  5. 谁记录了mysql error log中的超长信息(记pt-stalk一个bug的定位过程)

    [问题] 最近查看MySQL的error log文件时,发现有很多服务器的文件中有大量的如下日志,内容很长(大小在200K左右),从记录的内容看,并没有明显的异常信息. 有一台测试服务器也有类似的问题 ...

  6. Git实战手册(二): 标签应用和版本管理

    教程所示图片使用的是 github 仓库图片,墙内朋友请移步原文地址 有空就来看看个人技术小站, 我一直都在 0. 背景介绍 当一个代码仓库进过长时间的迭代,针对不同的时期和需求,必定会有不同的版本. ...

  7. 批量修改string中的字符

    #1,修改"/"为"\\",多用于在txt读取内容后进行修改 size_t pos0 = mkfolder.find("/");//首次查找 ...

  8. 如何快速批量修改ArcGIS中的图层设置

    在ArcGIS中作图的时候,我们通常需要设置图层的颜色和粗细.点击图层的颜色,会跳出以下符号选择器: 右侧即可修改我们需要的属性. 但是我们有多个类似的属性如何修改成统一的样式呢? 鼠标图层右键,选择 ...

  9. 批量修改datafram中某一列

    如要对df中列名为“values”的值做修改,大于等于50改为1,小于50改为0,可用apply函数来实现: def fun(x): if x >= 50: return 1 else: ret ...

随机推荐

  1. WCF双工通信单工通信

    1.单工模式 单向通信,指通信只有一个方向进行,即从客户端流向服务,服务不会发送响应,而客户端也不会期望会有响应.这种情况下,客户端发送消息,然后继续执行 运行后报错: 2.双工模式 双工模式的特点是 ...

  2. 了解Java基本数据类型的取值范围

    拿byte类型做栗子 一个字节是8位二进制数,然后最高位会用来作为符号位.正数计算机是存的原码,负数是存的补码. 也就说byte正数最大是0111 1111,转化为十进制是:127(这就是byte的上 ...

  3. Nginx + Tomcat 在 Windows7 上搭建负载均衡集群

    一.安装Tomcat和Nginx 首先安装两个apache-tomcat-8.0.41,下载地址:http://tomcat.apache.org 并安装一个nginx-1.13.0,下载地址http ...

  4. 走你!Github 开源整合

    加入知识星球,最好的分享交流平台哦~ <我的知识星球,最好的分享交流平台>,一年的服务平台,对于一个成年人来说,就是小费了(更多详情,请点击文章了解)~ 走你!Github 开源整合 1. ...

  5. 你可能不知道的github语法——图标

    概述 逛github,看到别人的仓库的description里面有各种炫丽的图标,不禁有点好奇,于是去查了下怎么写真的被我查到了,记录在下面,供以后开发时参考,相信对其他人也有用. 图标 可以先看看g ...

  6. 机器学习技法笔记:12 Neural Network

    Roadmap Motivation Neural Network Hypothesis Neural Network Learning Optimization and Regularization ...

  7. centos7防火墙管理的变化

    当我们在centos7中输入service iptables status 查看系统的防火墙状态,会出现如下错误: 网上查阅才知道centos7的防火墙管理工具变了,原来的iptables已经不用了, ...

  8. 构建NTP时间服务器

    NTP服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服务器与时间服务器的时间保持一致,某些应用对时间实时性要求高的必须统一时间. 互联网的时间服务器也有很多,例如ntpdate ntp. ...

  9. 学习react

    推荐资源: 一位react的最初构建者写的学习react的建议,这是翻译过的http://www.360doc.com/content/16/0129/07/13518188_531384175.sh ...

  10. 分布式高性能消息系统(Kafka MQ)的原理与实践

    一.关于Kafka的一些概念和理解 Kafka是一个分布式的数据流平台,它基于独特日志文件形式,提供了高性能消息系统功能.也可以用于大数据流管道. Kafka维护了按目录划分的消息订阅源,称之为 To ...