共有されたリポジトリにプッシュする(チケット駆動開発)
共有されたリポジトリにプッシュするときの注意点
ブランチを切る (git branch, git switch) の「ブランチを使うもう一つの効果」で説明した通り、ブランチのコミットの並び順は1つです。このことから、あるリモートにあるブランチにプッシュするブランチは1つのほうがよいのです。ブランチ名の重複を避けつつプッシュし、みんなで共有するべきブランチはダウンロードする (pull) だけという状態がベストです。みんなで共有するべきブランチはデフォルトブランチである master や main ブランチ、開発中のコードが集約されたブランチ名として多い develop ブランチが例として挙げられます。 https://gyazo.com/b11eba7030be9973ca9dd063a0ac673b
このような状態を作り出す方法の1つとして issue 番号に紐づくブランチ名を作成・プッシュする方法があります。本記事ではこの手法に則ってリモートリポジトリにプッシュしてみます。
issueを発行する
(キャプチャ画面は2020年10月現在のものです)
issue は日本語に訳すと「課題」です。Git ホスティングサービスでは名前の違いはあれど、標準で用意されている機能のひとつです。issue はプログラムの問題点を洗い出したり、作業する内容を書き起こしたりといったタスクリストとして使われるケースが多いです (OSS では issue を質問として利用することもあります) 。今回も「今から行うこと」を記述した issue を GitHub で発行します。リポジトリは リモートリポジトリから新たなローカルリポジトリを作成する (git clone) で用いたリポジトリを使用します。 1. issue タブを選択する
メニュータブ左から2番目の「issues」をクリックします。
https://gyazo.com/23b33f6694003f2edc20b2b1132c09db
2. issue を発行する
1. の画面右にある「New issue」をクリックして issue 作成画面に移動します。タイトルは「やること」を記入します。今回は自己紹介を入力したファイルを作成することにします。説明欄はタイトルを補足するようにわかりやすく書きます。右側にも Assignees などの設定する項目がありますが、ここでは割愛します。
入力を終えたら「Submit new issue」をクリックして isssue を発行します。
https://gyazo.com/127f9d32b7ef54f962da165cdb5be0ca
3. 発行された issue を確認する
issueが発行されると、以下のような画面が表示されます。タイトルの横に表示されている数字 (下図では1) を覚えておきます。
https://gyazo.com/8196ec7a4eb14b6d07f44cf7e46b3528
発行された issue に基づくブランチを切る
issue に基づくブランチの切り方はいくつか存在しますが、ここでは以下のようなフォーマットでブランチを切ります。
code: ブランチのフォーマット.sh
${issueの番号}_${やること}
やることは英語で端的に表現します。文章である必要はありません。
例として以下のようにブランチを切ってみます。
code: ブランチを切る例.sh
# main に移動
$ git checkout main
# または
$ git switch main
# issueの番号が1でやることは自己紹介
$ git checkout -b 1_add_self_introduction
# または
$ git switch -c 1_add_self_introduction
新しくファイルを追加してプッシュする
自己紹介するファイルを作成してプッシュしましょう。ファイル名が被らないように issue 番号をファイル名の先頭につけておきましょう。
code: 自己紹介してプッシュ.sh
$ echo "私のニックネームは${あなたのニックネーム}です。" > 1_自己紹介.txt
$ git add -A
$ git push -u origin ${ブランチ名}
# こんな感じの出力が出るはず
Enter passphrase for key '${sshキーのパス}':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 263 bytes | 131.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ${リモートリポジトリのURL}
Branch '${ブランチ名}' set up to track remote branch '${ブランチ名}' from 'origin'.
このように「issue にやることを入力する -> 発行した issue に基づくブランチを切る -> 作業してコミット -> プッシュ」を繰り返して開発を進めていく手法を「チケット駆動開発」または「issue駆動開発」と呼びます。
次の記事ではプッシュしたブランチを main ブランチにマージし、さらに次の記事ではローカルリポジトリにダウンロードする (pull) 操作を説明します。