当サイトはアフィリエイト広告による収入を得ています

【GitHub】issueを使ってみる

2025年7月1日

実際のシステム開発をイメージしたissue作成~closeまでの流れを再現していきたいと思います。
今回はC言語で"Hello World!"を出力できるソースコードを作成してリモートリポジトリに登録していきます。

おーくまん
おーくまん

"おーくまん"です。「忖度なし」で、ガジェットレビューをしています。
お問い合わせプライバシーポリシー

issueとは

公式サイトには、以下のように書かれています。

リポジトリに問題を作成して、作業の計画、議論、追跡を行うことができます。

"問題"というのはバグや実装したい機能のことを指していて、これらを管理するためにissueがあります。

ざっくりと、何ができるのかをまとめます。

  • アサインで、責任者を割り当てられる
  • ラベルで、どのようなissueなのか一目で分かる
  • プロジェクトに紐づけて、
  • マイルストーンで、進捗管理ができる

issueの使い方

今回の仕様

前回の記事で、"Hello, Worid!"を標準出力するプログラムを作成しました。

今回は、前回作成したプログラムに手を加えていきます。

今回の仕様

C言語で"Hello, Worid!"の標準出力の文字列の前に、タイムスタンプを付与する。

実行結果イメージ:"[YYYY-MM-DD HH:MM:SS] Hello, World!"

issueを登録する

GitHubのsampleリポジトリの管理画面から"isseus"を押す。

GitHub管理画面

「New issue」を押す。

GitHub issue画面

以下のように入力して、「Create」を押す。

・title:

出力にタイムスタンプを付加する機能を追加

・description

### 概要
Hello, World! プログラムの先頭に
実行日時を `[YYYY-MM-DD HH:MM:SS]` 形式で付与して出力する

### 受け入れ基準
1. `gcc main.c -o hello` でビルドが成功する  
2. `./hello` 実行で `[2025-06-27 10:15:30] Hello, World!` のように出力  
3. `strftime` を利用してフォーマット
GitHub issue作成画面

