2010-10-04 65 views
3

我正在處理一個文件,其中我當前的提交結果很糟糕,我想回到之前提交的特定文件提交?如何返回到使用git的文件的早期提交?

我沒有它看起來像搜索沒有人回答了類似的問題(如何回滾文件更改在以前的git的承諾)....

希望一個簡單的答案?

回答

3
git checkout <commit-id> file(s) 

它會輕易覆蓋,所以要小心你的文件通配符,它​​可以一次覆蓋多個文件。如需幫助,您可以用想要的文件作爲過濾器檢查出git log消息:

git log <file> 

將只顯示與搜索涉及的<file>日誌信息的提交。

+0

是的,謝謝,我想要一個特定的文件,所以它聽起來像我使用日誌(或者我想通過我的託管存儲庫),並得到那個大的長字符串和文件的名稱....謝謝 – Angela 2010-10-05 16:12:21

3

git reset <commit hash> <filename>

+0

你或許應該提到,這需要遵循'git add '和'git commmit',假設結果是所期望的。 – ebneter 2010-10-05 01:43:09

+0

她可能想要'git checkout',按照@ progo的回答。 – 2010-10-05 04:09:58

+0

@Aristotle,你是對的... @ progo的回答比較好。 – dgnorton 2010-10-05 11:52:20

0

嗯,這很可能混淆你的主要的是git的跟蹤整個存儲庫,而不是一個文件的complate版本。因此,您需要做的是確定哪個版本的存儲庫具有您正在查找的文件的版本,然後回滾到該版本。

如果你只是想要這個舊版本的文件,但希望在此期間存儲庫採取的所有其他更改,你必須做更多的工作。

對於像回滾這樣的複雜操作,我通常會建議使用其中一個GUI工具(比如git gui),因爲它們可以讓你更好地形象化你準備做的事情。

相關問題