プログラミング

【実務で使える】GitHubコマンド一覧|初心者から中級者まで使える基本と応用

目次

GitHubコマンドとは?実務で使いこなすべき理由

GitHubの操作には、**GUI(グラフィカルユーザーインターフェース)CLI(コマンドラインインターフェース)**の2つの方法があります。GitHub DesktopやSourceTreeなどのGUIツールは直感的で初心者に優しい一方、実務レベルのチーム開発では、CLIコマンドの習得が不可欠です。

CLIコマンドが実務で重視される理由は、再現性・自動化・トラブル対応力にあります。コマンドは文字列で記録できるため、手順の共有が容易で、属人化を防げます。また、複雑な操作やサーバー環境での作業では、CLIでなければ対応できない場面も多々あります。

GUIとCLIの使い分け

GUIツールの利点

  • 視覚的にわかりやすく、ブランチ構造やコミット履歴をグラフィカルに表示
  • マウス操作で完結し、学習コストが低い

CLIの利点

  • キーボードだけで高速に操作でき、慣れれば圧倒的に効率的
  • コマンド履歴が残るため、同じ操作を確実に再現可能
  • スクリプト化して作業を自動化できる
  • エラーメッセージが詳細で、問題の原因を特定しやすい
  • SSH接続したサーバー環境でもスムーズに操作可能

実務では、日常的な確認作業はGUI、重要な操作や複雑な処理はCLIという使い分けが効果的です。

CLIコマンドが必須となる場面

1. チーム開発でのブランチ運用
複数人での並行開発では、ブランチの作成・切り替え・マージを頻繁に行います。git checkout -b feature/new-functionのように一行で新規ブランチを作成して切り替えられるため、作業効率が格段に向上します。

2. コンフリクト(競合)の解消
マージ時のコンフリクトでは、CLIが詳細なエラーメッセージを表示します。git statusで状態を確認し、git diffで差分を見ながら修正する流れは、GUIより正確に状況を把握できます。

3. コミット履歴の整理
プルリクエスト前のコミット履歴整理には、git rebase -igit commit --amendが必須です。これらはCLIでこそ真価を発揮します。

4. CI/CDパイプラインとの連携
自動テストや自動デプロイの設定では、必ずCLIコマンドを使用します。これらを理解し、カスタマイズするためにも、コマンドの知識は不可欠です。

5. リモート環境での作業
本番サーバーや開発サーバーにSSH接続して作業する際は、GUIツールが使えません。CLIコマンドの習得は、サーバー管理の前提条件となります。

本記事で扱うコマンドの範囲

本記事では、実務で頻繁に使用するGitコマンドを基本編・ブランチ操作編・応用編の3段階で解説します。

前提知識

  • Gitの基本概念(リポジトリ、コミット、ブランチ)を理解している
  • ターミナルの基本操作ができる
  • GitHubアカウントを持ち、リポジトリ作成の経験がある

コマンドの範囲

  • 基本編: リポジトリ準備、変更の記録、状態確認、リモート連携
  • ブランチ操作編: ブランチの作成・切り替え・統合・削除
  • 応用編: 変更の一時退避、履歴の整理、コミットの取り消し

各コマンドは基本構文 → 実務でよく使うオプション → つまずきやすいポイントの順で解説します。

【基本編】最初に覚えるべきGitHubコマンド

実務でGitを使う上で最初に習得すべきコマンドは、それほど多くありません。リポジトリの準備、変更の記録、状態の確認、リモートとの連携――この4つの操作をマスターすれば、日常的な開発作業の大半をこなせます。

リポジトリの準備|git init / git clone

新規リポジトリの作成(git init)

git init

現在のディレクトリをGitリポジトリとして初期化します。実行すると.gitフォルダが作成され、Git管理が開始されます。

実務での使用例:

mkdir my-project
cd my-project
git init

既存リポジトリのコピー(git clone)

git clone [リポジトリURL]

GitHubなどのリモートリポジトリをローカル環境にコピーします。チーム開発参加時は、必ずこのコマンドから始めます。

git clone https://github.com/username/repository.git
cd repository

ディレクトリ名を指定することも可能です:

git clone https://github.com/username/repository.git my-project

注意点

  • git init実行前に、正しいディレクトリにいるか確認(pwdコマンドで確認)
  • git cloneは自動的にディレクトリを作成するため、事前のディレクトリ作成は不要
  • プライベートリポジトリのクローンには、SSH鍵設定または認証情報が必要

