Gitとは?

2020年3月27日

Gitの思想

Gitとは、ソースコードなどのファイルの変更履歴を管理する分散型バージョン管理システムです。元々は、Linuxのソースコードを効果的に管理するために開発されました。
↓Gitの開発目標です。

– スピード
– シンプルな設計
– ノンリニア開発(数千の並列ブランチ)への強力なサポート
– 完全な分散
– Linux カーネルのような大規模プロジェクトを(スピードとデータサイズで)効率的に取り扱い可能

分散型バージョン管理システムとは?

Gitは 分散型バージョン管理という仕組みを利用しています。
分散型バージョン管理システムとは、ローカル環境に変更履歴を含んだリポジトリの複製が作成される仕組みのことです。全員で共有するリモートブランチと、個人で作成できるローカルブランチがあり、ログも別に管理されるため、各人で開発したもののうち、良質なものを取り込むといった開発が可能となります。

それに対して、分散型でない(=集中型)バージョン管理システムでは、サーバー上にある一つのリポジトリを共有して編集するため、変更の整合性やネットワークの面で問題を抱えていました。

Gitを使えば、ネットワークにつながっていなくてもファイルのバージョン管理ができるよ!

スタートアップではGitが積極的に採用されている

スタートアップではGitが採用されています。その背景には、GitHubの存在があります。GitHubは、Gitのリポジトリをホスティングできるサービスです。GitHubには、リポジトリをホスティングする以外にもエンジニアの開発を促進するさまざまな機能が用意されています。
 代表的な機能は、プルリクエストです。プルリクエストとは、ローカル環境でおこなった変更をリモートリポジトリ(GitHub)にプッシュし、別のブランチに取り込んでくれる(プル)ようお願い(リクエスト)する機能です。これにより、ある人が行った変更を効率的にレビューすることができます。

 スタートアップでは、サービスの開発スピードがめまぐるしいため、プルリクエストの仕組みが重宝します。

他には、プロジェクトのwikiにセットアップ方法・サービスに関わる情報をメモにて共有したり、issueによりタスクを管理することも可能です。
※もちろん、これ以外にもさまざまな機能が充実しています。

GitはCUIで使おう!

キーボード等からの文字列(Character)を入力とするインターフェースです。

CUIの対義語にはGUI(Graphical User Interface)があります。画面上に表示されているボタンやメニューバーなどのグラフィカルなものを入力としたインターフェースです。

Gitの操作は、CUI、GUIのどちらも用意されていますが、CUIでの操作をおすすめします。Macならターミナル、Windowsではコマンドプロンプトですね。(なお、当サイトでは、ターミナルを前提としています)
CUIをおすすめする理由は、

 (1) CUIの方が慣れると高速
 (2) 自分好みにカスタマイズできる

です。GUIだと自分の操作をツールに合わせなければなりません。CUIの場合、ツールを自分に合わせることができます。

良い道具とは、使い手の力量に応じて使いやすくなる道具です。スタートアップで働くのなら、Gitはコマンドラインで操作しましょう。
 次の記事では、Gitの優れている点を紹介します。

Gitについてまだわからないことだらけで心配だよね??
でも大丈夫!入門編を全て読めば、Gitの基本的な使い方はわかるようになるよ!