この記事について
⭐️こんな方に読んでほしい
ITスクールのRareTECHで勉強している初心者が、ハッカソンに参加しています。
ハッカソンについてはこちら→「IT未経験者がハッカソンに参加してみた」
これからハッカソンに参加しようと思っている方、ITの勉強を始めたばかりの方が参考にしていただけたら嬉しいです。
チーム開発に必須なGItHubと仲良くなりたい!
チーム開発をする上で欠かせないのがGitHubです。
ハッカソン参加前に、RareTECHで操作練習のイベントがあり、参加して少し触ってみたけどまだまだ顔見知り状態・・・。GitHubともっと仲良くなりたいと思い、色々触ってみました。
今回のハッカソンで使用してその便利さに気づくことができました。
Gitとは
個々のコンピュータ(ローカル環境)でソースコードのバージョンを管理するための「ツール」です。
GitHubとは
GitHubは、Gitで管理されているプロジェクトをインターネット上で保存・共有するための「Webホスティングサービス」です。複数人で共同開発を行う際には、GitHubを介して互いのソースコードを共有し、マージ(統合)します。
GitHubのOrganizationsって何?
ハッカソン「入門」コースは運営から様々なヒントをもらえます。その中で以下がありました。
- GitHubのアカウント作成
- Organizationsを作成
- リポジトリを作成
GitHubのOrganizationsに参加すると、チームの共通のリポジトリで共同作業を行うことができます。
つまり、GitHubのリモートリポジトリでチームで開発を進めることできるとっても便利な機能です。
しかも、無料で使えることができます!ありがたいですね!
Organizationsのロールって何?
GitHubではOrganizationsのロール(役割)を設定することができます。
ロールとは、個人やチームに与えられる権限(特定の操作を実行する能力)のことです。
以下のロールがあります。
Owners : 全ての管理のアクセス権があります。
Members:メンバーがOrganizationに参加したら、デフォルトで設定されるロールです。メンバーにはリポジトリやプロジェクトの作成権限を含む、いくつかの権限が付与されています。
Moderators : モデレーターと言ったら議論や会議、オンラインコミュニティ、ライブ配信などにおいて、秩序と円滑な進行を保つための調整役を担う人物のことを指します。OrganizationsのModeratorsはMemberの権限に加え、非メンバーのコメントの投稿のブロックやブロック解除、交流制限の設定などの権限が与えられます。
Billing managers : 請求情報を表示および編集したり、スポンサーアカウントを管理し、組織のスポンサーシップを運営する権限が与えられます。
Security managers : 組織内のすべてのリポジトリに対する読み取り権限だけでなく、セキュリティアラートの表示や組織全体のコードセキュリティの設定を管理できる組織メンバーです。
各ロールのアクセス権については、GitHubドキュメントのPermissions for organization rolesから確認できます。
プルリクエストってどうやるの??プルリクエストテンプレートの使用方法
GitHubの準備を行い、練習で何回かプルリクエストを出してみたときに気づきました。
プルリクエストの説明の記述がすごく面倒・・・。「どうやって書けばいいんだっけ?」「どのような内容にすればいいんだっけ?」と手が止まってしまいます。
手が止まる時間は2〜3分程度ですけど、積み重なればすごく無駄な時間です。
毎回止まってしまうのもストレスでした・・・。
何かいい案ないかな〜と思って調べたら、プルリクエストテンプレートという便利なものがあるらしい、と知って、取り入れてみました。
GitHub公式ドキュメントには下記のように書いてありました。
GitHub公式ドキュメントより抜粋
"Issue及びプルリクエストのテンプレートを使えば、コントリビューターがリポジトリでIssuleやプルリクエストをオープンする際に含めてほしい情報をカスタマイズし、標準化できます。"
プルリクエストテンプレートを使うと何が嬉しいのかというと、プルリクエストを投げる際に勝手に記載するフォーマットを適用してくれます。
「GitHubドキュメント:リポジトリ用のプルリクエストテンプレートの作成」の通りにpull_request_template.mdを作成します。
以下のどこかの場所におけば、GitHubの方で自動的に読み込んでくれるみたいです。
- ルートディレクトリ直下の場合→pull_request_template.md
- docs ディレクトリの場合→docs/pull_request_template.md
- 非表示のディレクトリに格納したい場合→.github/pull_request_template.md
ファイルを作ったら、以下の内容を記載してみました。
### 概要
このPull Requestの目的を簡潔に説明してください。
### 変更内容
- 変更点1
- 変更点2
- 変更点3
### 関連Issue
- Issue番号(例: #123)
### 関連する問題(必要に応じて)
### スクリーンショット(必要に応じて)
プルリクエストテンプレートの設定ができると、Add a descriptionに先ほど記載した内容が自動で出てきます。プルリクエストの説明の記載を統一することで、レビューする人がこのプルリクエストはどんな変更があるのか把握がしやすくなります。
Issueテンプレートを作成してみる
タスクの管理はGitHubのIssueを使ってみよう、と決めたため、Issueテンプレートも作成してみました。
公式の「GitHubドキュメント:リポジトリ用に Issue テンプレートを設定する」から手順通りに作成。
Issuesの"New Issue"から作成します。
下記の画像のようなモーダルが出ます。
(💡編集済ですので、デフォルトの記載とは違っています。)
Issueとは
GitHubのOrganizationsで使用できる機能です。リポジトリにIssueを作成して、チームの作業の計画、議論、追跡を行うことができます。 issue はすぐに作成でき、さまざまな方法で使用できます。
テンプレートの中身は、こんな感じにしてみました。
### 管理番号
<!--必須項目-->
### 概要
### 目的・内容
### 関連Issue
- Issue番号(例: #123)(必要に応じて)
### 関連する問題(必要に応じて)
### スクリーンショット(必要に応じて)
Issueテンプレートが設定できたら、New Issueを作成すると、下記の画像のフォーマットが自動的に適用になります。
Issueからブランチの作成をしてみる
直接Issueのページから作業のためのブランチを作成し、すぐに作業を開始できる方法があります。
1、Issueを作成した後、[Create a branch](青文字、右下にあります)をクリック
2、Branch name(feature ブランチの名前)、Branch source を「branch」にする。What’s next?の「Checkout locally」にチェックを入れて、[Create branch]をクリックする。
3、GitHubから次のアクションが出るので、コマンドをコピーして、ターミナルで実行する。

4、ローカルリポジトリで実行。
5、「16-管理番号テスト」という名前のfeatureブランチが作成される。
branchに日本語を使うと、"The head ref may contain hidden characters"という注意が出たので、branchnameは日本語は使用しないようがベターなようです。
まとめ
チーム開発で使いたい、Organizationsやロールについて、プルリクエストテンプレート、IssueテンプレートやIssueからbranchの作成を実際にやってみることができました。
GitHubには他にもたくさんの機能があるみたいなので、ちょっとずつ触って慣れていきたいです。
参考記事一覧
GitHubドキュメント