変更を記録する|git add / git commit

ファイルの変更をGitで記録するには、2段階のステップを踏みます。

ステージングエリアに追加(git add)

git add [ファイル名]

変更したファイルを「次のコミットに含める」という意思表示をします。

実務でよく使うパターン:

git add index.html              # 特定ファイルを追加
git add index.html style.css    # 複数ファイルを追加
git add .                       # すべての変更を追加
git add src/                    # 特定ディレクトリ配下をすべて追加

変更を確定(git commit)

git commit -m "コミットメッセージ"

ステージングエリアの変更を履歴として確定します。コミットメッセージは必須です。

git add .
git commit -m "ユーザー登録機能を追加"

addとcommitを同時実行

git commit -am "修正内容"

-aオプションで追跡済みファイルの変更を自動的にステージングしてコミットできます。ただし、新規ファイルには適用されないため注意が必要です。

コミットメッセージのベストプラクティス

  • 1行目:変更内容を50文字以内で簡潔に
  • 2行目:空行
  • 3行目以降:詳細な説明(必要な場合のみ)

実務でのメッセージ例:

git commit -m "feat: ユーザー登録APIを実装"
git commit -m "fix: ログイン時のバリデーションエラーを修正"
git commit -m "docs: READMEにセットアップ手順を追加"

状態を確認する|git status / git log

現在の状態を確認(git status)

git status

現在のブランチ、ステージングエリアの状態、変更されたファイルを表示します。実務で最も頻繁に使うコマンドの一つです。

表示される情報:

  • Changes to be committed: ステージング済み(次のコミットに含まれる)
  • Changes not staged for commit: 変更されているがステージングされていない
  • Untracked files: Gitで追跡されていない新規ファイル

実務での使用習慣:

git status          # 作業前に現在の状態を確認
# ファイルを編集
git status          # 変更内容を確認
git add .
git status          # 再度確認
git commit -m "変更内容"

コミット履歴を確認(git log)

git log

過去のコミット履歴を時系列で表示します。

実務でよく使うオプション:

git log --oneline                    # 1行で簡潔に表示
git log -5                           # 最新5件のみ表示
git log --oneline --graph --all      # グラフ形式で表示
git log -- index.html                # 特定ファイルの履歴のみ
git log --since="2024-01-01"         # 特定期間のコミット
git log --author="Yamada"            # 特定作成者のコミット

注意点

  • git log実行後はqキーで終了
  • ログが多い場合は--onelineオプションを使用
  • 具体的な変更内容はgit diffで確認

リモートと連携する|git push / git pull

ローカルの変更をリモートに送信(git push)

git push origin [ブランチ名]

ローカルでコミットした変更をリモートリポジトリに反映させます。

git add .
git commit -m "新機能を追加"
git push origin main

初回のpush時は-uオプションを使用:

git push -u origin main

これにより、次回以降はgit pushだけで同じブランチにプッシュできます。

リモートの変更をローカルに取り込む(git pull)

git pull origin [ブランチ名]

リモートリポジトリの最新変更をローカルに取り込みます。チーム開発では、作業開始前に必ず実行する習慣をつけましょう。

実務での使用習慣:

git pull origin main        # 朝の作業開始時
# 自分の作業
git add .
git commit -m "作業内容"
git pull origin main        # プッシュ前に最新状態を確認
git push origin main

pullとfetchの違い

  • git pull: リモートの変更を取得して自動的にマージ
  • git fetch: リモートの変更を取得するだけ(マージはしない)

安全性を重視する場合はfetchを使用:

git fetch origin
git merge origin/main

プッシュ前の確認チェックリスト

git status              # 変更が正しくコミットされているか
git log -1              # 最新のコミットメッセージを確認
git pull origin main    # 最新状態を取得
git push origin main    # プッシュ

【ブランチ操作編】チーム開発で必須のコマンド

チーム開発において、ブランチ操作は最も重要なスキルです。複数人が同時に開発を進める際、メインブランチを直接編集せず、機能ごとに別ブランチを作成して作業します。これにより、他メンバーの作業に影響を与えず、安全に開発を進められます。

ブランチを作成・切り替える|git branch / git checkout / git switch

ブランチの確認と作成(git branch)

git branch                  # 現在のブランチ一覧を表示
git branch feature/login    # 新しいブランチを作成(切り替えはしない)
git branch -a               # リモートも含めたすべてのブランチを表示

