Gitは今主流のバージョン管理システムで、ITやWebの現場で導入されている。
Webの現場だと、基本的にはGitで扱えるのがソースコードなど「テキストデータ」で、差分で威力を発揮する性質があるため、プログラミングとかコーディングとかシステム開発寄りのWeb制作現場で導入されている印象。PSDとか画像系のファイルなんかではGitの真価は基本的に発揮できない。
とは言っても、デファクトスタンダードなだけにGitを導入している現場やプロジェクトは増えている傾向が垣間見れるので、Git未経験のWebデザイナーがこっそり独学してみた。この記事はその記録である。
あと、タイトルが昭和生まれ感丸出しだが、そこは絶妙にスルーすること。
とりあえずざっくり用語を覚えないとならない
Git導入の障壁はインストールとかじゃなくて、それ以前に独自用語満載なこと。
日常生活や一般のPCやネットでは聞きなれない用語ばっかりなので、ざっくり意味を頭に入れておく必要がある。
学習にはSoucetreeというWindowsやMacで動くGUIのフリーソフトを使っているので、Sourcetree用語も混ざっているかもしれない。
バージョン管理システム
Gitが主流で今から学んだり導入するなら一択。ファイル更新の差分を記録していって、ゲームで言うセーブポイントみたいなもの。好きな時に好きなセーブポイントを呼び出したり、共同作業している他の人のセーブデータとミックス(Git用語でマージ)したり出来る。
リポジトリ
Gitで管理させているフォルダのこと。1つのPCやサーバーに複数のリポジトリを持つことができる。
ローカルリポジトリ
自分のPC上にあるリポジトリのこと。
リモートリポジトリ
Gitに対応した専用のサーバー上で複数人で共有するリポジトリ。会社とかでGit導入しているって言ったら複数人での作業なので、すなわちリモートリポジトリを扱うということ。
コミット
「結果にコミット」ではなくて、ファイルの変更結果をリポジトリに記録することをGitではコミットという。
ちなみに、RIZAPの「結果にコミット」はキャッチコピー的な和製英語であって正しい英語ではない。RIZAPのせいで混乱しないように。個人的にはRIZAPの株価は結果にコミットしなかった。
.gitignore
リポジトリ内にあるけどGitで管理させないファイルを記録するテキストファイル。何もしないとリポジトリ内にあるファイルは自動的にGitが全て管理してしまう。
ブランチ
作業結果を分岐させた枝分かれのこと。ある地点からリリース版、機能追加版、次期バージョン・・・などと分岐させて作業する時などに使う。ブランチの使い方はチームやプロジェクトによっても違う。
朝食と昼食を兼ね備えた食事のこともブランチというがGitのブランチは別物。
マージ
枝分かれしたブランチを合流、ミックスさせること。
合流させる方法によってファーストフォワード方式、オートマージ方式などがある。基本的に他人が同じ部分を編集してしまった場合は、話し合いか金の力を使って個別に解決しないとならない。
チェリーピック
特定のコミットをピックアップして現在のブランチに適用する操作。日本語で言うと「つまみ食い」「えり好み」という意味。
タグ
そのへんのタグと似たようなもので、コミットにわかりやすいように名前を付けておく機能。「Version1.0」とかが典型的。
リモートリポジトリを使う
Gitの本領発揮というか、会社で使う場合はこっちが想定される。
Gitという技術の総称とは別に、リモートリポジトリの機能を提供するサービスは無償、有償それぞれいくつか存在する。
Backlog
プロジェクト管理ツールでGitのリモートリポジトリも扱える。無料で使えるフリープランもある。日本企業が運営しているので日本語でわかりやすい。
GitHub
初心者がGitと聞くとイメージしてしまうくらいに有名なのがGitHubだが、色々あるリモートリポジトリサービスのうちの一つでしかない。
公開されるリポジトリであれば無料だが、非公開の特定の人だけアクセスできるプライベートリポジトリは有料。・・・だったが、2019年1月から無料プランでもプライベートが選択できるようになった。使えるオープンソース系のソフトとかの置き場所として利用されている場合が多いのは無料だからというのもあるだろう。
BitBucket
Sourcetreeのの開発元が提供しているリモートリポジトリサービス。
プライベートリポジトリが無料で使える。5人以上は課金対象という仕組み。
GitLab
自分でサーバーにインストールして使うようなタイプ。会社によっては導入しているのかもしれない。初心者の個人向けではない。
リモートリポジトリの用語
共同作業だけに用語がわかっていないと意思疎通できないので覚えないとならない。
プッシュ(push)
ローカルリポジトリのコミットとファイルを、リモートリポジトリにアップロードすること。
プル(pull)
リモートリポジトリから変更ファイルと履歴をダウンロードすること。
クローン(clone)
リモートリポジトリの内容を自分のPCにコピーすること。よくGithubからオープンソースのソフトとかをダウンロードしたりするのはクローン。