「Gitってよく聞くけどいまいちどういったものか分からない」
「仕事でGitを使うことになったけど機能がたくさんあって意味が分からない」
こういったお悩みを抱えている方は多いのではないでしょうか?
私も初めてGitを触った際は何のためにあるのかさえ分かりませんでした。
しかし仕事で結構な頻度で使用するため、自然と覚えていくことができたので今回はそんなGitについて私なりに初心者の方でも理解しやすいようにまとめてみました。
ぜひご活用ください。
そもそもGitとは何か?
ではまずGitとは何のためにあるのかについて解説していきます。
仕事でソフト開発などでプログラムを使用していると書いたコードを他の人と共有するという機会があります。
というか一人きりで開発するという方が珍しいため、基本は複数名での開発となってきます。
そういった際に自分の書いたコードを他の人に渡したり、他の人が書いたコードが自分の方でも必要になったりしてきます。
またただ共有するだけでなく、過去に書いたコードを引っ張りだしてくることも可能です。
今の最新のコードはこうなっているけど、やっぱり仕様変更などで過去のこのコードに戻したいとなった際に簡単にそのコードを引っ張りだしてくることが可能です。
このようにソフト開発を複数名以上で実施する際には必ずと言っていいほど、必要になってくるのがGitという機能です。
そしてこのGitの機能を提供しているウェブサービスとしてGitHubやGitLabというものがあります。
これらのウェブサービスを使用することで視覚的にGitの機能を扱うことができるので大変使用しやすいものとなっています。
因みにGitの方はコマンドを使用して扱うものとなっており、その機能を視覚的に分かりやすく表現したものがGitHubやGitLabなどとなっています。
Gitの機能集
ではそんなソフト開発には欠かせないGitにはたくさんの機能や用語が存在しています。
それについて私なりにかみ砕いて下記の用語や機能について解説していきます。
- リポジトリ
- クローン
- コミット
- プル
- プッシュ
- ブランチ
- スイッチ
- マージ
リポジトリ
ではまずリポジトリについて解説していきます。
リポジトリにはリモートリポジトリとローカルリポジトリというものがあります。
リモートリポジトリは書いたコードなどを共有する場所と考えていただければ大丈夫です。
そしてローカルリポジトリは読んで字のごとく自分のPC上などの自分がコードを書いて保存しておく場所を言います。
つまり普段ローカルリポジトリでソフト修正や作成をして、それを他の人に共有したいとなったらリモートリポジトリにアップするという感じです。
ローカルリポジトリ上でしたらいくら修正しても後述するコミット、プッシュをしない限りリモートリポジトリに反映されることはありません。
クローン
次に解説するのはクローンです。
こちらはリモートリポジトリ上にあるコードやファイル類をローカルリポジトリに持ってくるのに使用する機能です。
持ってくるといってもリモートリポジトリからコピーしてくる感じです。
またクローンしたソース類をいくら修正してもリモートリポジトリに反映されることはありません。
こちらも後述するコミット、プッシュをしない限りいくらでも変え放題です。
コミット
次はコミットです。
とあるCMでよく口にされますが、それとは別物です。
こちらのコミットはいわば保存のような機能です。
通常のファイルでしたらCtrl+Sなどで上書き保存をすることができますが、Gitではファイルを保存した後にコミットをすることで正式にリポジトリ上に保存が確定されたことになります。
これをしないとリモートリポジトリ上へは反映することができないので、他の人とファイルを共有したくてリモートリポジトリへアップする場合は必ず実施しないといけない動作となります。
プル
続いてはプルについてです。
こちらは先ほど解説したクローンと似た機能で、リモートリポジトリからファイルをローカルリポジトリへ持ってくるものです。
違いとしては、クローンはローカルリポジトリ上にまだそのファイル自体がない状態で使用し、プルはすでにそのファイルはあるが、他の人が修正を加えているのでローカルリポジトリ上のファイルも更新したいとなった際に使用します。
イメージとしてはクローンがまだ入れていないソフトをインストールするというもので、プルは最新のソフトへアップグレイドするといった感じです。
プッシュ
続いてはプッシュです。
こちらはローカルリポジトリ上のファイルをリモートリポジトリへアップするために機能です。
先ほど紹介いたしました、コミット実施後に使用する機能です。
これをすることで自分が修正したファイルをリモートリポジトリへアップロードすることで、他の人とファイルの共有をすることができます。
ブランチ
次に紹介する言葉はブランチです。
こちは一言で言うと枝分かれさせるための機能です。
言葉では説明しにくいので、実際の利用場所を基に解説していきます。
例えばAチーム、Bチーム、Cチームの3チームがとあるソフトを開発していたとします。
Aチームで開発している内容は直近でリリースするのに必要な機能が中心となっています。
それに対してBチームはAチームリリース後しばらくしてからリリースする内容で、Cチームに関してはBチームリリース後さらにあとになってからリリースするための内容を開発しています。
イメージとしてはAチームがリリースしたソフトをBチーム、Cチームが更新を加えるという感じです。
時系列的には下記のような感じです。
こうした場合Aチームはともかく、Bチーム、Cチームは大本となるAチームと同様のソフトを基に更新用のソフトを開発する必要があります。
こういった際に使用するのがブランチです。
Aチームが開発しているソフトから、枝分かれさしてBチーム用のブランチ、さらにそこから枝分かれさせたCチーム用のブランチというように分けていきます。
大本はAチームのソースから発生していますが、B、Cチームで開発している機能はAチームの開発しているソフトには入っていません。
このようにブランチを新しく作成することで、開発中の機能が混ざり合うことを防ぐことができます。
スイッチ
次スイッチについて解説していきます。
これは現在使用しているブランチを違うブランチに変更する際に使用する機能です。
先ほどのブランチの所で出した例を基に解説しますと、チームAでのソフト開発をしているため、ローカルリポジトリにはリームAで開発しているソフト用のブランチを使用しています。
しかし途中でチームBの開発を手伝ってほしいと上司から指示があった為、ローカルリポジトリのブランチをチームB用のモノに変更する必要が生じました。
ここで使用するのがスイッチとなります。
マージ
最後に解説するのはマージです。
これは枝分かれしたブランチ同志を結合するような機能を有しています。
先ほどの例を基にまた解説していきます。
チームAでの開発用のブランチが枝分かれしてチームB、C用のブランチが作られたわけですが、枝分かれした後もチームAの開発は進められています。
そのため枝分けれしたときには搭載されていたなかった機能がチームA用のブランチには入ってくることがあります。
その場合その機能はチームBやCでも必要になってきます。
こういう時に使用するのがマージというもので、チームAで新しく追加した機能をチームBやCのブランチにも追加することができます。
まとめ
今回はGitについて私が知っていることをまとめてみました。
- そもそもGitとは何か?
- Gitの機能集
クローンやプル、プッシュといった多くの機能があるGitですが、一度覚えてしまえばそこまで難しいものではありません。
初めて触るとなった際には機能がたくさんあり、聞いたこともない言葉がたくさん出てきますが、何度も使用しているうちに段々と理解することができるはずです。
私もはじめのころは何度もどういった機能であるのかということを調べていましたが、今では特に考えることもなく使用できています。
そういった初心者の方の助けに少しでもなればと思い、今回はGitの機能類について解説してきました。
以上で今回の解説は終了となります。
コメント