Skip to content

RksGitHandsOn/exercise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Gitハンズオン勉強会 <演習課題>

目的

  • 勉強会で学習した、基本的なGitコマンドの習得度やブランチ操作の理解度を確認する
  • 演習を通して、Git Flowを意識したブランチ操作に触れる

[注]

  • この演習は勉強会の参加者の皆さんをテスト(評価)するためのものではありません
  • 実際に手を動かし、途中でコマンドや操作を検索したり、勉強会資料を参照したり、試行錯誤しながら実施して頂くことを歓迎します
  • 最後まで実施するのが難しい場合、途中までの状態で提出して頂いても構いません

確認項目

  • リモートリポジトリをcloneできる
  • ローカルでブランチを切って、ソースコードを変更し、commitできる
  • ローカルのブランチで行った変更をリモートにpushできる
  • Gitホスティングサービス上でIssueを作成し、Issueにコミットを紐付けることができる
  • Gitホスティングサービス上でPull Requestを作成し、マージできる
  • ローカルにリモートの変更を反映することができる
  • ローカルでマージ作業ができる
  • タグを打つことができる

演習内容

事前準備

次の準備を行ってから 演習手順 に取り組んでください。

  1. ~/.gitconfig に次の設定を記述する

    [merge]
        ff = false
  2. 自身のGithubアカウント、または、RksGitHandsOnに演習用のリポジトリを作成する

    • リポジトリ名は任意
    • 演習後、作成したリポジトリのURLをお知らせ頂きます
    • 後述の 演習手順 はすべてこのリポジトリに対して実施してください

演習手順

以下の手順に従って、Gitコマンド操作やGithubの操作を実施してください。

勉強会では「管理者」と「作業者」に役割を分けて行なった操作もありますが、今回は1人で2役を担っているつもりで実施してください。

手順1

Git Flowにおける、最新の開発バージョンを管理するdevelopブランチを追加します。

  1. リモートリポジトリをローカルにcloneする
  2. masterブランチからdevelopブランチを作成し、リモートへpushする
    • ソースコードは変更しない

手順2

Git Flowにおける、機能開発を行うためのfeatureブランチを作成し、ソースコードに対して任意の変更を加えます。 変更内容は何でも構いません。変更内容に応じて、後述のIssueのタイトルやコミットコメントを記載してください。

変更の例

  • READMEにこの演習課題の内容(markdown形式)を記載する
  • 現在時刻を出力するbashスクリプトを追加する
  • Hello worldを出力するPHPプログラムを追加する
  1. Github上で、Issueを作成する
  2. developブランチからfeature/{Issue番号}/{Issueに対する適切な名前}ブランチ (※以降の手順中では単純にfeatureブランチと記載する)を作成する
    • 例:feature/10/add-helloworld-script
  3. featureブランチでソースコードに変更を加え、commitする
    • コミットをIssueに紐付ける
  4. featureブランチをリモートにpushする
  5. Github上で、featureブランチからdevelopブランチに対するPull Requestを作成する
    • Pull Requestの本文に変更内容を記載する
  6. Github上で、featureブランチをdevelopブランチにマージする
  7. Github上で、featureブランチを削除する
  8. Issueをクローズする
  9. ローカルのfeatureブランチを削除する

手順3

Git Flowにおける、最新の安定バージョンを管理するmasterブランチに、(ここではv1.0向け機能の開発が完了したと想定した)developブランチの変更をマージし、リリースします(タグを打ちます)。

厳密なGit Flowでは、developブランチを直接masterブランチにはマージせず、releaseブランチを介します。 余力がある場合、releaseブランチを用いてリリース対象の変更をmasterブランチにマージする手順を実施して頂いても構いません。

  1. ローカルのdevelopブランチに、リモートでのdevelopブランチの変更を反映する
  2. ローカルで、developブランチをmasterブランチにマージする
  3. masterブランチをリモートへpushする
  4. masterブランチでv1.0というタグを打つ
  5. タグをリモートへpushする

以上で演習は終了です。

演習結果の提出

事前にご案内した方法で下記の2点を提出してください。

  • 演習を実施したGithubのリポジトリのURL

  • masterブランチで次のコマンドを実行した結果ファイル(~/git-handson.txt)

     git branch -a > ~/git-handson.txt
     git log --graph --oneline --decorate >> ~/git-handson.txt

About

勉強会後に実施する演習課題

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published