簡體   English   中英

git checkout-index僅適用於已提交的文件

[英]git checkout-index only for committed files

我目前正在使用以下方式導出git存儲庫:

git checkout-index -f --prefix=$TARGET_PATH/ $GIT_REPO_PATH/*

實際行為:導出發生在添加到索引的所有文件上。

所需的行為:導出不僅已添加而且已提交的所有文件。

我嘗試使用--stage -option,但是對於已提交和未提交的文件,階段為0(我不得不說,我還不了解階段號。

任何想法?

您無法在一個命令中執行此操作,必須先將提交樹中的文件加載到索引中。 幸運的是,您不必使用處理的普通索引:

$ export GIT_INDEX_FILE=.git/tmp-index
$ git read-tree HEAD && git checkout-index --prefix=/path/dir/ -f -a
$ rm "$GIT_INDEX_FILE"

一個簡單,簡單的解決方案是使用git archive 它將從git歷史記錄中提取一棵樹並將其寫入標准輸出。 管道槽tar允許您將文件寫入磁盤上的特定目錄。

# HEAD to use latest committed version
git archive HEAD | tar x -C"/path/to/dir"

我認為git --work-tree=<path/to/wherever> checkout <HEAD/branch/hash> -- . 做你想要的。 它將在( --work-tree指定的路徑)中創建(指定提交中存在的每個文件的)副本。

暫無
暫無

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

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