2009-09-01 12 views
2

私はコミットが行われるたびに変更されたファイルが(ハードコードされた)ディレクトリに自動的にインストールされるように、コミット後のフックを裸のリポジトリに追加しようとしています。裸のgitリポジトリの単一のパスをクローニングする

リポジトリから1つのファイルをフェッチする方法はありますか?

git-cloneはパスの指定を許可していないようですが、見つかったコマンド(git-fetch、git-pull)は既存のローカルgitリポジトリが動作する必要があります。

これを行う方法はありますか?

答えて

2

あなたがに答えを見つけることがあります。git checkout-indexはおそらくあなたのために仕事をする、How to do a "git export"特に

git checkout-index -a -f --prefix=/destination/path/ 

は、最後のスラッシュや、このコマンドは正確に行うことはありません忘れないでくださいあなたが欲しいもの。

+0

git checkout-indexは、裸のリポジトリでは機能しません(「致命的:この操作は作業ツリーで実行する必要があります)」。 しかし、あなたが投稿したリンクは、うまく動作するgit-archiveも示唆しています:( "git archive master TESTFILE | tar -x -C/my/destination")ありがとう! – knipknap

+0

ああ、興味深いことに、裸のリポジトリには読み込み用のインデックスがないと思います。知っておいてよかった。 –

3

あなたは構文git show <rev>:<filename>を使用して、git showと裸のリポジトリ内の任意のリビジョンから1つのファイルを抽出することができ、例えば:

 
$ ls 
branches config description HEAD hooks info objects packed-refs refs 
$ git show master:COPYING > /tmp/COPYING 
$ head -5 /tmp/COPYING 
        GNU GENERAL PUBLIC LICENSE 
         Version 3, 29 June 2007 

    Copyright (C) 2007 Free Software Foundation, Inc. 
    Everyone is permitted to copy and distribute verbatim copies 

a couple of examples in the git-show(1) man pageがあります。私はそれがいくつかの使用の希望です。

関連する問題