個人開発においても、GitHubを利用することは非常に有用です。
GitHubを利用することで、個人開発活動の履歴を残したり、ソースコードの修正履歴を残すことができます。
個人開発のソースコードをGitHubで管理する方法を紹介します
- 個人開発のソースコードをGitHubで管理する方法
GitHubとは
GitHubは、ソースコードやドキュメントを管理するツールです。
個人開発とは
個人開発とは、個人で行う開発活動のことです。
GitHubは、チームで開発を行う際に有効なツールですが、個人開発でも同様の方法で管理できるため、個人開発でもGitHubを利用することを推奨します。
個人で開発する場合、ローカルにあるソースコードやGitで事足りるため、GitHubを利用する必要はありませんが、活動履歴を残したり、OSSとして公開することができるため、GitHubを利用するメリットは大いにあります。
また、チームで活動する際の練習にもなるため、個人開発でもGitHubを使うと良いです。
新規リポジトリを作成
新規リポジトリを作成する方法を紹介します。
GitHubのホームページにアクセス
GitHubのホームページにアクセスします。
ブラウザ画面


リポジトリを選択
リポジトリを選択します。
ブラウザ画面


リポジトリを作成を開始
リポジトリを作成を開始します。
ブラウザ画面


リポジトリ情報を入力
リポジトリ情報を入力します。
ブラウザ画面


リポジトリを作成
リポジトリを作成します。
ブラウザ画面


リポジトリを確認
リポジトリを確認します。
ブラウザ画面


ローカルで作業ディレクトリを作成
ローカルで作業ディレクトリを作成します。
コマンドライン
mkdir [作業ディレクトリ]コマンド実行例
$ mkdir calc-pgm
$ ls
calc-pgmローカルの作業ディレクトリに移動
ローカルの作業ディレクトリに移動します。
コマンドライン
cd [作業ディレクトリ]コマンド実行例
$ cd calc-pgm/
$ pwd
/home/user/calc-pgmローカルの作業ディレクトリを初期化
ローカルの作業ディレクトリを初期化します。
コマンドライン
git initコマンド実行例
$ git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /home/user/calc-pgm/.git/
$ ls -ltra
total 12
drwxrwxr-x 4 user user 4096 Mar 9 17:38 ..
drwxrwxr-x 3 user user 4096 Mar 9 17:40 .
drwxrwxr-x 7 user user 4096 Mar 9 17:40 .gitGitHubのリポジトリURLを確認
GitHubのリポジトリURLを確認します。
ブラウザ画面


ローカルの作業ディレクトリにGitHubリポジトリを登録
ローカルの作業ディレクトリにGitHubリポジトリを登録します。
コマンドライン
git remote add origin [リポジトリURL]コマンド実行例
$ git remote add origin https://github.com/yasuhira-tanuki/calc-pgm.gitmainブランチを作成
mainブランチを作成します。
コマンドライン
git branch -M mainコマンド実行例
$ git branch -M mainGitHubリポジトリからローカルに更新
GitHubリポジトリからローカルに更新します。
コマンドライン
git pull origin mainコマンド実行例
$ git pull origin main
Username for 'https://github.com': yasuhira-tanuki
Password for 'https://yasuhira-tanuki@github.com':
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (5/5), 1.81 KiB | 464.00 KiB/s, done.
From https://github.com/yasuhira-tanuki/calc-pgm
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
$ git branch
* main
$ ls
LICENSE README.mdファイルを登録
ファイルを登録します。
コマンドライン
git add [追加ファイル/ディレクトリ]コマンド実行例
$ ls
CLAUDE.md LICENSE Makefile README.md build calc-pgm include src
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
CLAUDE.md
Makefile
calc-pgm
include/
src/
no changes added to commit (use "git add" and/or "git commit -a")
$ git add .
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: CLAUDE.md
new file: Makefile
modified: README.md
new file: calc-pgm
new file: include/display.h
new file: include/lexer.h
new file: include/parser.h
new file: include/value.h
new file: src/display.c
new file: src/lexer.c
new file: src/main.c
new file: src/parser.cファイルをコミット
ファイルをコミットします。
コマンドライン
git commit -m "[コメント]"コマンド実行例
$ git commit -m "add: first commit"
[main 1f43d85] add: first commit
12 files changed, 1314 insertions(+), 1 deletion(-)
create mode 100644 CLAUDE.md
create mode 100644 Makefile
rewrite README.md (100%)
create mode 100755 calc-pgm
create mode 100644 include/display.h
create mode 100644 include/lexer.h
create mode 100644 include/parser.h
create mode 100644 include/value.h
create mode 100644 src/display.c
create mode 100644 src/lexer.c
create mode 100644 src/main.c
create mode 100644 src/parser.c
$ git status
On branch main
nothing to commit, working tree cleanGitHubへプッシュ
GitHubへプッシュします。
コマンドライン
git push -u origin mainコマンド実行例
$ git push -u origin main
Username for 'https://github.com': yasuhira-tanuki
Password for 'https://yasuhira-tanuki@github.com':
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 4 threads
Compressing objects: 100% (16/16), done.
Writing objects: 100% (16/16), 28.75 KiB | 1.69 MiB/s, done.
Total 16 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/yasuhira-tanuki/calc-pgm.git
3cd2fca..1f43d85 main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.リポジトリを確認
リポジトリを確認します。
ブラウザ画面


