Corredor

ウェブ、プログラミングの勉強メモ。

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 オプションの末尾に必ず / を入れること。書き忘れると、ディレクトリではなくファイル扱いになってしまうので、よく分からないファイル名でエクスポートされてしまう。


というワケで、「除外したいファイル以外を別のディレクトリにコピーして…」なんてしなくてもコマンド一発で吐き出せた。コレは便利。

エンジニアのためのGitの教科書 実践で使える!バージョン管理とチーム開発手法

エンジニアのためのGitの教科書 実践で使える!バージョン管理とチーム開発手法

  • 作者: 株式会社リクルートテクノロジーズ,株式会社リクルートマーケティングパートナーズ,河村聖悟,太田智彬,増田佳太,山田直樹,葛原佑伍,大島雅人,相野谷直樹
  • 出版社/メーカー: 翔泳社
  • 発売日: 2016/01/19
  • メディア: Kindle版
  • この商品を含むブログ (1件) を見る