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

【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画面

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

おすすめ記事

ブログ 雑談

2025/8/2

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

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

オーディオ

2025/7/12

【WH-1000XM6】人生初のヘッドホン購入

自宅でパソコンを触るときはよくワイヤレスイヤホンで作業用のBGMを流しています。ただ、イヤホンは長時間つけっぱなしにすると耳が痛くなってきます。なので、耳の痛くなりにくいヘッドホンが欲しいと思い、ヘッドホン探しをしていたのです。ちょうどその時、SONYのWH-1000XM6が発表されました。価格は約6万円と高めですが、思い切って奮発しました。 いざ、開封 箱を開けると、ケースと取り扱い説明書がでてきました。ケースを開けると、 ヘッドホン本体とケーブルが出てきました。ヘッドホンはブラックを選択しました。高級 ...

オーディオ

2025/7/23

【Soundcore Liberty 5】1.5万円の最高イヤホン

安くて高性能と話題になっていたSoundCore Liberty 4の後継機がついに発売されました。しばらくイヤホンを買っていなかったので、これを機に買ってみることにしました。 Anker Soundcore Liberty 5 posted with カエレバ 楽天市場 Amazon Soundcore Liberty 5のスペック 詳細なスペック 詳細なスペックは下記です。「これだけの機能があって、この値段でいいの!?」という具合です。 Soundcore Liberty 5Soundcore Lib ...

プログラム

2025/7/28

【LINE】GASでシフト希望の募集を自動化する(無料)

接客業で働き始めて早3年。3年経ったということで、最近はバイトの方のシフト管理を任せられることになりました。シフト管理をすることで見えてきた改善できそうなことに対して今回は取り組んでいきたいと思います。 こんな方におすすめの記事 お金をかけずにシフト募集を自動化したい方 GASを勉強したい方 現在の実態と目標 現在はバイトの方とのグループLINEで週一回シフト希望を聞いて、回答をもとにシフトを考え共有しています。しかし、これは時間の無駄でかつめんどくさいんです。なので、これらの作業を自動化していきたいと思 ...

スマホ

2025/8/6

【Galaxy S25 Ultraレビュー】すべてが最高峰。でも高い

私はスマホにはストレスのない最高のものを使いたいと思っています。なぜなら、毎日触れるから。今までGalaxy Z Fold5を使っていて、大きな不満はなかったのですがカメラだけはいまいち使い勝手がよくないなと思っていました。(十分綺麗なのに)そしてこの、Galaxy Z Fold5はドコモのいつでもカエドキプログラムで借りていて、9月に返却しないといけません。どうせ9月には新しい端末を購入するから「予約特典のある早いうちに買った方がいいじゃね?」と思って買ったGalaxy S25 Ultraのレビューをし ...

ガジェット

2025/7/12

【便利。だけど高い】NFCボタン搭載のPITAKAのスマホケース

突然ですが、今までGalaxy S25 Ultraで使っていたスマホケースがこれです ↓ このケースは前面は保護されていますが、カメラ部分が全然保護されない。。という不満を持っていました。20万も出して買ったスマホのレンズに傷がついたらかなりショックだなと思っていた矢先、InstagramでPITAKAのスマホケースの広告が流れてきました。 カメラ部分もしっかり保護してあります。そして、何やら左側面の3つのボタンにショートカットを割り当てられるそうです。任意のアプリが割り当てられそうで、「絶対便利じゃん! ...

  • この記事を書いた人

なんグラマ

福岡県在住の23歳。高校を卒業後2年くらいシステムエンジニアをして、接客業に転職。プログラムを書くことが今でも好きで、ChatGPTなどを活用して仕事やプライベートを楽する方法を探しています。ガジェット、甘い食べ物が大好き。

こんな記事もいかがですか?

1

自宅でパソコンを触るときはよくワイヤレスイヤホンで作業用のBGMを流しています。ただ、イヤホンは長時間つけっぱなしにすると耳が痛くなってきます。なので、耳の痛くなりにくいヘッドホンが欲しいと思い、ヘッ ...

2

安くて高性能と話題になっていたSoundCore Liberty 4の後継機がついに発売されました。しばらくイヤホンを買っていなかったので、これを機に買ってみることにしました。 Anker Sound ...

3

私はスマホにはストレスのない最高のものを使いたいと思っています。なぜなら、毎日触れるから。今までGalaxy Z Fold5を使っていて、大きな不満はなかったのですがカメラだけはいまいち使い勝手がよく ...

-GitHub
-