簡體   English   中英

GIT:如何重命名文件但保留其歷史記錄?

[英]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 loggit 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM