MENU
やすひら
やすひらと申します。
長靴を履いたタヌキ(ITエンジニア)です。
モノ作りの楽しさを発信中。
X(旧Twitter)のフォローもお願いします。

[GitHub]個人開発のソースコードをGitHubで管理する方法

個人開発においても、GitHubを利用することは非常に有用です。
GitHubを利用することで、個人開発活動の履歴を残したり、ソースコードの修正履歴を残すことができます。

やすひら

個人開発のソースコードをGitHubで管理する方法を紹介します

この記事でわかること
  • 個人開発のソースコードをGitHubで管理する方法
目次

GitHubとは

GitHubは、ソースコードやドキュメントを管理するツールです。

個人開発とは

個人開発とは、個人で行う開発活動のことです。
GitHubは、チームで開発を行う際に有効なツールですが、個人開発でも同様の方法で管理できるため、個人開発でもGitHubを利用することを推奨します。

個人で開発する場合、ローカルにあるソースコードやGitで事足りるため、GitHubを利用する必要はありませんが、活動履歴を残したり、OSSとして公開することができるため、GitHubを利用するメリットは大いにあります。
また、チームで活動する際の練習にもなるため、個人開発でもGitHubを使うと良いです。

新規リポジトリを作成

新規リポジトリを作成する方法を紹介します。

GitHubのホームページにアクセス

GitHubのホームページにアクセスします。

ブラウザ画面

GitHubのホームページにアクセスします。
ログインが必要なので、ログインします。

リポジトリを選択

リポジトリを選択します。

ブラウザ画面

[Repositories]をクリックします。

リポジトリを作成を開始

リポジトリを作成を開始します。

ブラウザ画面

[New]をクリックします。

リポジトリ情報を入力

リポジトリ情報を入力します。

ブラウザ画面

リポジトリ情報を入力します。

– リポジトリ名
– 公開/非公開
– README.md有無
– .gitignore有無
– ライセンス

リポジトリを作成

リポジトリを作成します。

ブラウザ画面

[Create repository]をクリックします。

リポジトリを確認

リポジトリを確認します。

ブラウザ画面

リポジトリが作成されたことを確認します。

ローカルで作業ディレクトリを作成

ローカルで作業ディレクトリを作成します。

コマンドライン

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 .git

ローカルの作業ディレクトリを初期化します。

GitHubのリポジトリURLを確認

GitHubのリポジトリURLを確認します。

ブラウザ画面

[Code]をクリックすると、リポジトリURLが表示されます。
リポジトリURLをコピーしておきます。

ローカルの作業ディレクトリにGitHubリポジトリを登録

ローカルの作業ディレクトリにGitHubリポジトリを登録します。

コマンドライン

git remote add origin [リポジトリURL]

コマンド実行例

$ git remote add origin https://github.com/yasuhira-tanuki/calc-pgm.git

ローカルの作業ディレクトリにGitHubリポジトリを登録します。
コピーしたリポジトリURLを指定して、ローカルとGitHubリポジトリを連携します。

mainブランチを作成

mainブランチを作成します。

コマンドライン

git branch -M main

コマンド実行例

$ git branch -M main

mainブランチを作成します。
“-M”オプションでは、同名称のブランチがある場合でも上書きします。

GitHubリポジトリからローカルに更新

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

GitHubリポジトリからローカルに更新されました。

ファイルを登録

ファイルを登録します。

コマンドライン

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 clean

ファイルをコミットします。

GitHubへプッシュ

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へプッシュします。
“-u”オプションは、上流ブランチを指定するオプションです。
一度設定すると、次回からは”git push”の指定で、”origin main”にプッシュできます。

リポジトリを確認

リポジトリを確認します。

ブラウザ画面

GitHubへのプッシュで、リポジトリが更新されていることを確認します。

GitHubの設定

個人開発で必要なGitHubの設定を行います。

mainブランチの保護を設定

mainブランチの保護を設定します。
mainブランチの保護設定は、ブランチのルール設定で設定することができます。
mainブランチ向けのpushを禁止し、プルリクエストとマージによる更新を制限します。
mainブランチを保護することで、ソースコード更新の安全性を保つことができます。

リポジトリ画面にアクセス

リポジトリ画面にアクセスします。

ブラウザ画面

リポジトリ画面にアクセスします。

設定を選択

設定を選択します。

ブラウザ画面

[Settings]をクリックします。

ブランチ設定を選択

ブランチ設定を選択します。

ブラウザ画面

[Branches]をクリックします。

ブランチのルール設定を選択

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

