簡體   English   中英

從git倉庫獲取特定版本號的文件

[英]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命令。

更新

由於我會不斷更新存儲庫,因此,如果可能的話,我不想在修訂版中簽出存儲庫。

其他等效於svn cat命令:

git cat-file blob ref:path/to/file
git show ref:path/to/some/file.cs.

請參閱指定用(SHA1,標記,分支,...或您正在使用的<rev>~<n>, eg master~3 master〜3)替換ref的修訂

關於git要記住的主要事情是,一切都基於您的提交。 提交哈希標識它,並且標記,分支只是標識提交的其他機制,盡管在分支不是靜態的情況下,它隨HEAD一起移動。

因此..為了簽出特定修訂版本的文件,您只需要查找該修訂版本所在的提交,就可以使用該版本查看特定文件的歷史記錄...

git log --no-merges --oneline -- <path>

或者,如果您使用的是Git Extensions或其他GUI,則將使用文件歷史記錄命令直觀地顯示您。

一旦知道什么是提交哈希,就可以使用

git checkout <hash>:<path>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM