2011-12-06 214 views
3

如何更改/刪除提交歷史記錄?更改git提交歷史記錄,但保留更改

我一直在從我的家用電腦上開發一個項目,其中git config user.name與辦公室中的不同。 我不想讓刻痕混在一起。 我已經將代碼推送到官方存儲庫。

在提交歷史,截至目前,我有記錄爲: 由「my_home_nick」

承諾,但我希望所有的提交信息的顯示爲: 由「my_office_nick」

承諾有沒有做這件事?

總之說,有日誌: 通過X

致力於我想,要改變以 致力於爲y

+1

你應該考慮改寫你的問題的標題......我認爲通過「刪除提交歷史記錄」你真的意思是「改變提交歷史」。他們是非常不同的東西。 – meagar

回答

2

是的,看看git filter-branch命令。它會根據需要重寫歷史記錄。

請記住,它會創建一個新的歷史記錄。創建新的歷史記錄並將分支指向它在git中稱爲「倒回」,並且如果使用更常見的命令(如git rebase),也會發生這種情況。只要沒有人把他們的工作放在舊的歷史上,沒關係,但如果他們這樣做了,就會引起很大的混亂。現有的歷史由它的SHA1哈希標識,是不可變的。

0

您可以使用下列選項

  1. 您可以南瓜/大整編的commit命令使用Git的變基的一個或多個--interactive

  2. 如果你還沒有使用my_home_nick推變化官方倉庫,你可以創建另一個克隆,並用正確的用戶名進行合併/更改

  3. 你可以使用git filter-branch來修復提交者名稱

0

Here是與許多答案相同的問題。

你說你推到了「官方倉庫」,但是如果你不是這個倉庫的唯一提交者,並且有人已經提交了不正確的提交,或者更糟糕的是,在提交之上進行了一些更改,留下不正確的提交者名稱將會因爲git確實不允許更改提交,所以它只允許創建替代歷史來代替不正確,正如Jan Hudec所寫的那樣。

+0

我是唯一的提交者。 – user993563

相關問題