はじめに
プログラミングをしていて、こういう時があると思います。
- プログラムを書いていて、ちょっと前の状態に戻りたい!ってなっても手遅れ...
- 複数人での開発でソースコードをどうやって管理しよう?
- 機能別に担当を分けたけど、ソースコードを合わせる時に手間がかかる...
そういう時にgitを使うと、とても便利になります。
この記事で扱う内容は以下の通りです。
- gitのインストール
- GitHubのアカウント作成
- gitでバージョン管理
- ソースコードをリモート環境にあげる
gitとは
まずはgitとは何か説明します。
gitは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。
git|Wikipedia
ちょっとよくわかりませね。
「一言で言うと」:ソースコードのバージョンを管理できて、さらにソースコード同士を合わせることができるシステムです。
gitにおけるバージョン管理の概念
それではgitの概念を図を使って説明します。
ソースコードは、ファイル作成を行い、コードを書き、各種機能を実装する。このような流れで現在のソースコードが生み出されていると思います。
この中におけるソースコードのバージョンとは
- 日本語入力に対応した
- 〜の関数を追加した
- 〜する機能を実装した
- コードが汚かったのでリファクトした
などなど色々な状態があると思います。
gitのバージョン管理はこのような変更点をコミットという区切りでバージョンを作っています。
図で言うと、現在のソースコードはVersion4 のコミットの状態です。
もしリファクトが失敗してリファクト開始時にコードを戻したい時にはVersion3のコミットに戻るとそれができます。
gitではコミットを自分で付与することで、ソースコードのバージョンを生み出し、それを管理することができます。
gitにおけるローカル環境とリモート環境
次はgitにおける重要な概念であるローカル環境とリモート環境について説明します。
- ローカル環境は自分のPC
- リモート環境はWeb上
という認識で問題ありません。
コードを書いているということは、主にディレクトリの中にソースコードが複数ファイル入っている状態だと思います。(一つだけのファイルでも考え方は同じです。必ずディレクトリに入っているはずです)
gitでは、ディレクトリを対象にバージョン管理が行われます。その対象を
リポジトリと呼びます。
gitはローカル環境(自分のPC)だけでもリポジトリを対象に作業はできるのですが、バックアップやオープンソース、チーム開発を簡単にできるなどの利点からリモート環境(ネット上)を使って作業をすることが多いです。
gitは簡単にリモート環境にローカル環境にあるリポジトリをあげることができます。
これまでの内容を復習しましょう。
「一言で言うと」:gitを使ったバージョン管理では、ソースコードに対してコミットを行うことでバージョンを管理して、それをリモート環境にあげることで管理を行っている。
gitの導入
ではさっそくgitを導入する手順を踏んでいきます。
gitのインストール
まずはgit自体をインストールしましょう!
Windowsの人は以下のリンクからgitをダウンロードしてインストールしましょう。
git for windows
Macの人は元からgitがインストールされています。
$ git --version
上記コマンドでバージョンが確認できたらgitの導入は完了です。
GitHubのアカウント作成
gitにはリモートリポジトルを管理するgitのホスティングサービスがいくつか用意されていて、便利です。
普通はどれかのサービスを使います。
以上の3つが代表的な例です。
それぞれ特徴があるので、自分たちのチームに合わせて使い分けましょう。一番有名なのはGitHubです。
参考
今回はGitHubで管理をします。
以下のリンクを参考にGitHubのアカウントを作成しましょう。
GitHubの登録について
これでgitでのソースコード管理の準備は整いました。
gitコマンド
実際にgitはWindowsならgit bashまたはコマンドプロンプト(コマンドプロンプトを利用する場合はgitインストール時に設定をする必要があります)、macならターミナルを用いてgitコマンドを入力してgitの機能を利用します。
以下のリンクを参考にいくつかコマンドを見てみてください
gitコマンド
非常にコマンドが多くて覚えれない!と思うと思いますが実際に使うのは一部です。
次で実際に使うコマンドを混ぜながら、gitでのバージョン管理を行いましょう!
gitでのバージョン管理
簡単な流れを上記の図に示します。
「一言で言うと」:リポジトリを作成して、コミットを重ねる、ある程度コミットがたまるとプッシュする。
gitはローカル環境に3つの段階にソースファイルが存在する場所が分けられています。
変更を加えたファイルは最初ワークツリーに存在します。
- (ワークツリー)変更を加えたファイルをステージングエリアに追加 (add)
- (ステージングエリア)addされたファイルをローカルリポジトリに登録 (commit)
- (ローカルリポジトリ)コミットで登録された情報をリモートリポジトリに追加(push)
addとcommitは主に連続で行うので、セットと考えてください。
それでは詳しい流れを見せていきます。
1.GitHubでリモートリポジトリ作成(GitHubのページ)
2.コマンドでローカル環境にリポジトリ作成(ターミナル、GitBash)
$: git init
3.管理するフォルダをGitHubのリモートリポジトリに登録(ターミナル、GitBash)
$: git remote add origin https://github.com/[ユーザー名]/[リポジトリ名].git
4.ソースファイルを変更する
5.ファイルの作成/変更/削除など、変更を加えたファイルをステージングエリアに追加(ターミナル、GitBash)
$: git add .
6.addされたファイルをローカルリポジトリに登録(ターミナル、GitBash)
※コミットにはどのようなバージョンなのかを分かりやすくするためにコメントを付けます。
$: git commit -m "コメント"
- 4.→5.→6.の作業を繰り返す(ある程度作業が一区切りついた場合は8.へ)
9.ローカルリポジトリをプッシュしてリモートリポジトリへ反映させる(ターミナル、GitBash)
$: git push -u origin master
GitHub上の自分のリポジトリを確認してみるとソースコードが上がっていますね。
以上の作業で無事にバージョン管理されたソースコードをリモート環境にあげることができました!
以上