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


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

    该操作如果涉及default分支的话 请确保有push的权限!

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

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

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

      git filter-branch --env-filter '
      OLD_EMAIL="old-email@example.com"
      CORRECT_NAME="New Author Name"
      CORRECT_EMAIL="new-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
      ```
      
      将 `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/*'
      ```
      
      这个命令会将修改后的提交记录推送到所有分支和标签。
      

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

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

  • 相关阅读:
    【itext7】使用itext7将多个PDF文件、图片合并成一个PDF文件,图片旋转、图片缩放
    ubuntu1804发布kitti数据集的gps资料,imu资料(包含发布图片,点云过程)
    【猿创征文】Vue3 企业级优雅实战 - 组件库框架 - 5 组件库通用工具包
    java python php远程在线教育网站系统vue+elementui
    基于51单片机的智能自动感应垃圾桶
    《Nature》论文插图的Matlab复刻第2期—单组多色横向柱状图(Part1-305)
    三数之和(LeetCode 15)
    【算法模板】图论:最近公共祖先(LCA)
    yolo改进替换VanillaNet backbone
    基于EtherCAT的机器人多轴同步运动控制
  • 原文地址:https://www.cnblogs.com/fangsmile/p/17477340.html