1. ホーム
  2. git

[解決済み] Gitクローン。ファイルだけお願いします

2022-04-26 14:03:01

質問

GIT リポジトリをクローンする際に .git ディレクトリを作成します。言い換えれば、私はファイルだけが欲しいのです。これを行う方法はありますか?

git clone --no-checkout は、私が望むものと正反対でした(単に .git ディレクトリ) を作成します。

に対してそれを行おうとしています。 リモート ローカルではなくレポで、つまりこれは 重複しない の"です。 git export」(「svn export」のようなもの)のやり方 "(解決策は結局同じになるかもしれませんが)。

どのように解決するのですか?

あなたが探しているものに最も近いgitコマンドは、次のものです。 git archive .

参照 gitを使用するプロジェクトのバックアップ を使用している場合は、サブモジュールを含むすべてのファイルをアーカイブに含めます。 git-archive-all スクリプト)

このアーカイブはどこでも使用可能で、ファイルのみを返し .git ディレクトリを作成します。

git archive --remote=<repository URL> | tar -t

フォルダとファイルが第一階層からだけ必要な場合。

git archive --remote=<repository URL> | tar -t --exclude="*/*"

リモートリポジトリの第一階層フォルダーのみをリストアップする場合。

git archive --remote=<repository URL> | tar -t --exclude="*/*" | grep "/"

注:その は GitHub では動作しません (サポート外)。

そのため をクローンし(クローン手順を早くするために浅くする)、ローカルにアーカイブする。 :

git clone --depth=1 [email protected]:xxx/yyy.git
cd yyy
git archive --format=tar aTag -o aTag.tar


もうひとつの方法は、シャロークローン(下記参照)を行い、.git フォルダを別の場所に置くことです。

git --git-dir=/path/to/another/folder.git clone --depth=1 /url/to/repo

レポフォルダには、このファイルだけが含まれます。 .git .

git --git-dir のオプションです。 コマンド git ではない git clone .


Git 2.14.X/2.15 (2017年第4四半期) で更新:されます。 空のフォルダーを追加しないようにする .

" git archive は、特にpathspecと一緒に使用した場合、空の ディレクトリを出力します。Git自身は決してそうしないのに。

これは修正されました。

参照 コミット 4318094 (2017年9月12日)による レネ・シャルフェ (``) .

サジェストバイ ジェフ・キング ( peff ) .

(によって統合されました。 ジュニオ・C・ハマノ--。 gitster -- コミット 62b1cb7 , 2017年9月25日)

<ブロッククオート

archive : アーカイブに空のディレクトリを追加しない

gitは空のディレクトリを追跡しませんが。 git archive は、アーカイブに入れるようにだますことができます。

オブジェクトデータベースではサポートされていますが、インデックスでは表現できないので、野放図に発生することはまずないでしょう。

空のディレクトリはgitでサポートされていないため、空のディレクトリを作成してはいけません。 をアーカイブに書き込みます。

もし、空のディレクトリが本当に必要な場合は、空の .gitignore ファイルを作成します。