【初心者必見】ローカルのGitをGitHubでバージョン管理する方法|主なGitコマンド一覧付きガイド

ローカルでGit管理しているソースコードをGitHubでもバージョン管理する方法は、大きく2通りあります。
以下で詳しく解説します。

  • A)Web UIで空リポジトリを作成 → 既存ローカルをプッシュ(SSH等)
  • B)GitHub CLI(gh)で作成からプッシュまで行う

Push、PullなどのGit用語についてはこちらで記事にしています↓

目次

0) 事前準備(初回のみ)

  • GitHubのアカウント登録
  • クライアントからGitHubへの認証方式の設定
    SSH など(複数アカウント併用でも扱いやすい)。
    1. SSH鍵を作成:ssh-keygen -t ed25519 -C "you@example.com"
    2. 公開鍵をGitHubアカウントに登録。

手順については、下記の記事で解説しています↓

A. Web UIで空リポジトリを作成 → 既存ローカルをプッシュ(SSH)

A-1) GitHubで空のリポジトリを作る

GitHubにログイン → 右上「+」→ New repository(または左上のNew)

Repository name を入力(Public/Privateは任意)→ Create repository

こちらでリポジトリが作成されました

作成直後のページに「…or push an existing repository from the command line」という手順が表示されます(これを使います)。

公式:GitHub Docs – Creating a new repository
https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository

A-2) ローカルで初回プッシュ(既存プロジェクト)

プロジェクトディレクトリに移動します。

cd /path/to/your/project

まだ git init していない場合は、先に下記コマンドを実行してください。

git init && git add . && git commit -m "Initial commit"

コマンド解説:

ステップコマンド処理内容結果
1git initGitリポジトリを初期化.gitフォルダ作成
2git add .すべてのファイルをステージング
(変更したファイルをインデックスに追加)
コミット準備完了
3git commit -m "Initial commit"コミットを作成履歴が1件生成される

実行結果の例:プロジェクトフォルダに test.txt が配置されていた場合の例

Initialized empty Git repository in C:/projects/ai0w/sample/.git/
[master (root-commit) xxxxxxx] Initial commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt

2) 既存のGit履歴があるか確認(任意)

git status

実行結果の例:

On branch master
nothing to commit, working tree clean

既存のGit branchの履歴があるか確認(任意)

git branch -vv

実行結果の例:

* master xxxxxxx Initial commit

3) リモートoriginをSSHで登録(REPO_NAME/OWNERはご自身のものに置換してください)

git remote add origin git@github.com:OWNER/REPO_NAME.git

4) デフォルトブランチ名をmainに(必要に応じ)

git branch -M main

5) 初回プッシュ(追跡設定も同時に)

git push -u origin main

実行結果の例:

Enter passphrase for key '/c/Users/xxxxx/.ssh/id_ed25519':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 207 bytes | 207.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To github.com:OWNER/REPO_NAME.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.

GitHubで確認すると、ローカル環境で作成したファイルが、リポジトリに登録されています。

お疲れさまでした。ローカルから、GitHubのリポジトリへ初回プッシュが完了しました。

B. GitHub CLI(gh)で作成からプッシュまで行う

B-1) gh をインストール & ログイン

GitHub CLI(gh)をインストールします。

# インストール方法はOSごとに異なります(例:Windows)
# winget install --id GitHub.cli

# インストール方法はOSごとに異なります(例:macOS)
# brew install gh

Windowsの場合のインストール手順の詳細は下記に記載しています↓

GitHubにCLIでログイン(対話式)します。

gh auth login
# → GitHub.com / HTTPS or SSH / プロトコル選択 / ブラウザ認証 などを対話で設定

B-2) 既存ローカルから新規GitHubリポジトリを作ってプッシュ

プロジェクトフォルダに移動します。

cd /path/to/your/project

まだ git init していない場合は、先に下記コマンドを実行してください。

git init && git add . && git commit -m "Initial commit"

コマンド解説:

ステップコマンド処理内容結果
1git initGitリポジトリを初期化.gitフォルダ作成
2git add .すべてのファイルをステージングコミット準備完了
3git commit -m "Initial commit"コミットを作成履歴が1件生成される

対話式で質問に回答して初回pushを行う。

gh repo create

実行結果の例:

“Push an existing local repository to GitHub” を選択
# 質問に回答すると、初回pushを行います。

例:

? What would you like to do? Push an existing local repository to github.com
? Path to local repository (.) C:\projects\ai0w\sample