ブラウザ画面

[Add branch rulest]をクリックします。

ブランチのルールを設定

ブランチのルールを設定します。

ブラウザ画面

Ruleset Nameにルール名を入力します。
Enrorcement statusをActiveに設定します。
Target branchesをinclude default branchに設定します。
Branch rulesのON/OFFを設定します。

筆者の場合は個人開発なので、以下の設定を行います。
– Require a pull request before merging
– Require conversation resolution before merging
– Restrict deletions
– Block force pushes

ブランチのルールを作成

ブランチのルールを作成します。

ブラウザ画面

[Create]をクリックします。

パスワード認証

パスワード認証を行います。

ブラウザ画面

パスワードを入力して、[Confirm]をクリックします。

ブランチのルールを確認

ブランチのルールを確認します。

ブラウザ画面

ブランチのルールが作成されていることを確認します。

mainブランチ保護のアラート解消を確認

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

ブラウザ画面

mainブランチ保護のアラートが発生していた場合は、解消されていることを確認します。

ソースコードを修正

ソースコードを修正する際に、Issueやブランチ、プルリクエスト(PR)を利用して修正すると、ソースコードの修正履歴が残ります。

Issueを登録

ソースコードを修正する前に、Issueを登録しておくと、バグや新規機能の管理をすることが来ます。

リポジトリ画面にアクセス

リポジトリ画面にアクセスします。

ブラウザ画面

リポジトリ画面にアクセスします。

Issuesを選択

Issuesを選択します。

ブラウザ画面

[Issues]をクリックします。

新規Issueを選択

新規Issueを選択します。

ブラウザ画面

[New Issue]をクリックします。

Issue情報を入力

Issue情報を入力します。

ブラウザ画面

Issue例

算術演算のコマンドライン指定機能を追加
## Overview
算術演算をコマンドライン指定で実行できる機能を追加する。

## Background
算術演算は対話形式のみで実行可能となっている。

## Goal
コマンドラインから算術演算を実行できるように機能追加する。

## Proposal
コマンドラインで算術演算を指定する。
算術演算の計算式もコマンドラインで指定する。
コマンドラインで指定された、計算式を演算し、演算結果を出力する。
演算結果の出力は、対話式と同等の出力とする。
項目意味
OverviewIssueの概要を記入
BackgroundIssueの背景を記入
GoalIssueの目的を記入
ProposalIssueの提案内容(仕様)を記入
TasksIssueのタスクを記入

Add a titleにタイトルを入力します。
Add a descriptionに、Issueの説明を記入します。

Issueを作成

Issueを作成します。

ブラウザ画面

[Create]をクリックします。

Issueを確認

Issueを確認します。

ブラウザ画面

作成したIssueが表示されていることを確認します。
Issue IDが#1で付与されていることがわかります。

Issueを一覧で確認

Issueを一覧で確認します。

ブラウザ画面

作成したIssueが表示されていることを確認します。
Issue IDが#1で付与されていることがわかります。

ブランチ作成

ローカルでブランチを作成します。

ブランチを切る

ブランチを切ります。

コマンドライン

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

ブランチを切って、新規ブランチに移動します。
ブランチ名は、 変更内容とissue番号がわかりやすいように命名すると良いです。

– feature/[issue番号]-[機能名称]
– fix/[issue番号]-[機能名称]

ソースコードを修正

作成したブランチでソースコードを修正します。

コミット

修正したソースコードをコミットします。

ファイルをステージングエリアに追加

ファイルをステージングエリアに追加します。

コマンドライン

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 clean

リポジトリにコミットします。

GitHubへプッシュ

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-calc

ブランチの変更内容をリポジトリにプッシュします。

GitHubのIssues画面でコミットを確認

GitHubのIssues画面でコミットを確認します。

ブラウザ画面

Issue IDに紐づいてコミットされたことを確認できます。

プルリクエストを作成

プルリクエストを作成します。

GitHubのリポジトリ画面を確認

GitHubのリポジトリ画面を確認します。

ブラウザ画面

GitHubのリポジトリ画面で、更新されたブランチがあることを確認します。

更新したブランチでプルリクエスト

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

ブラウザ画面

更新したブランチの[Compare & pull request]をクリックします。

プルリクエストの情報を記入

プルリクエストの情報を記入します。

ブラウザ画面

プルリクエスト例

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

プルリクエストの情報を入力します。
5W1Hを明確に記入する良いプルリクエストになります。
baseブランチ(変更を反映したいブランチ)を選択します。
compareブランチ(変更を提案するブランチ)を選択します。
Reviewersを選択します。