実務では、ブランチ名にプレフィックスを付けるのが一般的です:

  • feature/: 新機能の開発
  • fix/: バグ修正
  • hotfix/: 緊急の修正
  • release/: リリース準備

ブランチの切り替え(git checkout / git switch)

従来の方法:

git checkout feature/login              # 既存ブランチに切り替え
git checkout -b feature/new-function    # 新規ブランチを作成して切り替え

新しい方法(Git 2.23以降推奨):

git switch feature/login                # 既存ブランチに切り替え
git switch -c feature/new-function      # 新規ブランチを作成して切り替え
git switch -                            # 直前のブランチに戻る

checkoutとswitchの使い分け

  • git switch: ブランチ切り替え専用(役割が明確)
  • git checkout: 多機能だが混乱しやすい

新規プロジェクトではgit switchの使用を推奨します。

実務での典型的な作業フロー

git switch main
git pull origin main
git switch -c feature/user-profile
# 開発作業
git add .
git commit -m "ユーザープロフィール画面を実装"
git push -u origin feature/user-profile

注意点

  • ブランチ切り替え前に、変更をコミットまたはstashする必要がある
  • ブランチ名を間違えると新しいブランチが作成される
  • リモートブランチに切り替える際は、まずgit fetchで最新情報を取得

変更を統合する|git merge

開発完了後、ブランチの変更をメインブランチに統合するのがgit mergeです。

基本的なマージ操作

git switch main             # マージ先のブランチに切り替え
git pull origin main        # 最新状態に更新
git merge feature/login     # マージ元のブランチを統合

マージの種類

  1. Fast-forward merge(早送りマージ): ブランチが一直線の場合、単純にポインタを進める
  2. 3-way merge(三方向マージ): 両方のブランチに新しいコミットがある場合、マージコミットを作成

実務での使い分け:

git merge --ff-only feature/login    # Fast-forwardマージを強制
git merge --no-ff feature/login      # 必ずマージコミットを作成

マージコンフリクト(競合)への対処

git merge feature/login
# CONFLICT (content): Merge conflict in index.html

git status                  # コンフリクトが発生したファイルを確認
# ファイルを開いて手動で修正
# <<<<<<< HEAD(自分の変更)
# =======(相手の変更)
# >>>>>>> feature/login

git add index.html
git commit -m "コンフリクトを解決"

実務でのコンフリクト対処のコツ

  • コンフリクト発生時は、まず変更内容を相手に確認
  • 安易に自分の変更を優先せず、両方の意図を理解してから統合
  • 解決後は必ず動作確認を実施

マージを取り消す

git merge --abort    # マージ前の状態に戻す

ブランチを削除する|git branch -d

作業完了後、マージ済みのブランチは削除して整理します。

ローカルブランチの削除

git branch -d feature/login     # マージ済みブランチを削除
git branch -D feature/login     # 強制削除

-dは安全な削除方法で、マージされていないブランチは削除できません。-Dは強制削除なので、本当に不要か確認してから実行しましょう。

リモートブランチの削除

git push origin --delete feature/login

実務での削除フロー

git switch main
git branch -d feature/login
git push origin --delete feature/login
git fetch --prune    # リモートで削除されたブランチ情報をローカルからも削除

【応用編】実務で差がつく便利なコマンド

変更を一時退避する|git stash

作業中に別の緊急対応が入った場合など、現在の変更を一時的に退避できます。

git stash                   # 現在の変更を退避
git stash list              # 退避した変更の一覧
git stash pop               # 最新の退避を復元して削除
git stash apply             # 最新の退避を復元(削除しない)
git stash drop              # 最新の退避を削除

実務での使用例:

# feature/loginで作業中
git stash                   # 変更を退避
git switch main             # mainブランチに切り替え
# 緊急対応
git switch feature/login    # 元のブランチに戻る
git stash pop               # 作業を復元

コミット履歴を整える|git rebase / git commit –amend

直前のコミットを修正(git commit –amend)

git commit --amend -m "正しいコミットメッセージ"    # メッセージのみ修正
git add 忘れてたファイル.txt
git commit --amend --no-edit                      # ファイルを追加

複数のコミットを整理(git rebase)

git rebase -i HEAD~3    # 直近3件のコミットを編集
# エディタで "pick" を "edit" や "squash" に変更

注意点

  • リモートにプッシュ済みのコミットは原則修正しない(他メンバーに影響)
  • 必要な場合はチームに周知してからgit push --force

