我問這個問題是因為我正在學習Pro Git book 并且有一章Rewriting History,它解釋了如何更改最后一次提交$ git commit --amend,更改多個提交訊息$ git rebase -i HEAD~ 3、使用$ git filter-branch --tree-filter洗掉所有提交中的特定檔案或檔案夾。
我的問題是:這本書沒有提到通過沿著所有提交歷史進行多次結帳來完成這項作業的可能性。所以我移動我的 HEAD,一個一個提交,我用$ git commit --amend一個一個地改變這個特定的提交。
我知道它在花費的時間方面真的(真的!)很貴,但它真的可能(即它有效)嗎?
如果是,在哪些情況下這可能有用?
uj5u.com熱心網友回復:
對于所有提交,您可以使用newren/git-filter-repo,它可以重寫您需要的任何內容(作者、提交訊息、檔案或檔案內容,...)
例如,關于提交訊息,使用 message-callback:
訊息回呼與前三個回呼非常相似,盡管它對可能不止一行的位元組串進行操作:
git-filter-repo --message-callback ' if b"Signed-off-by:" not in message: message = b"\nSigned-off-by: Me My <[email protected]>" return re.sub(b"[Ee]-?[Mm][Aa][Ii][Ll]", b"email", message)'
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/341228.html
