2013-10-23 71 views
1

我創建了一個全新的git倉庫,我想同步到一個已經在遠程。不幸的是,在我添加遙控器作爲原點之前,我在這個新的本地回購中添加了一些新文件,並且在我拉出之前我忘了提交這些新文件。因此本地沒有初始提交。結果這些新文件在我拉時被刪除。無論如何要讓他們回來?是否有可能檢索git刪除沒有提交的文件?

回答

1

如果您創建了git add,那麼git已經爲這些文件創建了blob對象,但未將它們連接到commit DAG。你可以看一下使用git fsck命令,它應該給你blobtree對象名單未連接的對象。

您正在查找的文件位於blob的文件裏,其內容可以使用git cat-file(IIRC,現在無法測試)轉儲。 git fsck命令將不會顯示blob s引用的tree s,因爲這些不是未引用的,所以如果找不到要查找的文件,則可能需要查看一些tree對象以查找更多blob s。

0

使用git log,找到上次提交要回滾到,並使用

git checkout $COMMIT_ID$

+0

我更新的問題。 – johnbakers

0

也許這是不是在你的情況下,有效的,但如果你碰巧使用Eclipse和已刪除位於內某個項目中的文件,那麼你可以隨時做一個「從本地歷史記錄恢復...」在蝕。這爲我節省了幾次。

+0

這是使用Maven的動作嗎? – johnbakers

相關問題