修改GIT已提交的用户名和邮箱
修改GIT已提交的用户名和邮箱
原文:https://help.github.com/en/github/using-git/changing-author-info
说明
要更改在现有提交中记录的名称和/或电子邮件地址,必须重写Git存储库的整个历史。
警告:此操作会破坏存储库的历史记录。如果您正在与其他人协作创建存储库,则重写已发布的历史记录被认为是不好的做法。你应该只在紧急情况下这样做。
使用脚本更改存储库的Git历史记录
使用下面的脚本,更改已提交数据的author或committer。
操作步骤:
- 打开Linux Terminal(终端),如果是WIndow系统打开 Git Bash。
- 创建一个你的 repo 的全新裸 clone (repo.git 替换为实际项目)
git clone --bare https://github.com/user/repo.git
cd repo.git
- 复制并粘贴脚本,根据实际情况替换以下变量:
OLD_EMAIL要替换的旧邮箱
CORRECT_NAME当前用户名
CORRECT_EMAIL当前邮箱
脚本:
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"
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
- 按 Enter 执行脚本。
- 查看新 Git 历史有没有错误。
- 把正确历史 push 到 Github :
git push --force --tags origin 'refs/heads/*'
- 清理临时clone:
cd ..
rm -rf repo.git
修改GIT已提交的用户名和邮箱的更多相关文章
- [转]修改github已提交的用户名和邮箱
改变作者信息 为改变已经存在的 commit 的用户名和/或邮箱地址,你必须重写你 Git repo 的整个历史. 警告:这种行为对你的 repo 的历史具有破坏性.如果你的 repo 是与他人协同工 ...
- git学习------>如何修改git已提交的记录中的Author和Email?
一.背景 最近搭建好GitLab后,准备陆陆续续的将之前在SVN仓库中保存的代码迁移到GitLab上,昨天顺利将三个Android组件的代码迁移到GitLab后,其他同事发现迁移是成功了,但是pull ...
- 如何修改Git已提交的日志
情况一:最后一次提交且未push 执行以下命令: git commit --amend git会打开$EDITOR编辑器,它会加载这次提交的日志,这样我们就可以在上面编辑,编辑后保存即完成此次的修改. ...
- Git 修改历史 commits 中的用户名和邮箱
一.作用 修改某个仓库历史 commit 的用户 name 和 email 信息. 将历史提交记录中的指定 name/email 修改为新的 name/email. 二.步骤 确认本地全局邮箱/用户名 ...
- 修改git全局初始化的用户名
今天我把文件上传到码云的时候出现 翻译的话就是 用户名不能多个值 这样的错误 所以想要解决这个错误的话非常简单 $ git config --global --replace-all user ...
- git 的证书重新设置,以及如何让git 记住提交的用户名和密码
1.git 的证书的重新设置的命令是: git config --system --unset credential.helper 2.保存git的用户名和密码注意这里是全局保存 git config ...
- 如何修改SVN已提交项目的message log
直接在TortoiseSVN中修改过往日志,会提示: DAV request failed;it's possible that the repository's pre-revprop-change ...
- git 命令修改commit时的用户名和邮箱地址
1.介绍 在git的用户名和邮箱是有一个仓库和全局之分的,在利用vs插件是也有显示:
- 修改git提交的用户名和密码
目的:每个项目自定义Git提交的用户名和邮箱 1.在本地找到某个项目所在的地址 2.找到config文件 3.增加如下配置 4. ok,这样每个项目都可以定义提交者姓名和邮箱了
随机推荐
- 北漂不易,逆风前行[给想在北京工作的java同学们诚恳的建议!]
作为一个北漂程序员(java开发),从业6年,北漂十一年,走了不少弯路,也曾孤独彷徨,楼主今天特地总结了一些经验,希望能给大家(准备做北漂 或 北漂的朋友们)一点启发.从生活.专业和薪水这2个方向来分 ...
- DVWA Command Injection 通关教程
Command Injection 介绍 命令注入(Command Injection),对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者bash命令)的一种注入攻 ...
- oracle 错误 ORA-00020问题解析
问题描述 [oracle@xiaowu ~]$ sqlplus / as sysdba SQL*Plus: Release Production on Wed Oct :: Copyright (c) ...
- Visual Studio 调试系列3 断点
系列目录 [已更新最新开发文章,点击查看详细] 断点是开发人员的工具箱中最重要的调试技术之一. 若要暂停调试程序执行所需的位置设置断点. 例如,你可能想要查看代码变量的状态或查看调用堆栈的某些 ...
- node 读取超大Excel 文件,提取数据
之前是用 node-xlsx 来处理excel文件,主要是读取数据或者根据数据生成excel文件.不过,node-xlsx 似乎无法处理超大的excel(100MB以上),例如: var xlsx = ...
- "中台"论再议
前言:讲中台的太多了,好像似乎不提中台就没法在IT圈混,但对中台又缺少统一明确的定义,姑且听其言,择其精华.最近看到一篇将中台的,觉得还不错,记录下来,分享给大家. 硅谷的“中台论” 在国内创立智领云 ...
- C++:inline
inline inline是C++提供的一个关键字,它用于函数定义之前,表示把函数定义为内联函数.内联函数的含义是:在函数调用点把函数体直接展开,取代函数调用. inline int getZero( ...
- Redmine添加插件
注意:插件的安装必须到Plugins对应的文件目录执行命令! Plugins Plugin list A full list of available Redmine plugins can be f ...
- Java学习:常用函数接口
常用函数接口 什么是函数式接口? 函数式接口,@FunctionalInterface,简称FI,简单的说,FI就是指仅含有一个抽象方法的接口,以@Functionalnterface标注 注意:这里 ...
- .net 中访问config的一些方式
人所缺乏的不是才干而是志向,不是成功的能力而是勤劳的意志. 哎!好久没有写博客了,今天就分享一些比较常用的对config文件的访问一些方式. 首先 引用 using System.Configurat ...