[英]Checking out a file from last commit while having it in index
我是 git 的初學者。
到目前為止,我學到的是,如果我使用git checkout -- <file>
如果文件已暫存,則將從暫存區域檢出文件,如果文件未暫存,則從上次提交中檢出。
現在,如果文件在修改后暫存,並且我嘗試使用git checkout HEAD -- <file>
將工作樹中的文件替換為最后提交的版本,它也會從暫存區域中刪除文件。
是否可以將初始修改保留在暫存區域並在工作樹中獲取文件的最后提交版本?
要從特定版本中提取文件,我們可以使用
git show $revision:$path
所以在你的情況下,你可以試試
git show HEAD:$path > $path
您也可以用git cat-file -p
替換git show
。 git show
默認使用尋呼機,而git cat-file
根本不使用,即使指定了有效的尋呼機。 但是尋呼機在這里無關緊要。
如果要更好地考慮更新的( Git 2.23, Q3 2022 ) git restore
命令,當您想...恢復文件。
它允許您指定:
那是:
git restore --source $revision -- path/to/file
默認情況下,它只影響工作樹,而不影響暫存區(緩存)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.