2009-02-16

Git で archive を作る

Git かわいいよ、Git。

Git 管理しているアプリを tar ball で公開する時のお話。普通、make distclean && make して全コンパイルが通ることを確認したら、もう一回 make distclean して tar ball 作成用のコマンドを実行するよね? それとも、export して tar に固めるかな?

Git だと、tar ball を作成するためのコマンドが用意されてる。git-archive がそれ。

$ git archive --format=tar --prefix=foo-0.1.0/ HEAD | gzip > foo-0.1.0.tar.gz

format の引数には、tar と zip が使える。デフォールトは tar とのこと。「HEAD」を指定すると、カレント・ブランチの最新版を tar してくれる。ここに TAG を指定することも可能。

アーカイブされたデータは、標準出力に吐き出されることに注意。お蔭で、gzip や bzip2 コマンドに渡せるんだけど、ZIP アーカイブする人には馴染みが薄いんじゃないかな。

$ git archive --format=zip --prefix=bar-0.1/ release-0.1 > bar-0.1.zip

git-archive は、余計なゴミ・ファイルとかを収録しないし、一発で archive できるので便利。おすすめ。

2 comments:

  1. 7zipも使えました。よかったら見てみてください。
    http://phichyudebow.blogspot.com/2009/10/git-archive-by-7zip.html

    ReplyDelete
  2. コメントありがとうございます。
    早逃、紹介エントリーを書いてみました。

    * clmemo@aka: git archive で 7zip

    ReplyDelete