【その他の設定(今はスルー)】
・Assignee
 issueの担当者を割り当てる。10名まで割り当てられる。(公式サイト

・Labels
 issueにラベルを付けて分類する。(公式サイト

・Projects
 issueがどのプロジェクトに該当するかを設定できる(公式サイト

・Milestone
 issueに締め切り日を設定する(公式サイト

issueが作成されました。

GitHub issue画面

ローカル環境を最新化する

「Git Bash」を開き、プロジェクトフォルダへ"cd"(チェンジ ディレクトリ)コマンドで作業ディレクトリへ移動します。

以下のコマンドを実行します。

git checkout main
git pull origin main

ローカル環境でブランチを切る

ローカル環境でブランチを「git checkout -b」コマンドで作成します。
このコマンドは、ブランチを作成した後に、作成したブランチに切り替えるという意味です。
ブランチ名は、今回は"feature/issue-1-hello-world"とします。

以下のコマンドを実行します。

git checkout -b feature/issue-1-timestamp

【今回のブランチ名の意味】
・feature:機能追加
・issue-1:GitHbubの番号
・timestamp:実装する内容を簡易的に示したもの

【ブランチの確認をする】
今のリポジトリに何のブランチがあるか確認するコマンドは、「git branch」です。

Git Bush の画面

実装する

"Hello, World!"と標準出力されるC言語ファイルをmain.cをプロジェクトのディレクトリに作成します。
以下のコードをコピーし、作成したmain.cに張り付けてください。

前回の記事で作成した、"Hello, World!"と標準出力されるプログラムを書き換えていきます。
以下のコマンドを実行してください。

cat << 'EOF' > main.c
#include <stdio.h>
#include <time.h>

int main(void) {
    time_t now = time(NULL);
    struct tm *t = localtime(&now);
    char buf[20];
    strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", t);

    printf("[%s] Hello, World!\n", buf);
    return 0;
}
EOF

テスト

テキトーに選んだブラウザ上のC言語実行環境で実行すると動いたのでOKとします。

paiza.ioの画面

コミット

Git Bushで以下のコマンドを実行します。

git add main.c
git commit -m 'feature: タイムスタンプ付き Hello, World! を出力 (#1)'

以下のような表示なればOKです。

Git Bush の画面

【コマンドの意味】
・git add main.c
 mainl.cをインデックスに登録します

・git commit -m 'feature: Hello, World!を出力する機能を追加 (#1)'
 コミットします。#1はissue番号で、GitHub上で自動的にissueとリンクされます。

リモートにpushする

「git push」コマンドを実行して、リモートリポジトリへプッシュします。
このとき、リモートリポジトリにブランチを作成するようにします。

以下のコマンドを実行します。

git push -u origin feature/issue-1-timestamp

GitHubを開くと、無事にプッシュできていることが分かります。

GitHub issue画面

プルリクエストを出す

GitHubのsampleリポジトリの管理画面から"Pull request"を押す。

GitHub管理画面

「Compare & pull request」を押す。

GitHub pull request画面

descriptionを入力し、「Create pull request」を押す。

### 概要
Hello, World!の前に実行時のタイムスタンプを表示する機能を追加

### 動作確認手順
```bash
gcc main.c -o hello
./hello
# => [2025-06-27 10:15:30] Hello, World!

【その他の設定】
・Reviewers
 レビュワーを指定できる。今回はプロジェクトメンバが誰もいないので設定しない。

・Assignees
 プルリクの責任者をアサインできる。

・Labels
 このプルリクが何なのかをタグ付できる(「feature」「bug」など)

・Projects
 プルリクをプロジェクトに紐づけできる

・Milestone
 マイルストーンを設定できる

GitHub pull request作成画面

これで、プルリクを出すことができました。
レビュワーがいる場合は、レビューが完了するまで待ちます。

マージする

レビューが終了したら、作成したコードをmainにマージしていきます。

「Merge pull request」を押す。

GitHubマージリクエスト画面

「Confirm merge」を押す。

GitHub pull マージ画面

"Pull request successfully merged and closed"と表示されました。これで、プルリク~マージまで完了しました。
今回作成したブランチは不要になるので「Delete branch」を押してブランチを削除してください。

GitHub issue画面

issueをクローズする

issueをクローズします。

issueの管理画面から、今回のissueを開きます。

GitHub 管理画面

「Close issue」を押す。
コメントは必ず入れる必要はありません。

GitHub close issue画面

これでクローズが完了しました!

GitHub issue画面

後処理(ローカルリポジトリのクリーンアップ)

ローカルリポジトリをクリーンアップして作業終了です。

「Git Bush」で以下のコマンドを実行してください。
リモートの最新情報をmainブランチに取り込み、不要なブランチを削除します。

git checkout main
git pull origin main
git branch -d feature/issue-1-timestamp

以下のようになると成功です。

GitHub Bush画面

【なぜクリーンアップするのか】
ブランチが増えすぎると管理が大変になるからです。誤ったブランチで作業をしてしまう可能性があるため、不要なブランチは削除していきます。

おすすめ記事

Galaxy S26 Ultra

スマホ

2026/3/16

【Galaxy S26 Ultra レビュー】さらに日常向けに最適化された最高峰スマホ

僕は毎年Samsungの新作発表会を楽しみにしてたんだけど、ここ数年は新しいスマホが発表されても「どうせAIでしょ」みたいな感じでわくわくすることはなくなってきてた。 ただ、今年は一味違って、AI以外に「プライバシーディスプレイ」なる世界初の機能が搭載されて久しぶりにわくわくしました。1年前にGalaxy S25Ultraを買ったばかりで、ふつうに考えれば買い替える必要はまったくないんだけど、思わず買ってしまったからレビューしていきます。 【Galaxy S26 Ultraの特徴】オールインワンの一言に尽 ...

デスク環境

2026/3/1

【デスク環境が変わる】Ankerの巻き取り式充電ステーションレビュー【迷わず買え】

発売当初はすぐに売り切れた、巻き取り式ケーブル搭載の充電ステーションAnker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-Cケーブル)。 最初は「そんなにいいの?」と思っていたけど、使ってみるとマジでいい。デスク環境が変わるから、ちょっとでも気になっているなら迷わず買ってほしいです。 とはいえ、急に「買え」と言われても「なんで?」となるから実際の使用感を解説していきます。 Anker Nano Charging Station 7-in-1 10 ...

ブログ 雑談

2026/1/22

僕の経歴とブログを始めた経緯

このブログを運営している"なんグラマ"といいます。「なんちゃってプログラマ」の略です。 本業は接客業をしていて、日々お客様と接しています。接客業も好きでこの仕事をしているのですが、他にもいくつか好きなこと(モノ)があります。 それは、 プログラミング ガジェット スイーツ です。 当ブログでは、この3つのジャンルを中心に投稿しています。この投稿では、自己紹介として私の人生の一部を話す中で、ブログを始めた理由も話していきます。 【幼稚園~中学時代】将来の夢は列車の運転士だった 幼稚園くらいの頃から列車が好き ...

オーディオ

2026/1/17

【Soundcore Liberty 5レビュー】2万円以下のコスパ最強イヤホン

2万円以下のコスパイヤホンといえば、これまではAnkerのSoundcore Liberty 4でした。1.5万円という価格ながら日常使いでストレスの少ないまさに"最強"のイヤホンです。 そんなSoundcore Liberty 4に新モデル、Soundcore Liberty 5が登場しました。しかも価格は据え置きで。 実際に使ってみて思ったのは「さすがAnker。」で、性能を向上させつつも無駄を省いていました。それによって前作と同じ1.5万円を維持したのかと思うと感心します。今回はそんなSoundco ...

スマートウォッチ

2026/3/1

【Google Pixel Watch 4レビュー】ふだん使いに最適。健康管理もOKなハイエンドコスパモデル。

この前Galaxy Watch8 Classicを購入したばかりなのに、Google Pixel Watch 4という非常に興味深いスマートウォッチが発売されてしまいました。なんで興味深いかというと、価格は5万円ながら機能がもりもりでコンパクトなスマートウォッチだから(注:5万円は安くない)。 「これは試してみるしかない!」ということで、今回は41mmのサイズを購入して実際に使用してみたレビューをしていきます。 Google Pixel Watch 4のスペック Google Pixel Watch 4の ...

SOUNDPEATS Air5 Pro+

オーディオ

2026/3/3

【SOUNDPEATS Air5 Pro+レビュー】音質とノイキャンに全振りしたコスパイヤホン

「SOUNDPEATS Air5 Pro+の音質とコスパがいい。」そんなSNS投稿を見たときに1度はスルーしたんだけど、結局買ってしまった。なぜならたくさんの人がおすすめしてて、何度も僕のSNSに出てくるから。 これ以上イヤホンが必要ないことは分かっているけど、何度も表示されると気になってしょうがなくなってしまったんです。実際に使ってみると、たしかに金額以上の音質があってコスパは良さそうだったから僕も紹介します。 【結論】音質とノイキャンとコスパを求めるならこのイヤホン まず結論は「音質とノイキャン、そし ...

  • この記事を書いた人
アイコン

おーくまん

福岡在住の24歳。ガジェット好きで、日々の暮らしをアップデートするための情報をお届けします。ときどきプログラムも投稿します。

この記事もおすすめ

1

発売当初はすぐに売り切れた、巻き取り式ケーブル搭載の充電ステーションAnker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-Cケーブル)。 最 ...

Galaxy Watch8 Classic 2

僕はこれまでGalaxy Watch4 Classicを4年使用していています。ただ、さすがに4年も経つとバッテリーの減りが早くなったり、動作がもっさりしてきたりと不満を感じるようになってきました。そ ...

SOUNDPEATS Air5 Pro+ 3

「SOUNDPEATS Air5 Pro+の音質とコスパがいい。」そんなSNS投稿を見たときに1度はスルーしたんだけど、結局買ってしまった。なぜならたくさんの人がおすすめしてて、何度も僕のSNSに出て ...

-GitHub
-