2015-08-25 174 views
0

我創建了一個分支,然後進行了10次提交併推送了代碼。在第一次提交中,我做了很多更改,並將目錄scraper/中的4個文件複製到scraper/utils目錄,並從scraper /中刪除了原始文件。git恢復刪除的文件及其更改歷史記錄

我做錯了什麼是我手動複製和刪除文件,而不是使用git mv由於哪些文件丟失了他們的更改歷史記錄。

現在我想要的是將這些文件更改歷史記錄回來。

解決此問題的最佳方法是什麼?

回答

0

您的新分支是否由另一個分支創建?如果這些文件存在於其他分支中,則只需從第一次提交新分支的父提交中檢出文件即可。如果他們是完全新的&未被git追蹤,我仍然無法看到,您可以從中恢復。

+0

這些文件存在於我創建分支的分支上。 – MA1

+0

我檢出了從我的分支第一次提交的父提交刪除文件,但刪除的文件被添加爲新文件,所以沒有更改歷史:( – MA1

+0

我認爲第一次提交可能阻止了歷史被添加回..在第一次提交之後,你有很多關於這些文件的開發嗎?如果沒有,你可以執行'git revert first_commit_sha1',然後執行上面提到的'git mv'事情....這樣你可以建立你的更改再次如果沒有太多(你可以使用'git cherry-pick'來進行下面的提交,在第一個提交之後重新應用其他提交) –

0

沒有必要使用git mv來使Git軌道重命名。你可以只是mv一個文件,或者rm它並在工作樹的其他地方添加相同(或非常相似)的文件,Git仍然會將其作爲重命名進行跟蹤。您只需要git add指向刪除的文件和新添加的文件的路徑。

相關問題