フォルダーからZipファイルを作成しようとしていますが、結果のZipファイルから.git
サブフォルダーを除外したいと思います。
私はzipしたいものの親フォルダに行きました(bitvolutionと呼ばれる)、私はやっています:
Zip -r bitvolution.Zip bitvolution -x ".git"
ただし、.git
サブフォルダーは除外されません。
-x .git*
、-x \.git/*
、-x .git/\*
、-x \.git/\*
など、さまざまな組み合わせを試しました。また、exclude引数にフルパスを使用しようとしましたが、そこに到達しませんでした。
正しい式は-x *.git*
なので、完全なコマンドは次のようになります。
Zip -r bitvolution.Zip bitvolution -x *.git*
http://selfsolved.com/problems/Zip-command-exclude-svn-director からの説明:
正しい呪文は
Zip -9 -r --exclude=*.svn* foo.Zip [directory-to-compress]
追加することもできます
--exclude=*.DS_Store*
は、迷惑なMac OS Xディレクトリ表示メタデータファイルを除外します。
--exclude
に渡される式は、一致する元の文字列として元の相対ディレクトリパス全体を使用していることに注意してください。したがって、.svn/*
自体は機能しません。前にあるワイルドカード文字は、ディレクトリツリーの任意の場所の.svn
ディレクトリと一致することを保証します。
Gitに保存されているプロジェクトを圧縮する場合は、git archive
コマンドを使用します。ソースディレクトリ内から:
git archive -o bitvolution.Zip HEAD
HEAD
の代わりに任意のコミットまたはタグIDを使用して、特定の時点でプロジェクトをアーカイブできます。
すべてのファイルにプレフィックス(たとえば、最上位フォルダー)を追加する場合:
git archive -o bitvolution.Zip --prefix=bitvolution/ HEAD
また、0(圧縮なし)から9(最大圧縮)までの圧縮レベルを調整することもできます。たとえば、
git archive -o bitvolution.Zip -9 HEAD
他のオプションについては、ヘルプページ(git help archive
)を参照してください。
バックスラッシュを追加しました:
Zip -r bitvolution.Zip bitvolution -x \*.git\*
バックスラッシュに関するmanページ:
バックスラッシュにより、シェルファイル名の置換が回避されるため、名前の一致はすべてのディレクトリレベルでZipによって実行されます。
これを行うマシンにgitがインストールされていると仮定すると、git自体を使用してアーカイブを作成することもできます。
git archive --format=Zip HEAD -o bitvolution.Zip
Zshを使用している場合、コマンドは次のようになります。
Zip -r target_name.Zip source_dir -x '/*.git/*'
使用する場合:Zip -r target_name.Zip source_dir -x /*.git/*
。 'regex'がないと、zshはZipの実行前に処理されます。エラーメッセージが表示されます。
zsh: no matches found: /*.git/*