プルリクエスト

プルリクエストを実行します。

ブラウザ画面

[Create pull request]をクリックします。

プルリクエストを確認

プルリクエストを確認します。

ブラウザ画面

プルリクエストを確認します。

レビュー

プルリクエストの内容をレビューします。

個人開発では、本人がプルリクエストしているため、レビューは省略することが多いです。

マージ

プルリクエストの内容をマージします。

プルリクエスト一覧を確認

プルリクエスト一覧を確認します。

ブラウザ画面

プルリクエストが一覧で表示されます。

マージしたいプルリクエストを選択

マージしたいプルリクエストを選択します。

ブラウザ画面

マージしたいプルリクエストを選択します。

プルリクエストを確認

プルリクエストを確認します。

ブラウザ画面

プルリクエストの内容を確認します。

プルリクエストのマージを選択

プルリクエストのマージを選択します。

ブラウザ画面

プルリクエストのマージを選択します。
[Merge pull request]の▼をクリックします。

プルリクエストのマージ方法を選択

プルリクエストのマージ方法を選択します。

ブラウザ画面

プルリクエストのマージ方法を選択します。

– Create a merge commit
– Squash and merge
– Rebase and merge

ここでは、[Create a merge commit]を選択します。

プルリクエストをマージ

プルリクエストをマージします。

ブラウザ画面

[Merge pull request]をクリックします。

マージ情報を入力

マージ情報を入力します。

ブラウザ画面

Comit messageとExtended descriptionを入力します。

マージ完了

マージを完了します。

ブラウザ画面

[Confirm merge]をクリックします。

ブランチを削除

ブランチを削除します。

ブラウザ画面

[Delete branch]をクリックします。

プルリクエストとマージの完了を確認

プルリクエストとマージの完了を確認します。

ブラウザ画面

プルリクエストとマージの完了を確認します。

リポジトリ画面でプルリクエストを確認

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

ブラウザ画面

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

Issueをクローズ

Issueをクローズします。
プルリクエストやコミットに、Issue IDを書いておくと、自動クローズされます。

Fix #1
Close #1

手動でクロースする場合は、issuesから[Close issue]を押してクローズします。

リポジトリ画面に遷移

リポジトリ画面に遷移します。

ブラウザ画面

リポジトリ画面に遷移します。

Issues画面に遷移

Issues画面に遷移します。

ブラウザ画面

[Issues]を選択します。

Issue一覧を確認

Issue一覧を確認します。

ブラウザ画面

Issue一覧を確認します。

Issueを選択

Issueを選択します。

ブラウザ画面

クローズしたいIssueを選択します。

Issueをクローズ

Issueをクローズします。

ブラウザ画面

[Close issue]をクリックしてクローズします。

Issueのクローズを確認

Issueのクローズを確認します。

ブラウザ画面

Closedとなっていることを確認します。

リポジトリ画面でIssuesを確認

リポジトリ画面で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
* main

ブランチをmainに切り替えます。

GitHubリポジトリからローカルに更新

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(-)

Githubリポジトリの内容をmainブランチに更新しました。

マージ済みブランチを削除

マージ済みブランチを削除します。

マージ済みブランチを確認

マージ済みブランチを確認します。

コマンドライン

git branch --merged

コマンド実行例

$ git branch --merged
  feature/1-add-arg-calc
* main

feature/1-add-arg-calcブランチがマージされていることがわかります。

マージ済みブランチを削除

マージ済みブランチを削除します。

コマンドライン

git branch -d [ブランチ名]

コマンド実行例

$ git branch -d feature/1-add-arg-calc
Deleted branch feature/1-add-arg-calc (was ea501aa).

feature/1-add-arg-calcブランチを削除します。

ブランチを確認

ブランチを確認します。

コマンドライン

git branch

コマンド実行例

$ git branch 
* main

feature/1-add-arg-calcブランチが削除されていることがわかります。

まとめ

個人開発のソースコードをGitHubで管理する方法を紹介しました。

個人開発をGitHubで
  • ソースコードを管理できる
  • Issue管理できる
  • 修正履歴を管理できる

個人開発においても、GitHubは有効なツールの1つです。
GitHubを利用することで、ソースコードの管理がしやすくなり、課題やタスクの管理もできます。
GitHubを利用して個人開発をしていくことで、GitHubの使い方も学ぶことができます。
GitHubを活用して、楽しい個人開発ライフを歩んでいきましょう。

  • URLをコピーしました!
目次