[英]Get a file from a git repository at a specific revision number
我有一個Git存儲庫,其中的文件僅通過一個分支提交。 我只使用以下命令:
git init
git add -A
git commit -m "msg"
我想獲取文件的特定修訂版。 該修訂版用數字指定。 目前我使用這個:
如果修訂總數為1: git show HEAD:path
如果版本號大於1,則: git show HEAD~n:path
但是,在運行代碼時,在某些情況下會出現類似以下內容的錯誤:無效的對象名稱:HEADn(其中n是一個數字)。 在subversion中,我使用了svn cat
命令。
由於我會不斷更新存儲庫,因此,如果可能的話,我不想在修訂版中簽出存儲庫。
關於git要記住的主要事情是,一切都基於您的提交。 提交哈希標識它,並且標記,分支只是標識提交的其他機制,盡管在分支不是靜態的情況下,它隨HEAD一起移動。
因此..為了簽出特定修訂版本的文件,您只需要查找該修訂版本所在的提交,就可以使用該版本查看特定文件的歷史記錄...
git log --no-merges --oneline -- <path>
或者,如果您使用的是Git Extensions或其他GUI,則將使用文件歷史記錄命令直觀地顯示您。
一旦知道什么是提交哈希,就可以使用
git checkout <hash>:<path>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.