[技術ライティング講座]講座の振り返り#8
ホッタです。
2024年1月から、ノンプロ研で技術ライティング講座を受講しています。3月8日(金)に第8回目の講義がありました。その内容について印象に残ったことや学びになったことを書いていきます。
今回のテーマは「GitHubによる共同作業」です。先週のGitに引き続き、技術同人誌を書くためのツールの使い方について学びました。
講座第8回のTogetterまとめはこちら↓↓↓
GitHubとは
最小にGitHubとは何か、について学びました。GitHubとはソフトウェア開発プラットフォームで、Gitのリポジトリを他の人と共有するサービスです。
GitとGitHubは別物です。GitはローカルPCで動作するバージョン管理ツールであり、GitHubはGitリポジトリをインターネット上で共有するものです。別物ですが、まったく関係ないというほどでもないですね。
ここで前回のおさらいです。Gitは、以下の機能がありました。
変更履歴の記録(コミット: commit)
変更履歴の分岐(ブランチ: branch)
変更履歴の確認(ログ: log)
変更履歴の統合(マージ: merge)
この変更履歴はリポジトリといって、自分のローカルPC内に保存されます。これをインターネット上で共有できるのがGitHubです。これにより、複数人による共同作業を行えます。この仕組みを図解すると以下のようになります。
ローカルPCに保存されている変更履歴をローカルリポジトリ、GitHubで共有されている変更履歴をリモートリポジトリといいます。
ローカルとリモートのやり取りは以下のように行います。具体的にはこのあとの「GitHubによる共同作業」で実際にやっていきます。
リモートから複製(クローン: clone)
リモートに反映(プッシュ: push)
リモートから反映(プル: pull)
GitHubの機能のまとめは以下です。
GitHubによる共同作業
次に、GitHubによる共同作業です。講座内で実際に手を動かしながら学んでいきます。
事前課題ですでにGitHubのアカウントは取得していて、リモートリポジトリへの招待も済んでいるところから始めます。
まずはじめに、講座演習用のリモートリポジトリをローカルリポジトリに複製(クローン)します。クローンをすると、ローカルPCに新規ディレクトリが作成され、その下にリポジトリが作成されます。これでGitでバージョン管理可能な状態になります。
次にローカルで自分の作業用のブランチを作ります(git branch ブランチ名)。講座では同じリモートリポジトリを使うので、リポジトリ名は自分の名前にするなど、他の人とかぶらないようにします。
ここからは前回やったGitと同じ流れです。作業用のブランチに切り替え、フォルダやファイルを作成します。作成が完了したらステージング(git add)とコミット(git commit)をして、履歴を記録します。
最後に、自分のブランチをリモートリポジトリへプッシュ(git push)します。まずは(git remote)を実行してリモートリポジトリ名を調べます。リモートリポジトリ名のデフォルトは「origin」です。次に、そのリモートリポジトリに自分のブランチをプッシュします。(git push origin ブランチ名)
これでブランチの更新内容をGitHub上のリモートリポジトリに反映できました。ただし、これだけだと編集者(レビュアー)が反映したことに気づかないので、プルリクエストを送る必要があります。
プルリクエストはGitHub(ブラウザ)上で行います。手順は以下です。
これでレビュアーを設定すると通知が行くので、文書をレビューしてもらえます。
レビューでフィードバックがある場合、レビュアーがGitHubで修正依頼をするとメールが来ます。ローカルブランチのファイルを修正して、再度ステージング・コミット・プッシュを繰り返します。
レビュー実施期間中の修正の際、プッシュすればレビュアーにメールが送られるようになっていますので、2回目以降はプルリクエストは不要です。
これを繰り返し、OKになったらレビュアーが変更内容をリモートリポジトリにマージしてプルリクエストをクローズします。これでレビューが完了します。
マージされたリモートリポジトリは、プルすることでローカルに取り込むことができます。この場合はローカルのmainブランチに取り込みます。(git pull origin main)
作業の流れは以下のようになります。前回Gitでブランチを分けて作業した時と比較してみました。
最後に講座スライドについていたGitとGitHubの組み合わせでよく使うコマンド一覧を載せておきます。
前回からリモート関係のコマンドが追加されています。これも何回か使って慣れていく必要があります。今回の宿題は上の表のようなGitHubによる共同作業になっていますので、実際にやりながら慣れていきたいと思います。
まあ技術同人誌書くようになったら何度でもやることになるんでしょうけどね。。
まとめ
今回はGitHubによる共同作業について学びました。今回はライティング講座ということで、執筆に特化した内容になっていますが、GitHubはプロジェクトやコードの管理でも使うツールなので、そのベースとなる知識も習得できました。
ノンプログラマーがGitHubを使う機会はあまりないのですが、今回せっかく習ったので、プログラミングの共同作業でもGitHub使ってみたいですね。Python Nightとかでやってみてもおもしろいかも?
今回は以上です。最後まで読んでいただき、ありがとうございました。