git clone コマンド
ドキュメント:
git-clone | Git Documentation [Official]
使い方
ドキュメント:
参考:
Git の clone コマンドの使い方 | エンジニアの入り口
git clone コマンド – Git のリポジトリを複製する | @IT
リポジトリをクローンする | GitHub Docs [公式]
特定のブランチを指定して clone する方法! | Qumeru マガジン
リポジトリの一部のみをクローンする (シャロークローン)
単一のブランチのみクローンする。
$ git clone --single-branch
指定したブランチのみクローンする。
$ git clone --branch master --single-branch
指定したコミット数だけクローンする。
$ git clone --depth 100
指定したブランチの指定したコミット数だけクローンする。
$ git clone --branch develop --depth 100
指定したタグのコミットのみクローンする。
$ git clone \ https://github.com/[user_name]/repo.git \ --branch v1.2.3 --depth 1
ドキュメント:
パーシャルクローンとシャロークローンを活用しよう | GitHubブログ [公式]
参考:
容量が大きなリポジトリの一部だけダウンロードする方法 | gotohayato
巨大なリポジトリ を Git で上手く扱う方法 | Atlassian Blogs
とにかく速く特定のブランチを git clone したい場合の Tips – Qiita
リモートリポジトリを clone する際、特定のブランチだけ取ってきたい | oogatta のブログ
特定のブランチ or タグを clone する – Qiita
ブランチ/タグを指定して git clone する | DIGITAL SQUAD ブログ
How do I clone a single branch in Git? – Stack Overflow
How to git clone a specific tag – Stack Overflow
Download a specific tag with Git – Stack Overflow
シャロークローンしたリポジトリに追加でフェッチする
.git/config
を開いて編集する。fetch
の行を追加する。
[remote "origin"] url = https://github.com:[user_name]/repo.git fetch = +refs/heads/master:refs/remotes/origin/master fetch = +refs/heads/develop:refs/remotes/origin/develop
全てのブランチを追跡する通常のクローンに戻したい場合は、ブランチ名の箇所にワイルドカードを指定する。
[remote "origin"] url = https://github.com:[user_name]/repo.git fetch = +refs/heads/*:refs/remotes/origin/*
ドキュメント:
Refspec | Pro Git Book [Official]
参考:
Git で single-branch を使用した後に別ブランチを fetch する方法 – Qiita
履歴が存在しない新しいブランチとしてプッシュする
シャロークローンする。
$ git clone https://github.com/[user_name]/repo.git --branch v1.2.3 --depth 1
プッシュ先のリポジトリを origin
として設定する。
$ git remote set-url origin git@github.com:[user_name]/repo.git
履歴のない master
ブランチを作成する。
$ git checkout --orphan master
コミットする。
$ git commit -m 'v1.2.3'
origin
に master
をプッシュする。
$ git push -u origin master
参考:
別の Repository に push するときに今までの commit 履歴を残さない方法 | grep Tips *
grafted
シャロークローン時にその先のコミットがフェッチされていない末端のコミットを指し示す。
参考:
grafted な Git コミットとは何者か・・・ | つかろぐ
What exactly is a “grafted” commit in a shallow clone? – Stack Overflow
クローンしたリポジトリを共有する
$ cd path/to/repo.git $ git config core.sharedRepository group $ chmod -R g+ws hooks info objects refs
参考:
2〜3名でちょっとした資料を管理したいときの Git Repo の作り方 – Qiita
リポジトリを後から共有できるようにする | kuma8 の雑記帳
Git で共有リポジトリを作るときに気をつけたいこと | yashigani の英傑になるまで死ねない日記
clone 後のリポジトリーを共有する | Blog BBTUNE
How to configure an existing Git repo to be shared by a UNIX group – Stack Overflow
Change Git repository to shared – Stack Overflow
既存のディレクトリに追加でクローンしたい
git clone
は対象のディレクトリが空の場合のみ可能である。- 既存のディレクトリに別リポジトリの内容を追加するには、リモートを追加してフェッチする。
参考:
What’s the best practice to “git clone” into an existing folder? – Stack Overflow