記事の目的
- "git init"の"git clone"違いについて記載
- Gitプロジェクトを始める方法について記載
本文
Gitプロジェクトを取得する方法(2通り)
- 既存のプロジェクトやディレクトリをGitにインポートする方法 "git init"
- 既存の Gitリポジトリを別のサーバーからクローンする方法 "git clone"
既存のディレクトリでのリポジトリの初期化 "git init"
既存のプロジェクトをGitで管理し始める時は、そのプロジェクトのディレクトリに移動して次のように打ち込む。
$ git init
これを実行すると、 .git という名前の新しいサブディレクトリが作られ、リポジトリに必要な全てのファイルがその中に格納されます。
これを実行した時点ではプロジェクト内のファイルは一切監視対象になっていない。
すでに存在するファイルのバージョン管理を始めたい場合は、そのファイルを git add コマンドを実行した後で git commit コマンドを実行すればいい。
$ git add readme.txt
$ git add LICENSE
$ git commit -m 'initial project version'
この時点で、監視対象のファイルを持つGitリポジトリが出来上がり最初のコミットまですんだ。
既存のリポジトリのクローン
- 既存のGitリポジトリのコピーを取得できるコマンドが git clone 。
- "checkout"ではなく"clone"なのは、Gitは一部だけをコピーするのではなくてサーバーが保持しているデータをほぼ全てコピーするから。(全てのファイルの全ての歴史も)
仮にサーバーが壊れても、どこかのクライアントに残っているクローンをサーバーに戻せば復元できる。 - リポジトリをクローンするには git clone [url] とします。
- 例えばGitライブラリ sample をクローンする場合は次のようになる
$ git clone https://github.com/sample/test
これは、まず test というディレクトリを作成してその中で、Gitを初期化し、リポジトリの全てのデータを引き出し、そして最新バージョンの作業コピーをチェックアウトします。
新しくできた test ディレクトリに入ると、プロジェクトのファイルを見れます。
もし test ではない別の名前のディレクトリにクローンしたい場合
コマンドラインオプションでディレクトリ名を指定できます。
先ほどと同じ処理をしますが、ディレクトリ名は mytest になる
$ git clone https://github.com/sample/test mytest
- Gitはさまざまな転送プロトコルを使用することができる。
以降、例で使うGitライブラリは多言語へのバインディングが可能な"libgit2"をクローンしたものとします。
$ git clone https://github.com/libgit2/libgit2