GitHubの設定
個人開発で必要なGitHubの設定を行います。
mainブランチの保護を設定
mainブランチの保護を設定します。
mainブランチの保護設定は、ブランチのルール設定で設定することができます。
mainブランチ向けのpushを禁止し、プルリクエストとマージによる更新を制限します。
mainブランチを保護することで、ソースコード更新の安全性を保つことができます。
リポジトリ画面にアクセス
リポジトリ画面にアクセスします。
ブラウザ画面


設定を選択
設定を選択します。
ブラウザ画面


ブランチ設定を選択
ブランチ設定を選択します。
ブラウザ画面


ブランチのルール設定を選択
ブランチのルール設定を選択します。
ブラウザ画面


ブランチのルールを設定
ブランチのルールを設定します。
ブラウザ画面


ブランチのルールを作成
ブランチのルールを作成します。
ブラウザ画面


パスワード認証
パスワード認証を行います。
ブラウザ画面


ブランチのルールを確認
ブランチのルールを確認します。
ブラウザ画面


mainブランチ保護のアラート解消を確認
mainブランチ保護のアラート解消を確認します。
ブラウザ画面


ソースコードを修正
ソースコードを修正する際に、Issueやブランチ、プルリクエスト(PR)を利用して修正すると、ソースコードの修正履歴が残ります。
Issueを登録
ソースコードを修正する前に、Issueを登録しておくと、バグや新規機能の管理をすることが来ます。
リポジトリ画面にアクセス
リポジトリ画面にアクセスします。
ブラウザ画面


Issuesを選択
Issuesを選択します。
ブラウザ画面


新規Issueを選択
新規Issueを選択します。
ブラウザ画面


Issue情報を入力
Issue情報を入力します。
ブラウザ画面


Issue例
算術演算のコマンドライン指定機能を追加## Overview
算術演算をコマンドライン指定で実行できる機能を追加する。
## Background
算術演算は対話形式のみで実行可能となっている。
## Goal
コマンドラインから算術演算を実行できるように機能追加する。
## Proposal
コマンドラインで算術演算を指定する。
算術演算の計算式もコマンドラインで指定する。
コマンドラインで指定された、計算式を演算し、演算結果を出力する。
演算結果の出力は、対話式と同等の出力とする。| 項目 | 意味 |
|---|---|
| Overview | Issueの概要を記入 |
| Background | Issueの背景を記入 |
| Goal | Issueの目的を記入 |
| Proposal | Issueの提案内容(仕様)を記入 |
| Tasks | Issueのタスクを記入 |
Issueを作成
Issueを作成します。
ブラウザ画面


Issueを確認
Issueを確認します。
ブラウザ画面


Issueを一覧で確認
Issueを一覧で確認します。
ブラウザ画面


