gitリポジトリの.git
ディレクトリを除いたコピーが欲しい、つまりsvn export
みたいな事をしたいんだけどー、git archive
とは違うしー、と思って調べてみたらぴったりなサブコマンドがありました。
$ git checkout-index -a -f --prefix=dir/
でOKです。
-
-a, --all
- すべて
-
-f, --force
- 上書き
-
--prefix=<string>
- prefixを付けて
ということみたい。($ git checkout-index --help
を斜め読みした感じだと)
$ git checkout-index -a -f --prefix=dir
と--prefix
の最後に/
を付け忘れると残念なことになるので気を付けると良いかも。
$ git checkout-index -a -f --prefix=$HOME/test
とかやってしまうと、$HOME
にtestREADME.md
とかが生成されてしまうので、リポジトリ直下にファイルがたくさんある場合は面倒なことになったりします。
[alias]
export = "!sh -c 'git checkout-index -a -f --prefix=$1/' -"
とかエイリアス作ると楽です。
というような内容がここに書いてありました。