? Path to local repository C:\projects\ai0w\sample
? Repository name sample
? Description sample project
? Visibility Private

お疲れさまでした。こちらで初回Pushが完了しました。

上記で行ったgh repo createの代わりに、一度のコマンドで実行するには、次のコマンドを実行します。
OWNER/REPO_NAMEはご自身の環境に合わせて変更してください。

gh repo create OWNER/REPO_NAME --source=. --private --remote=origin --push

トラブルシューティング(公式リンク)

Git操作体系まとめ

用語意味備考
ローカルリポジトリあなたのPC上の .git フォルダを含むプロジェクトGitの基本単位
リモートリポジトリGitHubなどのサーバー上のコピー複数人で共有するための場所
Git分散型バージョン管理ツール(ローカル操作中心)git コマンドで操作
GitHubGitリポジトリをホスティング+レビュー管理するWebサービスgh コマンドやブラウザで操作

分類別に:どこで実行する/どこに影響する/代表コマンド(または操作)

  • 🖥️=ローカルリポジトリ(自分のパソコン)
  • ☁️=リモートリポジトリ(GitHubなど)

主に次の3パターンとなります。

  • A)ローカルで行う操作(Git コマンド)
  • B)リモートリポジトリ(GitHubなど)とのやり取り(Gitコマンド経由)
  • C)リモートリポジトリ(GitHubなど)を操作(CLI・Web・API)

A)ローカルで行う操作(Git コマンド)

対象:自分のPC上の「ローカルリポジトリ」
影響範囲:自分の環境のみ。GitHubには影響しない。

目的コマンド例実行場所影響範囲補足
Gitの初期化git init🖥️自分のPC内新しくGit管理を開始
ファイルの変更をステージングgit add .🖥️自分のPC内変更を「次のコミット候補」に追加
コミット(履歴保存)git commit -m "メッセージ"🖥️自分のPC内履歴を確定(GitHubには未送信)
状態確認git status, git log, git diff🖥️自分のPC内現在の変更・履歴・差分を確認
ブランチ作成git switch -c feature/x🖥️自分のPC内新しい作業ブランチを作成
ブランチ切替git switch feature/x🖥️自分のPC内作業ブランチを変更
ブランチ削除git branch -d feature/x🖥️自分のPC内不要ブランチを削除(ローカルのみ)
マージ(統合)git merge main🖥️自分のPC内他ブランチの変更を統合
Rebase(履歴を並べ直し)git rebase main🖥️自分のPC内履歴を直線的に整える(再書き換え)
作業一時退避git stash, git stash pop🖥️自分のPC内作業内容を一時保存・復元
タグ作成git tag v1.0.0🖥️自分のPC内リリースなどの節目をマーク
リモート設定git remote add origin <URL>🖥️自分のPC設定GitHubとの接続先を登録
リモートURL変更git remote set-url origin <URL>🖥️自分のPC設定HTTPS⇔SSHの切り替えなど

mainorigin feature/xv1.0.0などはコマンドの例で記載していますが、任意です。

B)GitHub(リモート)とのやり取り(Gitコマンド経由)

対象:ローカルとGitHubの両方を操作する
影響範囲:GitHub上のリポジトリ(リモートリポジトリ)にも反映

目的コマンド例実行場所影響範囲補足
GitHubの内容を取得git fetch origin
originは例で任意
🖥️ → ☁️ローカルにGitHubの更新を取得(反映はまだ)
更新を反映git pull --rebase origin main
origin mainは例で任意
🖥️ ↔ ☁️GitHubの最新履歴をローカルに統合
自分の変更をアップロードgit push -u origin feature/x🖥️ → ☁️ローカル変更をGitHubに送信
ブランチ削除(リモート側)git push origin --delete feature/x🖥️ → ☁️GitHub上のブランチを削除
リモート一覧確認git remote -v🖥️自分の設定(GitHub接続情報)接続URL確認
強制更新(安全版)git push --force-with-lease🖥️ → ☁️Rebase後などで履歴を再送信(他人の変更は保護)

mainorigin feature/xv1.0.0などはコマンドの例で記載していますが、任意です。

C)GitHubサービスを操作(CLI・Web・API)

対象:GitHub上の「リモートリポジトリ」「PR」「Issue」など
影響範囲:Web上のコラボ・レビュー・設定に反映される。