特定のコミットを取り消す|git revert / git reset

コミットを取り消す(git reset)

git reset --soft HEAD^      # コミットのみ取り消す(変更は残る)
git reset HEAD^             # コミットとステージングを取り消す
git reset --hard HEAD^      # コミットも変更も完全に削除(注意!)

安全にコミットを打ち消す(git revert)

git revert [コミットID]     # 指定コミットを打ち消す新しいコミットを作成

git revertは履歴を残すため、リモートにプッシュ済みのコミットを取り消す際に推奨されます。

差分を確認する|git diff

git diff                        # ステージング前の変更を表示
git diff --staged               # ステージング済みの変更を表示
git diff main feature/login     # ブランチ間の差分を表示
git diff HEAD~3 HEAD            # 3つ前のコミットとの差分

実務でよくある操作パターン

新機能開発を始めるときの流れ

git switch main
git pull origin main
git switch -c feature/user-profile
# 開発作業
git add .
git commit -m "ユーザープロフィール画面の基本レイアウトを実装"
git push origin feature/user-profile

ポイント

  • 必ずmainを最新にしてからブランチを作成
  • ブランチ名は命名規則を統一(feature/機能名など)
  • 1日の終わりには必ずリモートにプッシュ

他のメンバーの変更を取り込むとき

方法1:merge を使う(推奨・初心者向け)

git add .
git commit -m "作業中の変更を保存"
git switch main
git pull origin main
git switch feature/user-profile
git merge main

方法2:rebase を使う(履歴を綺麗に保ちたい場合)

git add .
git commit -m "作業中の変更を保存"
git fetch origin
git rebase origin/main
# コンフリクトがあれば解決
git add .
git rebase --continue

mergeとrebaseの使い分け

  • merge: 操作が安全で初心者向け
  • rebase: 履歴が一直線で綺麗だが、操作ミスのリスクあり

チームで方針を統一することが重要です。

間違えてコミットしてしまったとき

ケース1:直前のコミットメッセージを修正

git commit --amend -m "正しいコミットメッセージ"

ケース2:直前のコミットにファイルを追加

git add 忘れてたファイル.txt
git commit --amend --no-edit

ケース3:直前のコミットを取り消す

git reset --soft HEAD^    # 推奨:変更内容は残す
git reset --hard HEAD^    # 注意:変更も完全に削除

GitHubコマンドで困ったときの対処法

よくあるエラーと解決方法

1. Permission denied (publickey)

SSH接続の認証失敗です。

# HTTPS接続に切り替える
git remote set-url origin https://github.com/ユーザー名/リポジトリ名.git

# SSH接続のテスト
ssh -T git@github.com

2. Merge conflict(マージコンフリクト)

git status              # コンフリクトファイルを確認
# ファイルを手動で修正
git add index.html
git commit -m "コンフリクトを解決"

3. Your branch is behind ‘origin/main’

git pull origin main    # リモートの変更を取り込む

4. Failed to push some refs

git pull origin main    # リモートの変更を取り込む
# コンフリクトがあれば解決
git push origin main

コマンド実行前の確認習慣

基本チェックリスト

git branch      # 現在のブランチを確認
git status      # 作業ディレクトリの状態を確認
git fetch origin
git status      # リモートとの差分を確認

git statusを習慣化する重要性

git statusは現在の状態を把握するための最重要コマンドです。コマンド実行前後に必ず実行する癖をつけましょう。

困ったときに調べる方法

公式ドキュメント

コマンドラインでヘルプ表示

git help コマンド名
git help commit

効果的な検索方法

"Permission denied (publickey)" GitHub
"マージコンフリクト" 解決方法 Git

チーム内で質問しやすい環境づくり

  • Slackなどに「Git質問チャンネル」を作る
  • 過去の質問と回答をドキュメント化
  • 「分からないことは恥ずかしくない」という文化を作る

GitHubコマンドを活用したチーム開発の効率化

コマンド操作の標準化が属人化を防ぐ

「この作業は〇〇さんしかできない」という状態は、チームにとって大きなリスクです。GitHubコマンドの使い方を標準化することで、誰でも同じ品質で作業できる体制を構築しましょう。

標準化すべき項目

ブランチ命名規則

feature/機能名    # 新機能開発
fix/バグ内容      # バグ修正
refactor/対象    # リファクタリング
docs/内容        # ドキュメント修正

コミットメッセージのフォーマット

