ノンプロ研で開催されている「技術ライティング講座 第5期」にホストとして参戦中。
この講座では「技術に関する文章を書くための知識とスキルを身につける」をゴールに、全9回+卒業LTという日程で学んでいます。
6/29(水)、8回目の講座が開催されました。
今回もまとめと演習に取り組んでいきます。
講座内容まとめ
8回目のテーマは「GitHubによる共同作業」です。
技術書の執筆を行う際にGitHubを使って編集者とやりとりをする流れを、ハンズオン形式で学びました。
togetter
当日の受講生の皆さんのツイートまとめです。
このようにノンプロ研では受講中のTwitterでのアウトプットを推奨しており、毎回講師の方がまとめを作ってくれています。
講座のアジェンダ
内容
ノンプロ研の技術ライティングでは技術書の執筆を最終ゴールとしており、その際に活用する技術について、前回に引き続き学習してきました。
ひとつめの【GitHubとは】では、前回学んだGitのリポジトリを共有するサービスであるGitHubについて、その概要を学びました。
前回学んだバージョン管理ツールGitは、ローカルPCにあるファイル・フォルダの履歴を管理するための仕組みでした。ローカルで作成したGitリポジトリは「ローカルリポジトリ」と呼ばれます。それに対して今回のGitHubでは、履歴をみんなで共有するための「リモートリポジトリ」を扱います。
リモートリポジトリの操作も基本的にはGitで行います。前回のおさらいになりますが、Gitでできることは以下になります(このうちリモートリポジトリに関するものは下の3つ)。
Gitでできること | 呼び方 | 英語 |
---|---|---|
変更履歴の記録 | コミット | commit |
変更履歴の分岐 | ブランチ | branch |
変更履歴の確認 | ログ | log |
変更履歴の統合 | マージ | merge |
●リモートから複製 | クローン | clone |
●リモートに反映 | プッシュ | push |
●リモートから反映 | プル | pull |
ふたつめの【GitHubによる共同作業】では、GitとGitHubを使って執筆者と編集者がやり取りする作業のイメージを学びました。
前回に引き続き、耳馴染みない用語がたくさん登場しており、今の作業が何なのか迷子になってしまいがちですね。実際の作業時には「今やっていることがどの段階の作業で、ローカルリポジトリ・リモートリポジトリのどちらに関する操作なのか」を一つ一つ確認しながら、繰り返し練習していくのが良いのかなと思います。
みっつめの【共同作業の実践】では、実際にライティング講座用のGitHubリモートリポジトリを使って、執筆者(受講者)が編集者(講師)にレビューをしてもらって執筆する手順を学びました。
具体的なコマンドとGitHub画面での操作手順は、この記事の後半で整理していきます。
今回の講座で使用するコマンド一覧
コマンド | 説明 | 例 |
---|---|---|
cd ディレクトリ名 | ディレクトリを移動する | cd writing-005 |
ls -a | 現在のディレクトリの内容をすべて表示する | ls -a |
code ディレクトリ名 | ディレクトリをエディタで開く | code . |
git version | Gitのバージョンを表示する | git version |
git init | 現在のディレクトリにリポジトリを作成する | git init |
●git clone クローン用URL | リモートリポジトリをクローンする | git clone https://github~ |
git branch ブランチ名 | ブランチを作成する | git branch massa |
git branch | ブランチ一覧を表示する | git branch |
git checkout ブランチ名 | ブランチを切り替える | git checkout massa |
git add ディレクトリ名またはファイル名 | ディレクトリまたはファイルをステージングする | git add . |
git commit | コミットする | git commit |
●git remote | リモートリポジトリを表示する | git remote |
●git push リモート名 ブランチ名 | リモートリポジトリにプッシュする | git push origin massa |
●git pull リモート名 ブランチ名 | リモートリポジトリからプルする | git pull origin main |
git status | リポジトリの状態を確認する | git status |
git merge ブランチ名 | ブランチをマージする | git merge massa |
git log --oneline | コミットの履歴を確認する | git log --oneline |
git log --oneline --graph | コミットの履歴をグラフィカルに表示する | git log --oneline --graph |
※前回講座のコマンド一覧との差分(リモートリポジトリが絡むコマンド)には●を記載しています。
要点整理
今回の演習は講座中に手を動かす写経がメインでした。
この記事では、前回に引き続き操作手順をまとめる形で整理しながらアウトプットしていきます。
□GitHubによる共同作業の流れ
執筆者と編集者で共同作業する流れは以下のようになります。
(1) 編集者による準備作業
- リモートリポジトリを作成する
- 執筆者を招待する
- ローカルリポジトリへのクローンを行う
(2)執筆者の準備作業
- 招待してもらったリモートリポジトリに参加する
- ローカルリポジトリへのクローンを行う
- ローカルリポジトリで作業用ブランチを作成して切り替える
(3)執筆者の執筆作業
- VSCodeを使って作業用ブランチで執筆する
- 変更をステージング&コミット
(4)執筆者の提出作業
- 作業用ブランチをリモートリポジトリへプッシュする
- レビュアーを選択してプルリクエストを送る
(5)編集者の確認作業
- レビューを行う
a. もう少し! → 修正依頼を出して(3)へ
b. オッケー! → 作業用ブランチをメインブランチにマージして(6)へ
(6)執筆者の次の作業
- リモートリポジトリをプルして3へ
執筆者は2までの準備を済ませたら、3〜6の流れを繰り返すルーチンで執筆を行います。
□GitHubでの執筆準備
執筆者の準備作業
まず初めに、編集者にリモートリポジトリに招待してもらい作業前の準備をします。
# ローカルリポジトリへのクローン git clone https://github.com/~ # 作業用ブランチの作成と切り替え git branch massa git chekcout massa
クローン時、GitHubへはじめてアクセスする場合は、ユーザー名とアクセストークンの入力が必要です。
アクセストークンの期限が切れていることもあるので要注意です。
#ノンプロ研 #ライティング講座
— a03🌔 (@a03) 2022年6月29日
アイコンのsetting>Developer settings>personal access token
参考https://t.co/5SaXxYMOhR pic.twitter.com/C59LJnhtHx
Generate new tokenからトークン生成。
— おおさき🥔小さなIT活用で快適な農場づくりを! (@massa_potato) 2022年6月29日
・noteにはわかりやすい名前を(localとか)
・expirationは有効期間:宿題の提出期間を考えて短すぎない期間を(90日とか)
・scopesは「repo」だけチェック
出てくる文字列の羅列がトークン。一度しか表示されないので注意。#ノンプロ研 #ライティング講座
□GitHubでの執筆ルーチン
執筆者の執筆作業
実際に執筆を行う際の流れです。以下の手順を、作業が一区切りつくまで繰り返します。
# カレントディレクトリがバージョン管理したいプロジェクトフォルダであることを確認 # VS Codeでカレントディレクトリを開いて執筆 code . # 更新したらステージングとコミット git add . git commit
コミットのタイミングは「一連の作業の区切り」もしくは「1日の作業の区切り」で行うのが目安です。
また、間違えてコミットした場合は取り消したりせず、修正し直して再度コミットする「前向き」の修正をするようにしましょう。
執筆者の提出作業
執筆が一区切りしてレビューしてもらいたい時に行います。
#作業ブランチをリモートリポジトリにプッシュする
git push origin massa
ブランチをプッシュした後に、GitHubリポジトリの画面上に出ている「Compare & pull request」ボタンからプルリクエストを送ります。
この時、Reviewsからレビュアーを選択し、レビューしてもらう相手にレビュー依頼を送ります。
レビューがOKだったら次の作業に進み、NGだったら再び執筆作業に戻ります。
執筆者の次の作業
レビューが通れば、作業用ブランチをメインブランチにマージしてもらえます。
マージされるのはリモートリポジトリの方なので、ローカルリポジトリの方もリモートの変更を取り込んでおく必要があります。
# リモートリポジトリをプル
git pull origin main
プルするのは作業用ブランチのままで行います(git checkout 〜
でブランチを移動す必要なし)。
この後、再び執筆作業に戻ります。
色々確認
# リポジトリの状態を確認 git status # ブランチ一覧を表示(現在のブランチの確認も) git branch # リモートリポジトリを表示 git remote # コミットの履歴を表示 git log --oneline git log --oneline --graph
おわりに
前回・今回でGitとGitHubについて学んできました。
主に作業手順についてまとめてきましたが、用語に関してはあまりまとめられていない感じです。引き続き学習を続けていきたいです。