目的GitHub CLI(ghGitHub Web/API影響範囲
GitHubにリポジトリ作成gh repo createWebの「+」→ New repositoryGitHub上に新しいリポジトリを作成
リポジトリ取得gh repo clone <user>/<repo>WebでURLをコピーしてgit cloneローカルにGitHubリポジトリをコピー
Pull Request作成gh pr createWebの「New Pull Request」mainへ統合を提案
PRレビュー・マージgh pr review --approve, gh pr mergePR画面 → Merge/Squash/RebaseGitHub上の履歴に直接反映
Issue作成gh issue createIssues → New issueバグ・要望などを共有
リリース作成gh release create <tag>Releases → Draft a new releaseGitHub上の公開バージョン作成
Actionsログ確認gh run list
gh run view
Actions タブCI/CD実行結果確認
シークレット設定gh secret set NAMESettings → SecretsActionsや環境変数の管理
ブランチ保護設定Settings → Branches → Rulesレビュー必須・CI必須など制御
メンバー管理Settings → Collaboratorsリポジトリへのアクセス権を管理

補足

GitHubのブランチを追加・削除する操作

目的コマンド例実行場所影響範囲補足
新しいブランチをGitHub上に追加(公開)git push -u origin feature/new-branch🖥 ローカル(Gitコマンド)
→ GitHub(リモート)
GitHub上にブランチが作成されるローカルで git switch -c feature/new-branch してから push するのが一般的。-u で追跡設定。
GitHub CLIで新規ブランチ作成gh api repos/:owner/:repo/git/refs -f ref='refs/heads/feature/new-branch' -f sha=$(git rev-parse HEAD)🖥 ローカル端末(GitHub CLI)GitHub上に直接ブランチが追加されるghはREST APIを呼び出してリモート上にブランチを作成。自動で切り替えは行わない。
ブランチ削除(GitHub上)git push origin --delete feature/old-branch🖥 ローカル(Gitコマンド)
→ GitHub(リモート)
GitHub上の指定ブランチを削除main などの保護ブランチには適用不可。権限が必要。
GitHub CLIでブランチ削除gh api -X DELETE repos/:owner/:repo/git/refs/heads/feature/old-branch🖥 ローカル端末(GitHub CLI)GitHub上のブランチを直接削除REST API経由で削除する方法。保護ルールがある場合は拒否される。
Web画面でブランチ削除(Web)リポジトリ →「Branches」→ 対象ブランチ右側「Delete」🌐 WebブラウザGitHub上のブランチを削除Merge済みブランチはPR画面でも削除ボタンが表示される。
デフォルトブランチ変更(mainなど)🌐 Webブラウザ
Settings → Branches → Default branch
GitHubのデフォルト設定を変更新規PRやClone時のベースブランチが変わる。

mainorigin feature/xfeature/new-branchv1.0.0などはコマンドの例で記載していますが、任意です。

補足:ローカルとの関係

操作ローカルに影響GitHubに影響
git switch -c new-branch✅ 新しいブランチがローカルに作成❌ まだGitHubには存在しない
git push -u origin new-branch✅ ローカル追跡設定✅ GitHubにもブランチが追加
git push origin --delete old-branch❌ ローカルは残る✅ GitHubのブランチが削除
git branch -d old-branch✅ ローカルのブランチ削除❌ GitHubには影響なし

new-branchold-branchなどはコマンドの例で記載していますが、任意です。

よく使われるブランチ命名規則 *慣習的な命名例、任意の文字列でOK

種類意味 / 用途
main / mastermain正式版・本番運用ブランチ
developdevelop開発統合ブランチ
feature/*feature/add-login, feature/chat-ui新機能の開発用ブランチ
fix/*fix/typo, fix/api-bug不具合修正
hotfix/*hotfix/security-patch緊急修正(本番即時対応)
release/*release/v1.2.0リリース準備(バージョンごと)
experiment/*experiment/new-idea試験的な実装や実験コード
docs/*docs/readme-updateドキュメント修正・補足

GitHub の「Branches」一覧でも feature/, fix/ ごとにまとまるので管理が楽です。

自動ルール(CI/CDやPRテンプレート)に組み込みやすい

GitHub ActionsやCI設定では、
feature/*ブランチでpushされたときにテストを実行」
など、パターン指定で自動処理できます。

例(.github/workflows/test.yml):

on:
  push:
    branches:
      - 'feature/*'

参考

公式ドキュメント:
Git – 基本操作リファレンス
https://git-scm.com/docs

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

AIアーティスト | エンジニア | ライター | 最新のAI技術やトレンド、注目のモデル解説、そして実践に役立つ豊富なリソースまで、幅広い内容を記事にしています。フォローしてねヾ(^^)ノ

コメント

コメントする

目次