1
我的一位同事通過複製樹,刪除.git
目錄並執行新的git init
,以「錯誤」的方式創建了一個新的git存儲庫。然後,同事大大減少了存儲庫,刪除了一堆文件並重命名了其他文件(在提交任何內容之前)。是否有可能將git歷史記錄還原到複製和修改的樹上?
在我看來,它應該有可能通過從原始回購區域到新區域的差異來修復歷史記錄,然後進行修補。
我能夠使用
diff -ur old new --exclude=".git" > master.patch
然後我差點就做
git clone old new_old
cd new_old
git checkout master
patch -p 1 < ../master.patch
# Then, if the patch command had worked, I would have done:
cd ..
rm -rf new
mv new_old new
修補(-p 1
告訴它砍掉庫目錄名)來產生這樣的差異,但它似乎遇到了完全刪除文件的問題。
我希望它也會遇到已重命名的文件(例如,從old_dog.hpp
到new_dog.hpp
)的問題。但我也讀過git
我確定其他人已經做到了這一點,但我找不到任何例子。有沒有一種簡單的方法來恢復此存儲庫中的文件的歷史記錄,或者我只是在浪費時間?
哇!那太簡單了!謝謝一堆。 –