[英]GIT: How to rename a file but keep its history?
我的項目有幾個錯誤的命名文件。 我想重命名它們。 我試着用:
git mv nameA nameB
git commit
重命名后,我發現我必須使用:
git log --follow nameB
查看文件的歷史記錄。 並且git blame nameB
丟失了每一行的原始信息,現在每行都有最后一次提交id。
我想知道是否有一種方法可以重命名文件,但保留文件的所有歷史記錄,包括git log
和git blame
。
我發現你遇到了類似的問題,用戶無法使用git blame
命令獲得正確的輸出。 然后他試了試
git blame -C -C filename
並獲得正確的輸出。
我想你可能想看看這個討論。 git blame - 關注 。 希望有所幫助。
看起來你真的想要在整個歷史記錄中更改文件名,即它應該看起來像文件從來沒有那么糟糕的名字。
在這種情況下,您可以使用以下內容:
git filter-branch --tree-filter 'git mv oldname newname' -- --all
請注意, git filter-branch
是一個非常強大的工具。 確保您擁有存儲庫的備份,以防您真正破壞某些內容。 另請注意,如果您已經發布了存儲庫,這可能是一個壞主意。 在其他文件中可能還會對舊名稱進行一些邏輯引用,這可能會使舊提交無法構建。
如果您已經發布了存儲庫,那么您可能應該使用簡單的git mv
,在歷史記錄中使用錯誤的名稱,並使用git的重命名檢測機制,如另一個答案中所示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.