码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Git 修改已提交的用户名和邮箱


    Git 修改已提交的用户名和邮箱

    修改上一次提交的邮箱和用户名

    git commit --amend --author 'Name'
    
    • 1

    批量修改多次提交的邮箱和用户名

    1. 新建一个 .sh 脚本在 git 根目录下
    2. .sh脚本内容如下
    git filter-branch --env-filter '
    an="$GIT_AUTHOR_NAME"
    am="$GIT_AUTHOR_EMAIL"
    cn="$GIT_COMMITTER_NAME"
    cm="$GIT_COMMITTER_EMAIL"
    if [ "$GIT_COMMITTER_EMAIL" = "这里写你原来的邮箱" ]
    then
    	cn="你想替换成的用户名"
    	cm="你想替换成的邮箱"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "这里写你原来的邮箱" ]
    then
    	an="你想替换成的用户名"
    	am="你想替换成的邮箱"
    fi
    	export GIT_AUTHOR_NAME="$an"
    	export GIT_AUTHOR_EMAIL="$am"
    	export GIT_COMMITTER_NAME="$cn"
    	export GIT_COMMITTER_EMAIL="$cm"
    '
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    1. 在 git 根目录下运行即可

    修改指定提交

    上述脚本中实现了在所有的提交中的修改,如果需要修改指定提交的用户名和邮箱,则需要:
    利用指令git rebase -i中的reword将rebase暂停,然后与指令git commit --amend配合,修改用户名和邮箱

    Note

    The --env-filter option can be used to modify committer and/or author identity. For example, if you found out that your commits have the wrong identity due to a misconfigured user.email, you can make a correction, before publishing the project, like this:

    git filter-branch --env-filter '
    	if test "$GIT_AUTHOR_EMAIL" = "root@localhost"
    	then
    		GIT_AUTHOR_EMAIL=john@example.com
    	fi
    	if test "$GIT_COMMITTER_EMAIL" = "root@localhost"
    	then
    		GIT_COMMITTER_EMAIL=john@example.com
    	fi
    ' -- --all
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    To restrict rewriting to only part of the history, specify a revision range in addition to the new branch name. The new branch name will point to the top-most revision that a git rev-list of this range will print.

    Consider this history:

         D--E--F--G--H
        /     /
    A--B-----C
    
    • 1
    • 2
    • 3

    To rewrite only commits D,E,F,G,H, but leave A, B and C alone, use:

    git filter-branch ... C..H
    
    • 1

    To rewrite commits E,F,G,H, use one of these:

    git filter-branch ... C..H --not D
    git filter-branch ... D..H --not C
    
    • 1
    • 2

    Author & Commiter

    Author:

    为git log中的实际编写代码的人,换句话说就是提交log到本地仓库的人。

    Commiter:

    为将本地仓库push到远端仓库的人

    通常情况下 Author 与 Commiter 为同一个人,但是特殊情况下(网络异常…),比如 Author 无法将代码提交到远端仓库,所以请 Commiter 帮忙push到远端仓库

    参考

    参考了以下链接,在此做了一个更新和总结,感谢各位:
    https://hufangyun.com/2018/git-change-user-info/
    https://blog.csdn.net/weixin_30729609/article/details/96874653

  • 相关阅读:
    OpenGL基本架构知识
    解决ElementUI表格el-table-column添加fixed底部被遮挡的方法汇总
    (附源码)ssm汽车租赁 毕业设计 271621
    HTTP 413 Request Entity Too Large(Payload Too Large)
    Springboot毕设项目基于web的校园互助系统设计 q2pf6java+VUE+Mybatis+Maven+Mysql+sprnig)
    Python学习基础笔记七十四——字典
    第5周学习:ShuffleNet & EfficientNet & 迁移学习
    解线性方程组——最速下降法及图形化表示 | 北太天元 or matlab
    使用 uni-app 开发app时 中使用的 @longpress 含义及使用方法
    【程序员必看】计算机网络,快速了解网络层次、常用协议和物理设备!
  • 原文地址:https://blog.csdn.net/Ele_Dd/article/details/133978828
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号