簡體   English   中英

如何使用git checkout從提交歷史記錄中檢出特定的提交到另一個文件夾

[英]how to use git checkout to checkout a specific commit from history of commits to another folder

考慮我在git日志中有這個:
提交847a363f6676bf5d07c42d6ebec834fea1c9a363

-------------------更正:
讓我更正。 我使用git作為備份和版本控制工具。 我想在提交歷史中獲得以前的版本,而又不影響當前工作目錄中的任何內容。 我只想在給定的提交編號中將所有文件的副本保存在單獨的目錄中。

mkdir -p /path/to/it
git archive 847a363f6676bf5d07c42d6ebec834fea1c9a363 | tar Cx /path/to/it

這也允許過濾出局,請參閱export-ignoreexport-subst屬性。

另一種方法

而不會影響我當前的工作目錄中的任何內容。 我只想在給定的提交號中將所有文件的副本放在一個單獨的目錄中

使用一次性部署索引,如下所示:

mkdir -p /path/to/dest
GIT_INDEX_FILE=.git/junk GIT_WORK_TREE=/path/to/dest \
        git read-tree -u 847a363f6676bf5d07c42d6ebec834fea1c9a363
rm .git/junk

並且如果您確實想將提交添加為已簽出的提交的子樹

git read-tree -u --prefix=path/to/dest/ 847a363f6676bf5d07c42d6ebec834fea1c9a363

另一種可能性:

您想要的是git worktree 使用git worktree add簽出另一個目錄中的提交。 這很容易使用,但我讓您閱讀文檔以了解具體操作方法...

暫無
暫無

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

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