はじめに
プログラミングを初めて最初につまずくことの1つがGitだと思います。
わたしは未経験から新卒でとあるwebメディアの企業にエンジニアとして入社した時、Gitの使い方が全くわからず何度も説明してもらいました...><
現場に入った時や企業に入社した時にはGit
と呼ばれるものでソースコード管理を行うことが多いですが、そのGitを使う際にはおきまりの一連の流れというものがあります。
そのため、その流れを覚えておけば、仕事の際に詰まってしまって困ることはほとんどないでしょう。
さらに、その流れは個人開発でもほとんど同じであるため、企業に入る前に自分で勉強している方はこの一連の流れをスムーズに行うことができるようになっておけば仕事しやすくなります!
Gitとは
そもそもgitとは何でしょうか。
Gitは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。
フリー百科事典『ウィキペディア(Wikipedia)』
すなわち、ソースコードが書かれたファイルの状態を好きな時に変更履歴として残しておくことができる、ということです。
だから、一度変更したファイルを過去の状態に戻したり、他人が編集したファイルを上書きすることなく、ソースコードが書かれたファイルを保存しておくことができるのです。
googleスプレッドシートを使っている人であれば、変更した際に、名前をつけてその履歴を管理したりしますよね。そして、誰かが間違って変更した際には、その名前をつけた(つけてなくても良い)に戻して正しい状態にすることがあると思います。
Gitもそれと同じことを行っているのです。
知っておきたい用語
リポジトリ
ソースコードが入ったファイルやディレクトリの状態を記録している場所のことです。ファイルの変更履歴として管理されており、
変更履歴を管理したいディレクトリをリポジトリの管理下に置くと、そのディレクトリの変更履歴を記録することができます。
たいていの場合、プロジェクト単位であったり、アプリケーション(1つのサービス)単位であることが多いです。
ブランチ
ブランチは変更履歴の流れを分岐して記録しておくためのものになります。
企業に入って開発する場合、ほとんどが複数人での開発になります。それぞれが機能ごとなど、同時並行で異なる開発を行います。
分岐したブランチは他のブランチの影響を受けないため、開発する時には大元の変更履歴が記録されている主要ブランチ(たいていはmasterブランチ)から新たなブランチを作成して開発をします。
リモートリポジトリ
GithubやBitBucketなどの専用のサーバーに存在しているリポジトリのことです。
複数人で共有することができます。
このリモートリポジトリに存在しているブランチのことをリモートブランチ
と呼びます。
ローカルリポジトリ
自分のパソコンに存在しているリポジトリのことです。
自分のパソコンにあるため、誰かと共有したりはすることができません。
そのため、自分が開発した変更内容をリモートリポジトリに移動させる必要があります。
このローカルリポジトリに存在しているブランチのことをローカルブランチ
と呼びます。
ではここから実際の業務で行うことになるであろう手順を見ていきましょう!
Gitの流れ
1. git clone
企業に入って開発する場合、新規のリポジトリを作成することはあまりなく、すでにリポジトリが存在することが多いと思います。
そのため、そのすでに存在しているリポジトリをローカルのパソコンに持ってくることで開発を始めなければなりません。
使用するコマンド
$ git clone {リポジトリのURL}
2. git pull
git cloneしてきた際はそのリポジトリの内容は最新になっているためこの手順は省いていいのですが、その後、誰かがmasterブランチなどの主要なブランチを更新した際には自分の手元のパソコンにあるmasterブランチの内容を最新にしなければなりません。
その際に使用するのがこのコマンドになります。
masterブランチ最新化のためのコマンドと思っても最初はいいかと思います。
使用するコマンド
$ git pull master
3. git checkout -b {ブランチ名}
1と2の手順で手元のリポジトリを最新にしたらやっと開発する準備が整いました。
最新化されたmasterブランチから自分が開発するための新たなブランチを作成しましょう。このブランチの作成を行うことで、他の人とかぶることなく開発を行うことができます。
ブランチ名にはfeature/機能名
とすることが多いので迷ったらこれをブランチ名につけてみてはいかがでしょうか^^
ちなみにこのコマンドはブランチを切り替える $ git checkout
とブランチを作成する $ git branch
を組み合わせたものとなっています。
そのため、ブランチを作成して、その作成したブランチに切り替えることが一挙にできるのです。
使用するコマンド
$ git checkout -b {ブランチ名}
4. git add
3の手順で切り替えたブランチで開発したあとは、その変更を記録していきましょう。
この手順ではファイルをstaged
という状態にすることでそのファイルを追跡を開始することができます。このstaged
という状態にすることで次のcommitをすることができるようになります。
使用するコマンド
$ git add {変更したファイル名}
※ 変更したファイルが複数あり、全てをstagedにする場合は $ git add .(ドット)
とする
5. git commit
そしてstagedになったファイルをコミットしていきましょう。
最初はこのcommitがなんなのかさっぱりわからないと思います。
簡単に言うと、
変更履歴を名前をつけて保存すること
だと思ってください。
そのため、コミットには名前をつけることができます。
実際にどんな変更を行ったのか、なんのためにその変更を行ったのかなどを簡単にコメントとして書きます。
どんな名前にするかなどは企業にもよりますし、他の方がどんなコミットメッセージにすればいいか書いていますので調べてみてください。
使用するコマンド
$ git commit -m "ここにコミットメッセージを書く"
6. git push
コミットを行って変更履歴を手元のパソコンに記録した後は、その変更履歴をリモートリポジトリに保存しましょう。
今までの変更履歴は手元のパソコンにあるので、他の人たちのリポジトリに反映させることができません。そのため、リモートリポジトリに反映して、他の人たちはその変更履歴をgit pull
して取り込むことで共有することができます。
使用するコマンド
$ git push
7. pushした後
pushした後はプルリクエストというものを出して、自分の開発したものが正しいか、もっといいコーディングの仕方はないか、など他の人からのレビューを受けます。
プルリクエストの書き方などはまた後日まとめたいと思います。
そして、他の人がこのコードで大丈夫だ、となれば開発していた作成ブランチをmasterブランチにマージします。
マージすることで主要ブランチに自分の開発した内容が取り込まれます。
まとめ
いかがだったでしょうか?
企業での開発におけるGitの流れというものは以上のような7ステップになっています。
この流れを覚えてしまえばほとんど困ることはないでしょう。
なので、自分の勉強時にはぜひGitを使って体で覚えるまで繰り返していってほしいと思います!!!