簡體   English   中英

從上次提交中檢出文件,同時將其放入索引中

[英]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 2022git restore命令,當您想...恢復文件。

它允許您指定:

  • 源(您想要該文件的提交)
  • 目的地(您是否只想在工作樹、索引或兩者中恢復文件?)

那是:

git restore --source $revision -- path/to/file

默認情況下,它只影響工作樹,而不影響暫存區(緩存)。

暫無
暫無

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

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