Gitって聞いたことがあるけど、何だかよくわからない
聞いた事無い言葉も多いしなんだかよくわからないし難しそう
という疑問を解決する記事となっています。
この記事の内容
・Gitとは何か
・Gitでできる事
・Gitの各用語について
Gitって馴染みがないとカタカナや聞いた事が無い言葉も多いですし、なんだかよく分からないですよね。
なのでこの記事では例えなどを用いて分かりやすくGitとは何かについて解説出来ればと思います。
Gitとは
Gitとは、分散型バージョン管理システムです。
といっても分かりにくいのですが、ざっくりいうとファイルのバージョン管理が簡単にできるツールといえます。
バージョンとはそのファイルをアップデートしたり更新した時に変化するものです。
パソコンやスマートフォンでも最新バージョンにアップデートするように通知が来たりしますよね。
ただ、アップデートしてしまうと基本的には、古いバージョンに戻すことはできませんし、するとしても手間がかかります。
しかし、Gitで管理しているファイルであれば、コンピューター上でファイルの編集履歴を管理できるので、編集前のファイルを残したまま、新しく編集したファイルを保存することができます。
なので古いバージョンから新しいバージョンまでの管理が簡単です。
なぜエンジニアやWEBデザイナーがGitを使うかと言うと、エンジニアやデザイナーにとっては、多くのコードやデザインを編集した上で何か不具合が起きたときに、元のバージョンへ戻すことは日常茶飯事なのです。
かといって、ひとつひとつコードの編集の度に古いバージョンの日付や時刻ををつけて保存して、また新しい作業をするようなことをしていては、時間はかかりますし、人的ミスも増えることは、言うまでもありません。
そういった作業を無駄なく、効率的に行うためのツールがGitです。
Gitで出来ること
Gitが分散型バージョン管理システムと呼ばれる所以は、以下のような特徴があるからです。
・古いバージョンに簡単に戻せる
・新旧のファイルを一元管理できる
・編集した履歴を複数人で共有できる
・複数人で修正した部分を一つに統合できる
以上の特徴からも、多くの開発者に利用されているツールかだということはお分かりいただけると思います。
Gitを使う事で複数人で開発を行ったり、デバッグ作業と呼ばれるバグを修正する作業を行うときにミスを減らし効率化できる仕組みを構築する事が出来るんですね。
そして、GitにはCUIとGUIの2種類が存在します。
まずCUIが何かを見てみましょう。
CUIとは
CUI(Character-based User Interface)とは、キーボードに入力されるコマンドによって、オペレーティング・システム上の操作を行う、ユーザーインターフェースの事を言う。コンピュータユーザーに対しての情報が、文字で表示される。
引用元:ITトレンド
小難しい言葉が並んでいますが、この画像のように黒い画面に打ち込んでいくものをCUIと呼びます。
Macなどではターミナルと呼ばれますね。
ではGUIとは何でしょうか。
GUIとは
GUIとは、グラフィカルユーザインターフェース(Graphical User Interface)の略語。コンピュータへ出す命令や指示等を、ユーザが画面上で視覚的に捉えて行動を指定できるもので、それまで主流であった命令文を入力して実行する方式(CUI)に比べ、直感的に操作できるのが特長。
引用元:ITトレンド
こちらも分かりづらいですが、要は皆さんが普段使っているアプリケーションと同じように視覚的、かつ直感的に操作できるソフトの事をGUIと言います。
通常GitはCUIを用いる事が多いですが、GUIのソフトウェアも人気でよく使われています。
それがSourceTreeと呼ばれるソフトウェアです。
SourceTreeとは
Source Treeとはなにかと聞かれて一言で答えるならばGitを簡単に使えるようにしたツールでGitの理解も簡単にできる優れもの、アプリケーションです。
全てコマンドで操作していくCUI形式ではなく、視覚的に操作していくGUI形式でGitを使えるツールです。
本来GitはCUIを使うのですが、SourceTreeはGUIというもので、よりインターフェース的にも見やすく、扱いやすいアプリケーションとなっています。
画像のようにまさにアプリケーションという見た目で、扱いやすそうですよね。
CUIが苦手な方でもSourcetreeであれば気軽にGitに触れる事が出来ると思います。
Gitの各用語
ではGitの各用語について分かりやすく説明します。
リポジトリ
リポジトリとは、作業ファイルを収納しておくフォルダ、貯蔵庫のことです。
フォルダは特に馴染みがあって分かりやすい例えかと思います。
クローン
BitBucketなどからコピーしたリポジトリを自身のローカルに移すことです。
よく使う用語で例えると「ダウンロード」に近いイメージです。
フォーク
他者が公開しているリポジトリを自身のアカウントにコピーすること→オンライン上の相手のアカウントから自身のオンライン上のアカウントにコピーするイメージです。
データをオンライン上で自分のアカウントにコピーする事ですね。
プッシュ
ローカルリポジトリで起きた変更内容をリモートリポジトリに反映させる作業のことです。
「アップロード」がイメージしやすい例えかと思います。
コミット
ローカルで行った作業をローカルリポジトリに反映させること→これはプッシュと混合しそうなのですが、自分のパソコンにあるデータ(ローカル)からGitにアップロードするイメージです。
ローカルという言葉はWEB制作の現場では氾濫しており、使われ方は色々ですが、ここでは自分のパソコンの中にあるデータをGitの自分のアカウントにアップロードするイメージで覚えたらと思います。
プル
他者がプッシュしたリポジトリの内容をリモートリポジトリから自身のローカルリポジトリに反映させること→プッシュの逆です。
ブランチ
並行作業する際に使用する。ブランチを使う事でメインのリポジトリに影響を与える事なく、編集などの作業を他者と同時進行で行えます。
後々データを統合するときは以下のマージを使用します。
マージ
ブランチで並行作業したファイルをメインのリポジトリに統合することです。
フェッチ
プルが無いか確認すること。リモートリポジトリにプル要素が無いかチェックするために使用します。
例えるなら「リロード」がしっくり来るかと思います。
終わりに
いかがでしたでしょうか。
自身の体験談ですが、Gitは「使ってみて分かること」が大半だと思います。
最初はよくわからない横文字が多いので、混乱したり、各用語の違いがわからなかったりしますが、実務で使用することで自然と分かるようになりますし、非常に便利なツールであることが実感できると思います。
この記事を通じて少しでもGitに対する苦手意識が払拭できたり理解が深まったら嬉しいです。
それではまた次の記事でお会いしましょう。