[add] ユーザープロフィール画面を追加
[fix] ログイン時のエラーハンドリングを修正
[update] 顧客管理APIのレスポンス形式を変更

基本的な作業フロー

# 毎日の作業開始時
git switch main
git pull origin main
git switch 作業ブランチ

# 作業終了時
git add .
git commit -m "コミットメッセージ"
git push origin 作業ブランチ

社内ドキュメントに残すべき内容

  • よく使うコマンド一覧
  • シーン別の操作手順
  • エラー発生時の対処法
  • 質問先・相談先

小さなチームこそ、基本を押さえた運用が大切

小規模チームでも実践できる基本ルール:

1. 毎日のプルリクエスト文化

  • どんなに小さな変更でもプルリクエストを作成
  • 最低1人のレビューを必須に
  • コードレビューは学び合いの場として捉える

2. ブランチ運用のシンプル化

  • mainブランチ + 作業ブランチのシンプルな構成
  • 作業ブランチは、マージ後すぐに削除

3. 定期的な振り返り

  • 週1回、15分程度の「Git運用の振り返り」を実施
  • 困ったことや改善したいことを共有
  • ルールは柔軟に見直す

Harmonic Societyが考える「ちょうどいい仕組みづくり」

私たちHarmonic Societyは、中小企業にとって「ちょうどいい」デジタル化を支援しています。GitHubの運用も同じです。大企業向けの複雑な運用ではなく、御社の規模や開発体制に合った、無理なく続けられる仕組みを一緒に考えます。

Harmonic Societyが提供できる支援

1. チーム開発の体制構築

  • 現状の開発フローをヒアリングし、課題を整理
  • チームの規模やスキルレベルに合わせたGit運用ルールの策定
  • 社内ドキュメント・マニュアルの作成支援

2. 実務に即した教育・レクチャー

  • 実際のプロジェクトを使ったハンズオン形式
  • よくあるトラブルと対処法を実例をもとに解説
  • 質問しやすい環境づくりのサポート

3. 開発環境の整備

  • GitHubだけでなく、CI/CDやコードレビューツールの導入支援
  • 過度に複雑にせず、必要最小限の構成で効率化
  • 運用開始後のフォローアップ

こんなお悩みはありませんか?

  • Gitを導入したいが、何から始めればいいか分からない
  • 今の運用が属人化していて、標準化したい
  • エラーが出たときに対処できるメンバーが限られている

もし一つでも当てはまるなら、ぜひ一度ご相談ください。御社の状況に合わせた「ちょうどいい」Git運用を、一緒に考えさせていただきます。

お問い合わせ
Harmonic Society株式会社
https://harmonic-society.co.jp/contact/

まとめ|GitHubコマンドで開発をもっとスムーズに

本記事では、GitHubコマンドの基本から実務での応用まで、チーム開発で本当に使える知識を解説しました。

記事の要点

  • 基本コマンド(clone、add、commit、push、pull)の正しい理解が第一歩
  • ブランチ操作を使いこなすことで、複数人での並行開発がスムーズに
  • 実務でのシーン別パターンを覚えれば、迷わず作業を進められる
  • エラーへの対処法を知っていれば、トラブル時も冷静に対応可能
  • 標準化とドキュメント化が、属人化を防ぎチーム全体の効率を高める

GitHubコマンドは、最初は難しく感じるかもしれません。しかし、基本を押さえて実務で繰り返し使っていくうちに、自然と身についていきます。

大切なのは、完璧を目指すことではなく、チーム全員が安心して使える「ちょうどいい」運用を見つけることです。本記事が、あなたのチーム開発をより快適にする一助となれば幸いです。

師田 賢人

一橋大学商学部を卒業後、Accenture Japanに新卒入社し、ITコンサルタントとして大手企業のシステム導入・業務改善プロジェクトに従事。その後、Webエンジニアとしての実務経験を積み、2016年に独立。 独立後は、企業向けのWebシステム開発・業務効率化ツール構築を中心に、80件以上のプロジェクトを担当し、100社以上の企業と取引実績を持つ。技術領域ではブロックチェーン分野にも精通し、200名以上の専門家への取材・記事執筆を経験。 2023年にHarmonic Society株式会社を設立し、現在はAI駆動のWebサイト制作・業務システム開発・自動化ソリューションを提供。 中小企業から教育機関まで、幅広いクライアントのDXを支援している。

ちょっとした業務の悩みも、気軽にご相談ください。

コメントを残す