首页 > 其他分享 >如何批量修改 GitHub 代码提交作者

如何批量修改 GitHub 代码提交作者

时间:2023-06-13 14:11:24浏览次数:26  
标签:GitHub NAME 批量 -- EMAIL 修改 提交 CORRECT

批量修改 GitHub 代码提交作者需要进行以下步骤:

  1. 首先,你需要 clone 远程仓库到本地,使用以下命令:

    git clone <repository-url>
    ```
    
    将 `<repository-url>` 替换为要克隆的仓库的 URL。
  2. 进入到克隆下来的代码库目录,使用以下命令查看所有提交记录:

    git log
    ```
    
    检查要修改的提交记录的哈希值。
    
    
  3. 使用以下命令将要修改的提交记录的作者和邮箱修改为新的作者和邮箱:

    git filter-branch --env-filter '
    OLD_EMAIL="[email protected]"
    CORRECT_NAME="New Author Name"
    CORRECT_EMAIL="[email protected]"
    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
    ```
    
    将 `OLD_EMAIL` 替换为要修改的旧邮箱地址,`CORRECT_NAME` 替换为新的作者名字,`CORRECT_EMAIL` 替换为新的邮箱地址。注意,这个命令会将旧的提交记录复制一份,将旧的作者和邮箱替换为新的作者和邮箱。这意味着你需要使用 `git push --force` 命令强制推送修改后的提交记录到远程仓库。
    或者匹配规则改为OLD_NAME也可以。

    如果提示已经存在:

    Proceeding with filter-branch...

    Cannot create a new backup.
    A previous backup already exists in refs/original/
    Force overwriting the backup with -f


    按要求添加强制’-f‘改为
    git filter-branch -f --env-filter

     

    执行完该命令后提示哪些分支及tag的记录被修改(需要注意的是 本地仓库checkout过的分支才会修改哦!所以需要提交每个远程分支都拉一下)

  4. 使用以下命令强制推送修改后的提交记录到远程仓库:

     
    git push --force --tags origin 'refs/heads/*'
    ```
    
    这个命令会将修改后的提交记录推送到所有分支和标签。
    

请注意,由于这个操作会修改历史提交记录,因此可能会影响其他开发者的代码库。如果其他开发者基于修改前的提交记录进行了开发,可能会导致代码库的不一致性或冲突,因此在进行此操作之前,请确保已经与其他开发者进行了充分的协商和确认。此外,建议在执行此操作之前先对代码库进行备份。

另外,如果你是多人协作开发的团队,建议在进行此操作之前与其他成员进行充分的沟通和确认,以避免不必要的冲突和误解。

标签:GitHub,NAME,批量,--,EMAIL,修改,提交,CORRECT
From: https://www.cnblogs.com/fangsmile/p/17477340.html

相关文章

  • Difference between Github's "Environment" and "Repository" secrets?
    DifferencebetweenGithub's"Environment"and"Repository"secrets?回答1Well,environmentsecretsarespecifictoanenvironmentinGithubActionswhichallowyoutorundifferentconfigurationsforjobsinasinglerepository,e......
  • word跨文件批量替换
    开发工具->vbs编辑新建一个模块SubWord内容替换()Dim筛选AsFileDialogDim文件名,文件AsDocumentDimpd,计数AsIntegerSet筛选器=Application.FileDialog(msoFileDialogFilePicker)With筛选器.Al......
  • git仓库提交问题汇总
    问题:[email protected]:Permissiondenied(publickey).Couldnotreadfromremoterepository.Pleasemakesureyouhavethecorrectaccessrightsandtherepositoryexists. 重装电脑后在远端的SSHKEY和本地端的SSHKEY对不上所以当前解决方......
  • 小灰灰深度学习day9——多线程读取小批量数据(这里运行的时候报错了,目前还不会解决,
    在这里先把代码放上来importtorchimporttimeimportnumpyasnpimporttorchvisionfromtorch.utilsimportdatafromtorchvisionimporttransformsfromd2limporttorchasd2ld2l.use_svg_display()#利用svg显示图片importosos.environ["KMP_DUPLICATE_LIB_OK......
  • github PageHelper 分页工具类
    分页工具类importcn.hutool.core.lang.Assert;importcom.github.pagehelper.PageInfo;importcom.google.common.collect.Lists;importorg.springframework.util.CollectionUtils;importjava.util.Collections;importjava.util.Iterator;importjava.util.List;imp......
  • PXE 高效批量网络装机
    目录一、PXE批量部署1.概述2.优点3.装机流程4.pxe装机需要四大文件二、部署PXE远程安装服务1.关闭防火墙2.安装配置tftpxinetd服务3.安装配置dhcp服务4.安装配置vsftpd服务5.配置四大文件(1)配置vmlinuz和initrd.img文件(2)配置pxelinux.0引导程序文件(3)配置default......
  • 关于mybaits批量更新和批量插入报错问题
    今天在做项目的时候遇到了一个棘手的问题,在执行批量更新的时候报如下图这个错误 代码如下 这是mybatis很常规的批量更新操作的写法,而且把报错日志中的sql拿出来后在数据库执行也能正常的执行很纳闷,这是因为啥呢?网上查阅资料,大部分都是说,sql里面有数据库的关键字,让加``这个......
  • github多账号,如何设置ssh key
    github在使用ssh验证时,会有一个默认的,id_rsa.pub。但是,如果你在一个电脑上,同时需要使用多个github的账号,如何指定不同的key呢这里假定已经创建好了一个不同的ssh-key那就需要显式的告诉git,从哪个位置取ssh的配置具体就是gitconfigcore.sshCommand"ssh-i~/.ssh/id_rsa_example......
  • 【vim】批量替换文件内容
    一、场景  由于测试时,需要替换配置,手动替换很慢,所以就需要批量替换。 二、操作方法打开需要修改的文件进入命令模式,输入:%s/要替换的内容/替换后的内容/g,其中%表示对整个文件进行替换,g表示全局替换。按下回车键,Vim会自动替换所有匹配的内容。你也可以使用正则表......
  • git提交消息规范的中文解释
    记录一下:1.build:与构建系统或外部依赖项的更改相关的提交2.chore:对项目的其他辅助性工作进行的提交,例如更新依赖项或重命名文件3.ci:与持续集成(ContinuousIntegration)系统相关的提交4.docs:与文档相关的提交,例如更新README文件或添加注释5.feat:新增功能或功能的重大改进......