ブランチ作成
ローカルでブランチを作成します。
ブランチを切る
ブランチを切ります。
コマンドライン
git checkout -b [ブランチ名]コマンド実行例
$ git branch
* main
$ git checkout -b feature/1-add-arg-calc
Switched to a new branch 'feature/1-add-arg-calc'
$ git branch
* feature/1-add-arg-calc
mainソースコードを修正
作成したブランチでソースコードを修正します。
コミット
修正したソースコードをコミットします。
ファイルをステージングエリアに追加
ファイルをステージングエリアに追加します。
コマンドライン
git add [ファイル名]コマンド実行例
$ git status
On branch feature/1-add-arg-calc
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
modified: calc-pgm
modified: src/display.c
modified: src/main.c
no changes added to commit (use "git add" and/or "git commit -a")
$ git add .
$ git status
On branch feature/1-add-arg-calc
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
modified: calc-pgm
modified: src/display.c
modified: src/main.cステージングエリアの変更をリポジトリにコミット
ステージングエリアの変更をリポジトリにコミットします。
コマンドライン
git commit -m "[メッセージ]"コマンド実行例
$ git status
On branch feature/1-add-arg-calc
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
modified: calc-pgm
modified: src/display.c
modified: src/main.c
$ git commit -m "feat(#1):add-arg-calc"
[feature/1-add-arg-calc ea501aa] feat(#1):add-arg-calc
4 files changed, 65 insertions(+), 4 deletions(-)
rewrite calc-pgm (71%)
$ git status
On branch feature/1-add-arg-calc
nothing to commit, working tree cleanGitHubへプッシュ
GitHubへプッシュします。
ローカルブランチの変更をリモートリポジトリに反映
ローカルブランチの変更をリモートリポジトリに反映します。
コマンド形式
git push [リモートリポジトリ名] [ブランチ名]コマンド実行例
$ git push origin feature/1-add-arg-calc
Username for 'https://github.com': yasuhira-tanuki
Password for 'https://yasuhira-tanuki@github.com':
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 4 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 7.66 KiB | 980.00 KiB/s, done.
Total 7 (delta 5), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (5/5), completed with 5 local objects.
remote:
remote: Create a pull request for 'feature/1-add-arg-calc' on GitHub by visiting:
remote: https://github.com/yasuhira-tanuki/calc-pgm/pull/new/feature/1-add-arg-calc
remote:
To https://github.com/yasuhira-tanuki/calc-pgm.git
* [new branch] feature/1-add-arg-calc -> feature/1-add-arg-calcGitHubのIssues画面でコミットを確認
GitHubのIssues画面でコミットを確認します。
ブラウザ画面


プルリクエストを作成
プルリクエストを作成します。
GitHubのリポジトリ画面を確認
GitHubのリポジトリ画面を確認します。
ブラウザ画面


更新したブランチでプルリクエスト
更新したブランチでプルリクエストします。
ブラウザ画面


プルリクエストの情報を記入
プルリクエストの情報を記入します。
ブラウザ画面


プルリクエスト例
feat(#1): コマンドライン引数 -e による演算機能の追加## 概要
コマンドライン引数 -e で式を指定して演算できる機能を追加しました。
対話モードを起動せずにワンライナーで計算結果を取得できます。
## 変更内容
- src/main.c — -e オプションを処理する run_eval_mode() を追加。argv[2]以降をスペース結合して式として評価し、対話モードと同等の形式で結果を出力
- src/display.c — help コマンドの出力に 【コマンドライン引数】セクションを追加
- README.md — ## コマンドライン引数セクションを追加、ビルド手順に引数モードの起動例を追記
## 使用例
```
$ ./calc-pgm -e "0xFF & 0x0F"
DEC: 15
HEX: 0xF
OCT: 0o17
BIN: 0b1111
$ ./calc-pgm -e "gib(2)"
= 2147483648
$ ./calc-pgm -e 1 + 2
DEC: 3
HEX: 0x3
OCT: 0o3
BIN: 0b11
```
Closes #1プルリクエスト
プルリクエストを実行します。
ブラウザ画面


プルリクエストを確認
プルリクエストを確認します。
ブラウザ画面


レビュー
プルリクエストの内容をレビューします。
マージ
プルリクエストの内容をマージします。
プルリクエスト一覧を確認
プルリクエスト一覧を確認します。
ブラウザ画面


マージしたいプルリクエストを選択
マージしたいプルリクエストを選択します。
ブラウザ画面


プルリクエストを確認
プルリクエストを確認します。
ブラウザ画面


プルリクエストのマージを選択
プルリクエストのマージを選択します。
ブラウザ画面


プルリクエストのマージ方法を選択
プルリクエストのマージ方法を選択します。
ブラウザ画面


プルリクエストをマージ
プルリクエストをマージします。
ブラウザ画面


マージ情報を入力
マージ情報を入力します。
ブラウザ画面


マージ完了
マージを完了します。
ブラウザ画面


ブランチを削除
ブランチを削除します。
ブラウザ画面


プルリクエストとマージの完了を確認
プルリクエストとマージの完了を確認します。
ブラウザ画面


リポジトリ画面でプルリクエストを確認
リポジトリ画面でプルリクエストを確認します。
ブラウザ画面


Issueをクローズ
Issueをクローズします。
プルリクエストやコミットに、Issue IDを書いておくと、自動クローズされます。
Fix #1Close #1リポジトリ画面に遷移
リポジトリ画面に遷移します。
ブラウザ画面


Issues画面に遷移
Issues画面に遷移します。
ブラウザ画面


Issue一覧を確認
Issue一覧を確認します。
ブラウザ画面


Issueを選択
Issueを選択します。
ブラウザ画面


Issueをクローズ
Issueをクローズします。
ブラウザ画面


Issueのクローズを確認
Issueのクローズを確認します。
ブラウザ画面


リポジトリ画面でIssuesを確認
リポジトリ画面でIssuesを確認します。
ブラウザ画面


Githubリポジトリからローカルに更新
マージしたGithubリポジトリの内容をローカルに更新します。
ローカルのブランチを切り替え
ローカルのブランチを切り替えます。
コマンドライン
git checkout mainコマンド実行例
$ git branch
* feature/1-add-arg-calc
main
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
$ git branch
feature/1-add-arg-calc
* mainGitHubリポジトリからローカルに更新
GitHubリポジトリからローカルに更新します。
コマンドライン
git pull origin mainコマンド実行例
$ git pull origin main
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (1/1), 996 bytes | 142.00 KiB/s, done.
From https://github.com/yasuhira-tanuki/calc-pgm
* branch main -> FETCH_HEAD
1f43d85..debc25c main -> origin/main
Updating 1f43d85..debc25c
Fast-forward
README.md | 30 +++++++++++++++++++++++++++---
calc-pgm | Bin 39968 -> 35936 bytes
src/display.c | 2 ++
src/main.c | 37 ++++++++++++++++++++++++++++++++++++-
4 files changed, 65 insertions(+), 4 deletions(-)マージ済みブランチを削除
マージ済みブランチを削除します。
マージ済みブランチを確認
マージ済みブランチを確認します。
コマンドライン
git branch --mergedコマンド実行例
$ git branch --merged
feature/1-add-arg-calc
* mainマージ済みブランチを削除
マージ済みブランチを削除します。
コマンドライン
git branch -d [ブランチ名]コマンド実行例
$ git branch -d feature/1-add-arg-calc
Deleted branch feature/1-add-arg-calc (was ea501aa).ブランチを確認
ブランチを確認します。
コマンドライン
git branchコマンド実行例
$ git branch
* mainまとめ
個人開発のソースコードをGitHubで管理する方法を紹介しました。
- ソースコードを管理できる
- Issue管理できる
- 修正履歴を管理できる
個人開発においても、GitHubは有効なツールの1つです。
GitHubを利用することで、ソースコードの管理がしやすくなり、課題やタスクの管理もできます。
GitHubを利用して個人開発をしていくことで、GitHubの使い方も学ぶことができます。
GitHubを活用して、楽しい個人開発ライフを歩んでいきましょう。



