2014-03-03 16 views
0

我回到以前提交 - 硬的結果,我用的git的復位 - 硬命令:git的重置一些丟失的文件

git reset --hard ff680b51a3f3d7d695bbef0367cfe7b75d9be60e 

然而,我發現我的項目現正整理與錯誤,如:

"_OBJC_CLASS_$_SetupDishViewController", referenced from: 

文件名爲SetupDishViewController是明顯缺失的,我相信它在那裏,當我提交ff680b51a3f3d7d695bbef0367cfe7b75d9be60e,我仔細檢查在遠程分支機構,以確保它的存在。

如何恢復?有什麼辦法可以從遠程分支撤回這個提交嗎?

回答

0

是,找到的哈希值的承諾,並做到:

$ git cherry-pick <hash-of-commit> 
+0

嗨,提交的散列是'ff680b51a3f3d7d695bbef0367cfe7b75d9be60e',我跑了一個櫻桃選擇,但同樣的文件仍然失蹤,我得到了同樣的錯誤。 – Malloc

+0

可能這不是合適的提交。您可以運行'$ git log -p SetupDishViewController'並查看它被刪除的提交。然後你可以使用'$ git revert '或者做一個交互式rebase('$ git rebase -i ')並且編輯它以保留它的更改應該做,而不是壞的(即刪除文件)。 – Agis

+0

我回到那個提交,git說:'你正在恢復提交ff680b5.'我幾乎沒有明顯的衝突,我修復並再次提交,但有問題的文件沒有在項目中列出,我很確定這是在提交,因爲我仔細檢查遠程回購:) – Malloc

0

如果你有最近的git版本,你可以嘗試找回最近該文件的版本:

git reset @{2.days.ago} SetupDishViewController 

使用@{date}表示法可以指定一個時間間隔,如yesterday"1 month ago"