Skip to content

GitHub の使い方を決める #13

Description

@nmaya

trunk の名前

trunk のままでよいか。それとも main にリネームしたほうがよいか。

ワークフローの策定

修正の流れとブランチの使い方

  • FreeBSD(昔は?今も?)のように、CURRENT->RELENG_13, RELENG_13->RELENG_13_1 と修正が流れていく(上のほうが自由にコミットできる・下の方へ反映するかどうか取捨選択がある)
  • 今までのように trunk / 4-stable を修正し、ある時点の trunk / 4-stable がリリースになる
  • Git-flow:開発集約用のdevelop ・開発機能ごとのfeature・リリース準備用のrelease・リリース用のmasterを持つ
  • GitHub Flow:開発集約用のmaster・開発機能ごとのfeatureを持つ

コミットの方法

  • 今までのように、直接 trunk / 4-stable に修正を入れていくのか。
  • それとも修正は必ずブランチを作ってPRするのか。trunk / 4-stable をプロテクトするのか。

レビューが挟めるのでPRを使ったほうがいいように思う。「修正とドキュメント(変更部分について、また更新履歴)がすべて含まれているか」のチェックができる。

ブランチに対して AppVeyor でビルドをかけられたら、チェックもしやすくなるのではないか。
ほかの修正が混じらないバイナリを作れるはず。
(ビルドのたびにどのブランチをビルドする設定になっているのか確認/変更が必要になりそうだが)

修正と「issue」「コミット」「PR」間のリンク

このようにするとリンクできる。

  • GitHub で issue を作る
  • (ローカルに clone する)
  • 派生元ブランチから修正ブランチを作る
  • 修正を書く
  • コミットする
    • コミットログに issue の番号を書く
  • ブランチを push する
    • GitHub(リモート) に修正ブランチができる
    • Code ビューアのコミットログから issue に飛べる
    • issue にコミットIDの履歴が残る
  • PR を作る(派生元ブランチ <- 修正ブランチ)
    • ブランチの選択により、PR では「コミットIDの履歴」「変更差分」が見られる
    • レビュー(チェック)する(してもらう)
  • PR をマージする
    • issue にマージ履歴が残る
  • 修正ブランチを削除する
  • issue を Close する

「Git では push したら rebase してはいけない」と言われている

  • 修正を他の人に見せるためには local から remote(GitHub) の feature ブランチへ push しなければならない
    • feature から main にマージするときに main が進んでいたら rebase するのは許されるのか?
  • 誰かが作った feature ブランチは別の人は触らないことで、rebase しても誰にも迷惑をかけないようにするのか?
    • それでは共同開発できない?
    • 別の人が触るときは、feature ブランチからさらに fork するのか?

外部からのPRの扱い方

  • 修正が十分でない(ドキュメントがないなども含む)場合にどう受け入れるのか?

参考になる?

https://qiita.com/riku929hr/items/15415d34ee5fc412c126
https://qiita.com/hitochan777/items/ea08df354b42be57e5fc
https://supersoftware.jp/tech/20221021/17928/
https://git.command-ref.com/basic-git-flow.html

TODO

Metadata

Metadata

Assignees

No one assigned

    Labels

    todoProject task

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions