.gitファイルのないフォルダをTarにしますか?

.gitファイルのないフォルダをTarにしますか?

.gitGitリポジトリのフォルダを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

.gitLinux、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/

関連情報