Git 管理しているプロジェクトをエクスポートする
Git 管理していて、編集中のプロジェクトがあったとして、node_modules/
などを含めずにエクスポートしたり、Zip ファイルにまとめるなどしたい。そんな時のコマンドを2つ紹介する。
目次
管理対象外ファイルを除外して Zip ファイルにまとめたい : git archive
.gitignore
に記載されている管理対象外のファイルを除外して、Zip ファイルや TarBall にまとめたい、という場合は、git archive
というコマンドが使える。Git 管理しているプロジェクトルートで以下のように叩くと、exports.zip
が生成される。
$ git archive HEAD --format=zip --output=exports.zip
HEAD
というリビジョンを指定しているところから想像できるかもしれないが、「特定のブランチ」なども対象にできる。Zip ファイルにする場合は --format=zip
オプションを指定し、--output
オプションで名前を変える。
TarBall が良ければ --format
オプションが不要。
$ git archive HEAD --output=exports.tar.gz
管理対象外ファイルを除外して1ディレクトリにまとめたい : git checkout-index
Zip ファイルにする必要はない、という場合は、git checkout-index
というコマンドが使える。Git 管理しているプロジェクトルートで以下のように叩くと、exports
ディレクトリが生成され、その中に Git 管理対象外のファイルのみが格納される。
$ git checkout-index -a --prefix=exports/
--prefix
オプションの末尾に必ず /
を入れること。書き忘れると、ディレクトリではなくファイル扱いになってしまうので、よく分からないファイル名でエクスポートされてしまう。
というワケで、「除外したいファイル以外を別のディレクトリにコピーして…」なんてしなくてもコマンド一発で吐き出せた。コレは便利。