簡體   English   中英

如何在git中恢復不正確移動文件的歷史記錄?

[英]How to restore history of improperly moved file in git?

我在我的存儲庫中移動了文件,git沒有檢測到這是移動。 它檢測到刪除和添加文件。 我提出了這個改變,然后做了很多其他事情。 之后,我意識到我無法看到移動文件的歷史記錄。

我找到了我的錯誤的原因,現在我想找到如何解決這個問題。

有沒有辦法恢復文件的歷史?

這個移動文件解決方案的查看GIT歷史記錄無法解決我的問題,因為我沒有正確移動我的文件。 所有的歷史都丟失了。

首先,我認為你在git中誤解了重命名。 對於git ,文件永遠不會被“不正確地移動”,因為git跟蹤內容而不是文件和文件名。 git的創建者Linus Torvalds說這是關於重命名的:

git在內部甚至不關心整個“重命名檢測”,你用重命名做的任何提交完全獨立於我們用於顯示重命名的啟發式方法。 1

所以實際上可能發生的是git log --follow對你不起作用,因為--follow僅檢查默認情況下50%相似文件的重命名。 但是,您的文件可能只與其重命名的版本類似20%或30%。 嘗試使用不同值低於50%的--find-renames=<n> ,看看是否能解決問題:

git log --follow --find-renames=35% path/to/your/renamed/file
  1. http://marc.info/?l=git&m=119638337122721&w=2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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