2013-12-09 23 views
0

我們有一個10人的開發團隊,我們的7000個提交歷史需要一點維護。人們犯了錯誤的憑據(使得我們的作者列表相當粗糙),並且我還想要抹去一個我們不需要在git中跟蹤的咕嚕dist /目錄(真相被告知,我們永遠不應該擁有一直在追蹤dist /,但這是另一個主題......)Git:如何正確地重寫歷史而不會混淆團隊

我的問題是,推動歷史變化的起源而不會給團隊帶來任何問題的最佳方法是什麼?在我重寫(本地)之後,我顯示的數量是原來的3倍。我將確保這一推動的時間安排是每個人都需要從主人那裏分流,但我不確定這種行爲會帶來什麼負面影響。

有沒有一種方法可以在進行這些更改後清理歷史記錄,或者有什麼方法可以解決這個問題?

+0

與其修改回購記錄的歷史記錄,也許您應該在其他位置啓動一個* new *回購,並告訴所有人分別克隆它們。 –

+0

我想過這個,但我寧願保持git責備正常。 –

+0

我並不是建議你殺死版本歷史記錄,只需將您的修訂版回購託管在另一個遠程URL以避免「令團隊感到困惑」。 –

回答

2

您不應該重寫歷史記錄,因爲它非常侵入 - 每個人都必須從頭重新克隆存儲庫。

取而代之,請考慮按照git shortlog documentation中所述創建合適的.mailmap文件。 .mailmap允許以一致的方式顯示奇怪的作者,從而解決您的問題,而不會觸及歷史。

如果您確實需要重寫,您可以使用this recipe,但它只適用於線性歷史記錄(一個分支沒有任何合併)。

+0

非常好 - 謝謝,我沒有閱讀足夠的.mailmap函數,但我會研究這一點。 但是,爲了消除dist /目錄,我們不再需要大量與該資源綁定的提交,如果可能,我想擺脫它們。 –