Gitでバージョン管理をするのは大事なことだ。なぜなら、どこで・どのように・なぜコードを変更したのか、自分でも忘れてしまうことがあるからだ。しかし、大事なのはわかるが、リポジトリとかコミットとかプッシュとか、日常生活にはまず出てこないであろう用語で説明されるので、どの処理のことを指しているのか混乱することが多い。そこで、GitとGitHubのことをまとめてみた。
環境
開発環境:Cloud9
git version:2.14.1
Gitとは
そもそもGitとは何なのだろうか。
Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。
引用元:Wikipedia
プログラムを書いていると機能の変更や追加を繰り返し行っていくことになる。どのタイミングでどんな機能を追加・変更したのか記録していくのにGitを使用するとわかりやすくなる。ということみたいだ。
実際にGitを使用して環境構築をしていく。
リポジトリの作成
リポジトリとは、ファイルやディレクトリの状態を記録する場所です。保存された状態は、内容の変更履歴として格納されています。変更履歴を管理したいディレクトリをリポジトリの管理下に置くことで、そのディレクトリ内のファイルやディレクトリの変更履歴を記録することができます。
引用元:履歴を管理するリポジトリ【Gitの基本】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜
ファイルやディレクトリの状態を記録する場所である。知っている人からしたらあたり前のことであると思うが、はじめて聞いた身としてはピンとこない。
見当違いかもしれないが、日記のようなものだろうか。●月×日 sample.rbにputs機能を追加した。みたいな。
しかも、ただの日記ではなくて、その変更前の内容も保存してくれるので元に戻すことも容易にできる。なんて便利なんだろうか。
コンソールでcd
コマンドを使用して管理したいディレクトリの先頭位置に移動し、git init
コマンドでリポジトリを作成することができる。実行後に.git
というディレクトリが生成され、その中に必要なファイルが生成される。
また、Cloud9であればコマンド実行後、$の前に(master)と表示される。
コミットまで
リポジトリの生成が終わったら今度はコミットしていく。コミットとは、実際に対象ファイルをリポジトリへ記録することである。
コミットする前にステージングエリアという場所にコミットする対象を追加しなければならない。
git add .
でステージングエリアにファイルを追加する。git add
はコマンドで、.
の部分がディレクトリの指定。.
はカレントディレクトリ以下のすべての変更がaddされる。また、オプション-Aを追加するとgit管理内のすべての変更がaddされる。基本的にはgit add -A
を使用したいと思う。
ちなみに、ステージングエリアに追加されているファイルを確認するには、git status
コマンドで確認することができる。
さて、ステージングエリアにファイルを追加したのでコミットしていく。コミットはgit commit
コマンドを使う。
引数に-m "コメント"
と記述するとコメントが追加できる。
GitHub
gitを使用するにはまずリポジトリを作成し、ファイルの変更があるごとにステージングエリアに追加⇒コミットを行えばいい。しかし、この方法で管理できるのは自分自身だけであり、開発者同士でコードの共有ができない状態である。
そこで使用するのがGitHub。つまり、ソースコードの変更記録をアップロードしてインターネット上に公開する。
今回はGitHubへの登録方法などは割愛させていただく。
リポジトリの種類についても触れておこう。
リポジトリには2種類あり、ローカルリポジトリとリモートリポジトリがある。
- ローカルリポジトリ・・・ネットワークに接続されていないリポジトリ。ユーザ一人ひとりの管理下。
- リモートリポジトリ・・・ネットワーク上にあるリポジトリ。複数ユーザーで共有可能。
基本的にはリポジトリを作成したらローカルリポジトリが作成され、それをネット上にアップロードなりするとリモートリポジトリとなる。GitHubはリモートリポジトリである。前置きが長くなったが、GitHubへアップロードしてみる。
pushする
まずは以下のコマンドを実行する。
git remote add origin https://github.com/<username>/<project_name>.git
usernameとproject_nameの部分は書き換えていただきたい。(<>は不要)
そして以下を実行
git push origin master
これでGitHubにアップロードができた。
まとめ
- Gitでコードのバージョン管理ができる
- GitHubでGitの内容を公開・共有できる
- まずはリポジトリの作成から。作成は一度でいい
- リポジトリへ記録するのをコミットという
- ステージングエリアへ追加→コミット の順番
- GitHubへのアップロードはプッシュコマンドで行う
とりあえずはGitとGitHubの基本的な流れをまとめてみた。しかし、Gitにはマージやブランチなど、まだまだたくさんの便利機能があるので興味を持ったら調べてみてはいかがだろうか。
ご閲覧ありがとうございました。