我有一個最初從Subversion導入的Git存儲庫。部分作者/提交者信息是錯誤的,這不是Git的錯,但主要是由於對Subversion的拙劣承諾。使用git filter-branch重寫作者/提交者並同時提交消息
我想用git filter-branch
來重寫存儲庫的歷史記錄,修復提交者和作者信息。
問題是......我需要從提交消息中啜泣作者信息。據我所知,git filter-branch
允許您篩選和更改作者信息(與--env-filter
)和/或篩選提交消息(與--msg-filter
),但而不是同時做兩個,在不同的過濾器之間共享信息。
所以我很難過如何做到這一點......我能想到的最好的辦法是多次傳遞:首先,收集所有提交消息,然後製作一個腳本以通過並過濾所有作者/提交者信息。這似乎相當不雅和容易出錯,所以我想知道是否有其他人已經找到了更順利的做這種工作。
謝謝,Jefromi,我會給這個鏡頭!另外,關於--env-filter和--msg-filter排序的好處:我曾經考慮過將臨時文件留在後面,但是意識到它不會按照我想要的順序工作。 – 2010-07-29 14:26:47