修改git全部已提交的使用者名稱和郵箱

2021-09-25 15:58:44 字數 1575 閱讀 5869

做乙個專案,做了兩周了發現為什麼github上我的commit是空白。人都傻了

一看原來本地git的郵箱和使用者名稱和github上的不一樣。

感覺完了,因為這個評分是根據每個人的提交**和commit次數來決定的。

可能需要梯子

為改變已經存在的 commit 的使用者名稱和/或郵箱位址,你必須重寫你 git repo 的整個歷史。

警告:這種行為對你的 repo 的歷史具有破壞性。如果你的 repo 是與他人協同工作的,重寫已發布的歷史是一種不好的習慣。僅限緊急情況執行該操作。

使用指令碼改變你 repo 的 git 歷史

我們寫了一段能把 commit 作者舊的郵箱位址修改為正確使用者名稱和郵箱的指令碼。

注意:執行這段指令碼會重寫 repo 所有協作者的歷史。完成以下操作後,任何 fork 或 clone 的人必須獲取重寫後的歷史並把所有本地修改 rebase 入重寫後的歷史中。

在執行這段指令碼前,你需要準備的資訊:

欲修改的舊的郵箱位址

正確的使用者名稱和郵箱位址

1.開啟終端(mac 或 linux 使用者)或命令列(windows 使用者)。

2.建立乙個你的 repo 的全新裸 clone (repo.git 替換為你的專案,下同)

git clone --bare

cd repo.git

3.複製貼上指令碼,並根據你的資訊修改以下變數:

old_email

correct_name

correct_email

指令碼:#!/bin/sh

git filter-branch --env-filter '

old_email="[email protected]"

correct_name="your correct name"

correct_email="[email protected]"

if [ "$git_committer_email" = "$old_email" ]

then

export git_committer_name="$correct_name"

export git_committer_email="$correct_email"

fiif [ "$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

4.按 enter 執行指令碼。

5.檢視新 git 歷史有沒有錯誤。

6.把正確歷史 push 到 github:(push 有困難時記得修改 dns 或者搭梯子)

git push --force --tags origin 'refs/heads/*'

7.清除臨時 clone。

cd ..

rm -rf repo.git

改完了,整個人又好起來了

修改git已提交內容的使用者名稱和郵箱

為改變已經提交的 commit 的使用者名稱和 或郵箱位址,你必須重寫你 git repo 的整個歷史。注意 執行這段指令碼會重寫 repo 所有協作者的歷史。完成以下操作後,任何 fork 或 clone 的人必須獲取重寫後的歷史並把所有本地修改 rebase 入重寫後的歷史中,請謹慎操作。使用指...

git修改提交的使用者名稱

有時候git使用其他同事名稱提交了記錄,本地再次提交時,會顯示為其他同事的名稱提交的 可以使用以下方式修改 解決方法 一 全域性修改 1 命令修改 git config global user.name 你的使用者名稱 git config global user.email 你的郵箱名 修改當前全...

修改git 提交的使用者名稱和使用者Email命令

首頁先檢視全域性配置 git config list git config local list 法一 使用命令修改git的使用者名稱和提交的郵箱 1 修改全域性 如果你要修改當前全域性的使用者名稱和郵箱時,需要在上面的兩條命令中新增乙個引數,global 代表的是全域性。命令分別為 git con...