搜尋

首頁  >  問答  >  主體

git 修改已提交的某一次的郵箱和用戶信息

git 公司用戶名和自己的不同造成的

在提交程式碼的時候,預設使用了全域的git 使用者配置,使用者名稱 xiaoli 然後push 到github了

之後我配置了一下專案的git用戶,使用了xiaowang又push了一次程式碼

如果我現在想改寫第一次的git commit 的使用者信箱該怎麼做那?

我使用

git rebase -i HEAD~2

但是只出現了最後一次的提交資訊。

伊谢尔伦伊谢尔伦2811 天前702

全部回覆(1)我來回復

  • 黄舟

    黄舟2017-05-02 09:43:02

    我的操作步驟略麻煩,所以備圖以做註解:

    首先,透過gitk開啟歷史紀錄,如下圖:

    本例中,我試圖修改第三個提交more tests for later change cases對應的使用者名稱/郵箱資訊。

    第一步,拷貝第四個提交update readmeSHA1 ID值,如上图选中部分4535579(不必全部,印像中前八位足矣)

    第二步,回到命令列,開始執行rebase -i操作,如下:

    git rebase -i 4535579

    這個時候,git會自動呼叫配置好的編輯器來開啟一個介面,如下:

    第三步,修改第一行資料(就是我們預期要修改的那條commit)的pickedit,如下:

    保存退出,可以看到以下結果:

    帥,這時候我們就可以透過git commit --amend來暢快的修改使用者資訊了,操作如下:

    git commit --amend --author="LiLei <lilei@qq.com>" --no-edit

    繼續完成rebase

    git rebase --continue

    再次打開gitk,就可以享受你的結果了:

    最後,透過git push --force將篡改歷史紀錄後的結果同步到伺服器

    注意,強制更新會有一定風險,就是這個時候如果有其他人也在向伺服器提交程式碼,那會被你的強制更新給覆蓋掉。

    回覆
    0
  • 取消回覆