degitとは
degitはGitリポジトリ(またはその一部)をローカル環境にダウンロードするためのCLIツールです。
git clone
でよくね?
--depth
を使用すれば最新のコミットだけを落とせますし、git clone --filter=blob:none --no-checkout
とgit sparse-checkout
でリポジトリの一部を指定して落とせます。
git clone --depth=1 git@github.com:user/repo.git
git clone --filter=blob:none --no-checkout git@github.com:user/repo.git
cd repo
git sparse-checkout init
git sparse-checkout add subdirectory
ただ後述するように、degitではより短いコマンドで簡単にGitリポジトリの一部を指定してダウンロードできます。
インストール
npmでインストールします。
npm install -g degit
使う
基本
GitHubだけでなくGitLab、BitBucket、Sourcehutにも対応しています。
GitHub
GitHubからリポジトリのmaster(main)ブランチを現在の作業ディレクトリにダウンロードするには以下のようなコマンドを使用します。
degit user/repo
また以下のコマンドはすべて同等です。
degit github:user/repo
degit git@github.com:user/repo
degit https://github.com/user/repo
GitLab
degit gitlab:user/repo
degit git@gitlab.com:user/repo
degit https://gitlab.com/user/repo
BitBucket
degit bitbucket:user/repo
degit git@bitbucket.org:user/repo
degit https://bitbucket.org/user/repo
Sourcehut
degit git.sr.ht:user/repo
degit git@git.sr.ht:user/repo
degit https://git.sr.ht/user/repo
リポジトリの一部を指定する
第一引数の末尾にサブディレクトリを追加します。
degit user/repo/subdirectory
タグ、ブランチ、コミットを指定する
省略した場合はデフォルトブランチ(基本的にはmasterまたはmain)になります。
degit user/repo#dev # branch
degit user/repo#v1.2.3 # release tag
degit user/repo#1234abcd # commit hash
ダウンロード先を指定する
省略した場合は現在のディレクトリにダウンロードします。
degit user/repo my-new-project
使用例
このリポジトリのmainブランチのclient/android
以下が欲しいとします。
以下のコマンドで保存場所をmy-folder
に指定して落とすことができます。
degit derrickstolee/sparse-checkout-example/client/android my-folder
cd my-folder