我正在從事一個git項目,並且我知道在過去的某個時間(很久以前我有代碼)存在一個名爲exec.js
的文件。 我想查看這個文件的內容。 我知道哪個存儲庫用於包含此文件,但我不知道確切的路徑。搜索並查看從回購中刪除的文件
回答
你可以在git log
使用通配符:
git log -- *exec.js
會給你所有的日誌消息時被修改後的被叫exec.js
的任何文件。
一旦你找到了刪除提交(比如A
),你可以
git checkout A -- *exec.js
這會給你帶來exec.js
的最後一個版本。
如果你想查看的exec.js
的全部歷史,你可以使用gitk
:
gitk -- *exec.js
這將再次顯示所有的修改。如果您對一次提交特別感興趣,則可以右鍵單擊gitk
對話框中的文件,然後選擇外部差異工具。這將打開完整文件的外部diff工具,而不僅僅是修補程序。
您可以使用該特定文件搜索歷史日誌內 -
如果沒有文件路徑,然後
git log --diff-filter=D --summary | grep filename
如果你的文件路徑,那麼你可以使用 -
git log -- filepath
git log -n 1 -- filepath
一旦你得到修訂,你可以檢出該特定修訂版以獲取該文件
你沒讀過的問題,不是嗎?他們說他們**不知道路徑。這是路徑過濾器。它需要路徑。因此沒用。 – 2012-08-07 11:58:02
我不知道路徑,當文件被刪除時我沒有代碼。 – user429400 2012-08-07 12:08:32
@JanHudec是的,但當然他必須有git版本庫路徑。user429400不是嗎? – 2012-08-07 12:35:12
有沒有簡單的方法來列出刪除的文件的全名及其內容在一個或兩個命令。但是,這裏有一個別名,讓你開始:
$ git config --global alias.find-deleted-file '!f() { for c in `git rev-list HEAD`; do for fnm in `git diff-tree -r --diff-filter=D --name-only $c | grep -P ".*/$1"` ; do echo "$c $fnm" ; git show $c^:$fnm ; echo "" ; done ; done ; } ; f'
這將提供一個Git find-deleted-file
別名,將已刪除的文件(使用diff-tree
)與提供的文件名模式搜索(匹配由grep -P
提供模式),顯示提交文件被刪除,文件的全名及其內容被刪除之前。
使用下面的例子庫歷史:
$ git log --all --graph --decorate --oneline --name-only
* 3f3cba1 (HEAD, master) I
I
* 4c8b369 H
E/H
* a008343 rm F
E/F
* 525a127 FG
E/F
E/G
* 3a10f93 initial
A
B
C
D
E/F
你會搜索刪除F
文件中使用:
$ git find-deleted-file F
a008343eec91fe917078209d44ae93ee72fc5acb E/F
F
- 1. 從回購中刪除文件
- 2. 搜索我的aspx文件並刪除
- 3. Git推不刪除文件從回購
- 4. svn從回購和刪除工作副本中刪除文件
- 5. 查看並選擇要從列表中刪除的文件
- 6. 從全文搜索中刪除索引
- 7. 搜索並從結果中刪除?
- 8. 查看Vault中的已刪除文件
- 9. 從表中刪除,並刪除文件
- 10. 如何從混帳回購協議中刪除文件夾,並從歷史
- 11. 如何從Eclipse IDE中刪除文件文件搜索
- 12. 在文本文件中搜索並刪除
- 13. 搜索並刪除所有本地驅動器中的文件
- 14. 搜索刪除後返回文檔
- 15. 搜索RichTextBox並刪除
- 16. 搜索並刪除python中的數據
- 17. 搜索目錄中的文件並從數據庫中刪除實體
- 18. .gitignore現有文件,而不從回購中刪除它
- 19. 只從遠程回購中刪除文件
- 20. php文本文件搜索和刪除
- 21. 從文本文件中搜索字符串並刪除該行RUBY
- 22. 搜索時從UITableView中刪除索引
- 23. 從Google Drive中的文件中刪除默認域查看器
- 24. 如何檢索 - >查看 - >在PHP中刪除文件?
- 25. 從回購中刪除提交狀態
- 26. JSON在php中搜索並刪除?
- 27. 從git svn管理的SVN回購文件中刪除一個文件
- 28. 搜索並刪除centos上的所有tar.gz文件6
- 29. m2eclipse搜索只搜索本地回購
- 30. 刪除回購 - 404
您也可以執行** git diff * revision-before-delete * - * filepath ***以查看文件的完整內容。 (每行前面會有「 - 」,因爲每行都從文件中刪除。) – 2013-07-01 17:46:00