博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git 实战手册(一): 批量修改log中的提交信息
阅读量:5908 次
发布时间:2019-06-19

本文共 1041 字,大约阅读时间需要 3 分钟。

本文须知

  • 教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步
  • 有空就来看看, 我一直都在

背景介绍

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

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

看一张灾难现场图:

1

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

2

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

简单尝试:

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

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

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

解决方法

通过 google,发现stackoverflow上早有人提问,。

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

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

#!/bin/shgit 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"fiif [ "$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 信息如下。

3

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

哈哈,又重新绿了起来。

转载于:https://www.cnblogs.com/geyouneihan/p/9600721.html

你可能感兴趣的文章
android绑定Service失败原因
查看>>
android控件详解大全
查看>>
LINUX安装SVN+添加自动同步+远程下载最新代码
查看>>
使用jquery来获取table的行和列的值
查看>>
android 休眠与唤醒II
查看>>
swoole入门教程04-多端口监听、热重启以及Timer进阶:简单crontab
查看>>
HDFS + WEB 项目 报java.lang.VerifyError... 异常
查看>>
Nginx 配置示例
查看>>
关于php cron任务管理的实现假设
查看>>
第三章:DispatcherServlet详解
查看>>
mysql索引最左原则问题
查看>>
Python天天美味(总)
查看>>
chpter11~函数和函数式编程
查看>>
Failed to run the WC DB work queue associated with
查看>>
分享一些程序员的办公桌
查看>>
第二章 jQuery选择器
查看>>
初识R
查看>>
Hadoop之HDFS的常用命令
查看>>
分布式系统架构解决方案之Dubbo(三)--Dubbo管理端 和 Dubbo综合案例
查看>>
springMVC对于controller处理方法返回值的可选类型
查看>>