#GitHubと14の用語
- コミット
- コミットメッセージ
- マスターブランチ
- ブランチ
- 機能ブランチ
- リリースブランチ
- マージ
- タグ
- チェックアウト
- プルリクエスト
- 問題
- wiki
- クローン
- フォーク
GitHubの用語は小難しい英語だらけだ。
GitHubはプロジェクトのバージョンや履歴を管理できる基盤であるが、用語のイメージがし辛い。なぜならこれらを日本語に翻訳すると誤解してしまうからだ。ここでGitとGitHubの違いを理解しておいてほしい。
このページを読み終えたときにはしっかりと記憶に残っているはずだ。
###コミット(Commit)
みなさんはスクリーンショットをご存知ですか。実はコミットはこれと同じことです。なぜならスクリーンショットは、全体を撮影し日付や名前を付けます。それと同様にコミットはプロジェクト全体を保存し理由を付けます。
具体的には、
例えば「この変更をコミットして、GitHubに保存しておこう」と言います。
###コミットメッセージ(Commit message)
ファイルを編集し、その1週間後に作業に戻ると「なぜ先週に編集したんだろう」と思ったことはないですか。「コメントを残したり付箋に端書しとけばよかった」なんてことになったことはありませんか。
コミットメッセージは、このコメントや付箋と同じです。
具体的には、振り返ったときになぜ実装したのかを再確認できます。
例えば「田中さんのコミットメッセージのおかげで次の指針について理解できましたよ」と言います。
###ブランチ(branch)
ブランチは日本語にすると枝や分岐を意味します。枝分かれをイメージするとなにかに似ていませんか。
ブランチはディレクトリ(フォルダ)と同系です。しかし、厳密には機能ごとに分けられたコミットの集まりを表しています。
つまり新しい機能を作成するときは、そのブランチを新たに作成することになります。
例えば「新しい検索機能を実装するためにブランチを作ろう」と言います。
###マスターブランチ(master branch)
新しいGitプロジェクトを作成すると、必ずmasterと言うブランチがデフォルトになります。
このmasterは成果物の一番トップになります。例えば「masterに直接コミットするなよ」と言います。
###機能ブランチ(feature or topic branch)
新しい機能の一部を作成するときは、その機能のブランチ上で作業するでしょう。
これは機能ブランチと言います。例えば「かなりたくさんの機能ブランチがあるな。1つずつ機能を実装していこう」と言います。
###リリースブランチ(release branch)
もしあなたのソフトウェアが古いバージョンをサポートしているなら、更新や修正のためにリリースブランチを作成する必要があるでしょう。
技術的には機能ブランチとリリースブランチに変わりはありません。しかし、区別することはあなたのチームのプロジェクトについての話が早く進むでしょう。
例えば「全てのリリースブランチのセキュリティバグを治そう」と言います。
###マージ(merge)
マージは様々なブランチを1つにまとめたり、他のブランチに組み込んだりする方法です。一般的にはマスターブランチに機能ブランチをマージするでしょう。例えば「アカウントの機能の実装が終わったよ。masterブランチに君の機能とマージできるかな?」と言います。
###タグ(tag)
タグは特別なコミット(履歴)を参照したりするときに使います。タグは成果物をリリースする際の文書に多く使われます。どのバージョンのコードが成果物になったかを確認したり区別したりできます。
例えば「このリリースにタグを付けよう。成果物にプッシュしよう」と言います。
###チェックアウト(checkout)
チェックアウトはプロジェクトのコミット(履歴)の様々なバージョンを調べることです。履歴ごとにファイルを確認します。一般的にはブランチを調べて全ての作業が終わったことを確認できます。どんなコミットでも調べることができます。例えば「最新リリースのタグを調べられる?成果物にバグがあって、直してほしいんです」と言います。
###プルリクエスト(pull request)
本来プルリクエストはあなたがブランチ上で編集し終えた作業をレビューし、マスターにマージします。実装可能な機能について議論が始まる段階でプルリクエストは使用されます。例えば「新しい投票の機能のためにプルリクエストをしよう。他のチームにも知らせたいからね」と言います。
###問題(issue)
GitHubは問題を議論したりバグ追跡する機能です。例えば「ログイン機能がiPhoneでできないんだ。GitHubの文書にバグをレプリケートしておいてくれない?」と言います。
###Wiki
本来Ward Cunninghamによって開発されたWikiは互いを簡単にリンクさせウェブページを手軽に作成するツールです。GitHubプロジェクトには文書を書くためにWikiを使うことがあります。
例えば「多様なサーバー上で実行するプロジェクトの設定の仕方についてwikiのページに追記しておいてくれない?」と言います。
###クローン(Clone)
よくGitHubからプロジェクトのコピーをダウンロードしたいことがあります。クローンはあなたのコンピュータにレポジトリをコピーしてダウンロードすることです。ローカル環境で作業ができます。例えば「バグ直したいから、レポ(repo)をクローンできる?できれば、今夜までにGitHubに修正版のバックアップをプッシュしておいてくれない?」と言います。
###フォーク(Fork)
プロジェクトを直接変更する権限が必要ないときがあります。それは見知らぬ人が書いたオープンソースのプロジェクトや全然知らない会社のグループが書いたプロジェクトなどです。
あなたがプロジェクトの変更を提出したい場合、まずGitHub上のユーザアカウントでプロジェクトをコピーする必要があります。この流れを「レポジトリをフォークする」と言います。クローンして編集してプルリクエストで元のプロジェクトに提出します。例えば「君がホームページをどうやって書き直したのか見てみたいんだ。レポ(repo)をフォークして君の変更内容をプルリクエストで提出してくれないか」
全ての専門用語に圧倒されても気にしないで下さい。自分のプロジェクトを作成し始めればもっともっとたくさん理解できるでしょう!次の章では、様々なGitHubの要素やどのようにプロジェクトの進行を確かめるのかを見ていきましょう。