0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何快速批量修改Git提交记录中的用户信息

dyquk4xk2p3d 来源:Frytea's Blog 2023-02-06 16:09 次阅读

	

内网提交需要校验企业邮箱,但有时邮箱设置错误导致 commit 的邮箱有问题,此时可以通过修改已提交记录中的邮箱来修复,无需重新提交。

经过检索,发现两种方法,分别适用于修改一次和修改多次,引文在最后都有注明。

修改最近一次提交的邮箱

$gitcommit--amend--author="NewAuthor"

批量修改邮箱

使用该脚本,替换其中 [Your Old Email] [Your New Author Name] [Your New Email] 之后在 git 目录中执行即可。

#!/bin/sh

gitfilter-branch--env-filter'

an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"

if["$GIT_COMMITTER_EMAIL"="[YourOldEmail]"]
then
cn="[YourNewAuthorName]"
cm="[YourNewEmail]"
fi
if["$GIT_AUTHOR_EMAIL"="[YourOldEmail]"]
then
an="[YourNewAuthorName]"
am="[YourNewEmail]"
fi

exportGIT_AUTHOR_NAME="$an"
exportGIT_AUTHOR_EMAIL="$am"
exportGIT_COMMITTER_NAME="$cn"
exportGIT_COMMITTER_EMAIL="$cm"

Q&A

  • A previous backup already exists in refs/original/
Cannotcreateanewbackup.
Apreviousbackupalreadyexistsinrefs/original/
Forceoverwritingthebackupwith-f

出现这一句说明之前曾经执行过 git filter-branch ,在 refs/original/ 有一个备份,这个时候只要删掉那个备份即可,删除备份命令为:

$gitupdate-ref-drefs/original/refs/heads/master
#或
$gitfilter-branch-f--tree-filter-f'rm-ftest'----all

参考文献

  • git 修改提交作者和邮箱
  • git 修改历史提交的用户名和邮箱

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Git
    Git
    +关注

    关注

    0

    文章

    196

    浏览量

    15736
  • 脚本
    +关注

    关注

    1

    文章

    387

    浏览量

    14832

原文标题:如何快速批量修改 Git 提交记录中的用户信息

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何使用SSH签名Git提交记录

    Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂,一直赖得搞。
    发表于 06-16 16:21 539次阅读

    git命令的基本使用

    git config 第一次使用git或者刚安装的git时,使用此命令设置身份Name 和 Eamail 地址。并且每次提交时会使用此信息
    的头像 发表于 12-11 13:53 882次阅读

    飞凌ElfBoard ELF 1板卡-ubuntu18.04 git安装及基本使用

    git commit -m xxx(xxx代表备注信息) 6.查看提交记录git log 7.查看分支g
    发表于 03-21 16:23

    git之推送提交

    这两天试着使用了git的推送,把本地的文件上传到仓库,中间遇到点问题,就是本地的仓库文件和远端的仓库相比,多出来一些文件,是我自己新产生的,于是push不是很顺利,特此记录下来,主要参考了如
    发表于 12-17 09:20

    git简单使用(一)

    本帖最后由 iysheng 于 2017-2-19 23:09 编辑 编程,经常会修改代码,不管是将代码托管到本地还是网上,使用git进行版本控制无疑是比较流行的方法。今天我就记录下如何创建
    发表于 02-17 16:18

    Protel DXP批量修改如何使用

    Protel DXP批量修改如何使用 Protel DXP批量修改的某些方面比Protel 99se还要简单,在弄清楚Protel DXP批量
    发表于 07-02 10:09 3824次阅读

    第一本Git命令教程(六) - 日志

    。有三种 Git 命令可以帮我们查看记录,痞子衡为大家一一讲解: 1. 查看本地历史提交 git log git log 是最直接的查看历史
    的头像 发表于 12-05 17:22 768次阅读

    维持整洁的Git提交记录

    假设我们提交 feature 1.3 的时候,忘记了一个配置文件 config.yaml, 不想修改 log,不想添加新的 commit-id,那下面的这个命令就非常好用了
    的头像 发表于 05-12 16:40 480次阅读
    维持整洁的<b class='flag-5'>Git</b><b class='flag-5'>提交</b><b class='flag-5'>记录</b>

    git rebase和git merge的区别

    "origin"已经有了 2 个提交,如图。 现在我们在这个分支做一些修改,然后生成两个提交(commit)。   $ vi file.txt$ git commit$ vi othe
    的头像 发表于 07-05 09:54 621次阅读
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的区别

    git如何记录每次更新到仓库

    记录每次更新到仓库 工作目录下的每一个文件都不外乎这两种状态:已跟踪 或 未跟踪。 已跟踪包括:已提交(committed)、已修改(modified) 和 已暂存(staged) 检查当前文件状态
    的头像 发表于 07-22 11:11 519次阅读
    <b class='flag-5'>git</b>如何<b class='flag-5'>记录</b>每次更新到仓库

    git如何查看提交历史

    查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。完成这个任务最简单而又有效的工具是 git log 命令。 我们使用一个非常简单的 “simplegi
    的头像 发表于 07-22 11:21 913次阅读
    <b class='flag-5'>git</b><b class='flag-5'>中</b>如何查看<b class='flag-5'>提交</b>历史

    Git撤消操作的方法

    提交命令来重新提交: $ git commit --amend 这个命令会将暂存区的文件提交。如果自上次
    的头像 发表于 07-22 11:29 580次阅读

    如何在 Git 恢复隐藏的修改记录

    git stash 和 git stash pop 这样的命令是用来搁置(藏匿)和恢复我们工作目录的变化的。在本教程,我们将学习如何在 Gi
    的头像 发表于 10-09 14:09 962次阅读

    Git中最常用的命令介绍

    git add命令用于将修改的文件添加到下一次提交的暂存区。你可以指定要添加的文件git add命令用于将修改的文件添加到下一次
    发表于 10-26 10:27 235次阅读
    <b class='flag-5'>Git</b>中最常用的命令介绍

    Git命令解决常见场景记录

    不需要这些文件了,想要批量处理掉,所以记录一下用命令行一次性丢弃未跟踪文件的方法,同时也记录一下撤销push请求的git记录
    的头像 发表于 12-20 09:44 429次阅读
    用<b class='flag-5'>Git</b>命令解决常见场景<b class='flag-5'>记录</b>