1

現在、次を使用してgitリポジトリをエクスポートしています:

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

実際の動作: エクスポートは、インデックスに追加されたすべてのファイルに対して行われます。

望ましい動作: 追加されただけでなく、コミットされたすべてのファイルもエクスポートします。

- オプションを使用しようとしました--stageが、コミットされたファイルとコミットされていないファイルのステージは 0 です (ステージ番号はまだわかりませんでした。

何か案が?

4

3 に答える 3

3

1 つのコマンドでそれを行うことはできません。最初にコミット ツリーからインデックスにファイルをロードする必要があります。幸いなことに、通常のインデックスを使用する必要はありません。

$ export GIT_INDEX_FILE=.git/tmp-index
$ git read-tree HEAD && git checkout-index --prefix=/path/dir/ -f -a
$ rm "$GIT_INDEX_FILE"
于 2012-07-25T10:51:57.680 に答える
1

この問題に対する単純でナイーブな解決策は、 を使用することgit archiveです。git history からツリーを抽出し、標準出力に書き込みます。tar 経由でパイプすると、ディスク上の特定のディレクトリにファイルを書き込むことができます。

# HEAD to use latest committed version
git archive HEAD | tar x -C"/path/to/dir"
于 2012-07-25T09:31:56.597 に答える
1

git --work-tree=<path/to/wherever> checkout <HEAD/branch/hash> -- .はあなたが望むものだと思います。(指定されたコミットに存在するすべてのファイル)のコピーを(で指定されたパス)に作成します--work-tree

于 2014-11-26T17:56:46.250 に答える