0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何快速批量修改Git提交記錄中的用戶信息

dyquk4xk2p3d ? 來源:Frytea's Blog ? 2023-02-06 16:09 ? 次閱讀

	

內(nèi)網(wǎng)提交需要校驗企業(yè)郵箱,但有時郵箱設(shè)置錯誤導(dǎo)致 commit 的郵箱有問題,此時可以通過修改已提交記錄中的郵箱來修復(fù),無需重新提交。

經(jīng)過檢索,發(fā)現(xiàn)兩種方法,分別適用于修改一次和修改多次,引文在最后都有注明。

修改最近一次提交的郵箱

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

批量修改郵箱

使用該腳本,替換其中 [Your Old Email] [Your New Author Name] [Your New Email] 之后在 git 目錄中執(zhí)行即可。

#!/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

出現(xiàn)這一句說明之前曾經(jīng)執(zhí)行過 git filter-branch ,在 refs/original/ 有一個備份,這個時候只要刪掉那個備份即可,刪除備份命令為:

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

參考文獻

  • git 修改提交作者和郵箱
  • git 修改歷史提交的用戶名和郵箱

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    200

    瀏覽量

    15765
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    389

    瀏覽量

    14866

原文標題:如何快速批量修改 Git 提交記錄中的用戶信息

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何使用SSH簽名Git提交記錄

    Git 支持使用 GPG 來簽名提交記錄。但 GPG 用起來很復(fù)雜,一直賴得搞。
    發(fā)表于 06-16 16:21 ?577次閱讀

    git命令的基本使用

    git config 第一次使用git或者剛安裝的git時,使用此命令設(shè)置身份Name 和 Eamail 地址。并且每次提交時會使用此信息。
    的頭像 發(fā)表于 12-11 13:53 ?915次閱讀

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

    git commit -m xxx(xxx代表備注信息) 6.查看提交記錄git log 7.查看分支g
    發(fā)表于 03-21 16:23

    git之推送提交

    這兩天試著使用了git的推送,把本地的文件上傳到倉庫,中間遇到點問題,就是本地的倉庫文件和遠端的倉庫相比,多出來一些文件,是我自己新產(chǎn)生的,于是push不是很順利,特此記錄下來,主要參考了如
    發(fā)表于 12-17 09:20

    git簡單使用(一)

    本帖最后由 iysheng 于 2017-2-19 23:09 編輯 編程,經(jīng)常會修改代碼,不管是將代碼托管到本地還是網(wǎng)上,使用git進行版本控制無疑是比較流行的方法。今天我就記錄下如何創(chuàng)建
    發(fā)表于 02-17 16:18

    Protel DXP批量修改如何使用

    Protel DXP批量修改如何使用 Protel DXP批量修改的某些方面比Protel 99se還要簡單,在弄清楚Protel DXP批量
    發(fā)表于 07-02 10:09 ?3842次閱讀

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

    。有三種 Git 命令可以幫我們查看記錄,痞子衡為大家一一講解: 1. 查看本地歷史提交 git log git log 是最直接的查看歷史
    的頭像 發(fā)表于 12-05 17:22 ?797次閱讀

    維持整潔的Git提交記錄

    假設(shè)我們提交 feature 1.3 的時候,忘記了一個配置文件 config.yaml, 不想修改 log,不想添加新的 commit-id,那下面的這個命令就非常好用了
    的頭像 發(fā)表于 05-12 16:40 ?497次閱讀
    維持整潔的<b class='flag-5'>Git</b><b class='flag-5'>提交</b><b class='flag-5'>記錄</b>

    git rebase和git merge的區(qū)別

    "origin"已經(jīng)有了 2 個提交,如圖。 現(xiàn)在我們在這個分支做一些修改,然后生成兩個提交(commit)。 ? $?vi?file.txt$?git?commit$?vi?othe
    的頭像 發(fā)表于 07-05 09:54 ?643次閱讀
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的區(qū)別

    git如何記錄每次更新到倉庫

    記錄每次更新到倉庫 工作目錄下的每一個文件都不外乎這兩種狀態(tài):已跟蹤 或 未跟蹤。 已跟蹤包括:已提交(committed)、已修改(modified) 和 已暫存(staged) 檢查當(dāng)前文件狀態(tài)
    的頭像 發(fā)表于 07-22 11:11 ?541次閱讀
    <b class='flag-5'>git</b>如何<b class='flag-5'>記錄</b>每次更新到倉庫

    git如何查看提交歷史

    查看提交歷史 在提交了若干更新,又或者克隆了某個項目之后,你也許想回顧下提交歷史。完成這個任務(wù)最簡單而又有效的工具是 git log 命令。 我們使用一個非常簡單的 “simplegi
    的頭像 發(fā)表于 07-22 11:21 ?955次閱讀
    <b class='flag-5'>git</b><b class='flag-5'>中</b>如何查看<b class='flag-5'>提交</b>歷史

    Git撤消操作的方法

    提交命令來重新提交: $ git commit --amend 這個命令會將暫存區(qū)的文件提交。如果自上次
    的頭像 發(fā)表于 07-22 11:29 ?600次閱讀

    如何在 Git 恢復(fù)隱藏的修改記錄

    git stash 和 git stash pop 這樣的命令是用來擱置(藏匿)和恢復(fù)我們工作目錄的變化的。在本教程,我們將學(xué)習(xí)如何在 Gi
    的頭像 發(fā)表于 10-09 14:09 ?1014次閱讀

    Git中最常用的命令介紹

    git add命令用于將修改的文件添加到下一次提交的暫存區(qū)。你可以指定要添加的文件git add命令用于將修改的文件添加到下一次
    發(fā)表于 10-26 10:27 ?290次閱讀
    <b class='flag-5'>Git</b>中最常用的命令介紹

    Git命令解決常見場景記錄

    不需要這些文件了,想要批量處理掉,所以記錄一下用命令行一次性丟棄未跟蹤文件的方法,同時也記錄一下撤銷push請求的git記錄。
    的頭像 發(fā)表于 12-20 09:44 ?498次閱讀
    用<b class='flag-5'>Git</b>命令解決常見場景<b class='flag-5'>記錄</b>