git clone コマンド

参考:

git-clone | Git Documentation [Official]

使い方

参考:

Git の clone コマンドの使い方 | エンジニアの入り口

git clone コマンド – Git のリポジトリを複製する | @IT

リポジトリをクローンする | GitHub Docs [公式]

Git で特定のブランチを指定して clone する方法! | Qumeru マガジン

リポジトリの取得 | Git Book [公式]

git-clone | Git コマンドリファレンス (tracpath.com)

リポジトリの一部のみをクローンする (シャロークローン)

単一のブランチのみクローンする。

$ 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

参考:

Git で容量が大きなリポジトリの一部だけダウンロードする方法 | gotohayato

巨大なリポジトリ を Git で上手く扱う方法 | Atlassian Blogs

とにかく速く特定のブランチを git clone したい場合の Tips – Qiita

git でリモートリポジトリを clone する際、特定のブランチだけ取ってきたい | oogatta のブログ (archive)

Git で特定のブランチ or タグを clone する – Qiita

ブランチ、タグを指定して git clone する | DIGITAL SQUAD ブログ (archive)

パーシャルクローンとシャロークローンを活用しよう | GitHubブログ [公式]

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/*

参考:

git で single-branch を使用した後に別ブランチを fetch する方法 – Qiita

Refspec | Pro Git Book [Official]

履歴が存在しない新しいブランチとしてプッシュする

シャロークローンする。

$ 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'

originmaster をプッシュする。

$ git push -u origin master

参考:

Git で別の Repository に push するときに今までの commit 履歴を残さない方法 | grep Tips *

grafted

シャロークローン時にその先のコミットがフェッチされていない末端のコミットを指し示す。

参考:

grafted な git コミットとは何者か・・・ | つかろぐ (archive)

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

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA