.git
Gitリポジトリのフォルダをtarしている場合は、関連ファイルを含めずにこれを実行できますか?そうでない場合は、コマンドを使用してどのようにこれを実行できますか?
答え1
最も簡単な答えはaddです--exclude-vcs
。これはすべてのバージョン管理システムディレクトリを除外します。
個人的に使っています。
tar --exclude-vcs -zcvf foo.tar.gz ./FOLDER_NAME
--exclude-vcs
したがって、コマンドの最後に追加するだけです。
答え2
見てみgit help archive
ましょうgit archive --help
。このgit
サブコマンドを使用するarchive
と、追跡するファイルのみを含むアーカイブを作成できますgit
。これがあなたが探しているものかもしれません。
マニュアルの最後にリストされている多くの例の1つ:
git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz
現在のバージョンは、git
次の形式のアーカイブの作成をサポートしています。
tar
tar.gz
またはtgz
zip
git archive --list
システムでサポートされている形式のリストについては、リソースを参照してください。
答え3
アーカイブにgitが追跡するファイルを含め、gitリポジトリ自体や作成されたファイルまたは追跡されないファイルを含めないようにするには、次の手順を実行します。使用git archive
。
.git
Linux、FreeBSD、OSX、またはCygwinから特に除外して他のすべてを含めたい場合は、tarにはディレクトリを除外する簡単なオプションがあります。
tar -c --exclude .git -f - foo | gzip >foo.tgz
GNU tar(たとえば、LinuxやCygwinで)を使用すると、これをtar czf foo.tgz --exclude .git foo
。
アーカイブを生成するPOSIX方式は次のとおりです。pax
。
pax -w -t -s '!.*/\.git$!!' -s '!.*/\.git/.*!!' foo | gzip >foo.tgz
答え4
私にとって有用な唯一の方法は、必要なファイルを別のサーバー、つまりこのサーバーに転送するために.gitディレクトリ(およびバックアップという別のディレクトリ)を除外することでした。 Gilesの答えはこの解決策を見つけるのに役立ちました。
tar --exclude .git --exclude backups -czvf project1.tar.gz /var/www/html/project1/