💻

実務github使い方

に公開

はじめに

この記事では、GitとGitHubを初めて使う方向けに、基本的なコマンドの使い方と、よくあるエラーの解決方法を解説します。

目次

  1. Git基本コマンド(add, commit, push)
  2. GitHubからプロジェクトを取得して作業する方法
  3. よくあるエラーと解決方法

1. Git基本コマンド

git add - 変更をステージングに追加

git addは、変更したファイルを「次のコミットに含める準備」をするコマンドです。

# 特定のファイルを追加
git add ファイル名.txt

# 複数のファイルを追加
git add ファイル1.js ファイル2.css

# すべての変更ファイルを追加
git add .

使用例:

# README.mdを編集した後
git add README.md

# data フォルダ内のすべてのファイルを追加
git add data/

ポイント:

  • git add . は現在のディレクトリ以下のすべての変更を追加します
  • 間違えて追加した場合は git restore --staged ファイル名 で取り消せます

git commit - 変更を記録

git commitは、ステージングに追加した変更を「確定」してGitの履歴に記録します。

# コミットメッセージを付けて保存
git commit -m "コミットメッセージ"

# 詳細なメッセージを書く(エディタが開く)
git commit

使用例:

# 新機能を追加した場合
git commit -m "ユーザー登録機能を追加"

# バグを修正した場合
git commit -m "ログイン時のエラーを修正"

# add と commit を同時に行う(既存ファイルの変更のみ)
git commit -am "README を更新"

良いコミットメッセージの書き方:

  • 何をしたか明確に書く
  • 日本語でも英語でもOK
  • 例:「ボタンの色を青に変更」「Fix login bug」

git push - GitHubに送信

git pushは、ローカルでコミットした変更をGitHub(リモートリポジトリ)に送信します。

# 基本的な push
git push origin main

# 初回push時(ブランチを追跡させる)
git push -u origin main

使用例:

# mainブランチにpush
git push origin main

# 別のブランチにpush
git push origin feature-branch

2. GitHubからプロジェクトを取得して作業する流れ

ステップ1: リポジトリをクローン

# GitHubからプロジェクトをダウンロード
git clone https://github.com/ユーザー名/リポジトリ名.git

# 例
git clone https://github.com/safe1124/pohanglotto.git

クローン後、作業ディレクトリに移動します:

cd リポジトリ名

ステップ2: ファイルを編集

好きなエディタでファイルを編集します。


ステップ3: 変更を確認

# 変更されたファイルを確認
git status

# 具体的な変更内容を確認
git diff

git status の出力例:

On branch main
Changes not staged for commit:
  modified:   README.md
  modified:   data/lotto_dataset.js

ステップ4: 変更を追加してコミット

# 1. 変更をステージング
git add .

# 2. コミット
git commit -m "1194回のデータを追加"

# 3. GitHubに送信
git push origin main

完全なワークフロー例

# 1. GitHubからクローン
git clone https://github.com/myname/myproject.git
cd myproject

# 2. ファイルを編集(エディタで作業)

# 3. 変更を確認
git status
git diff

# 4. 変更を追加
git add .

# 5. コミット
git commit -m "新しい機能を追加"

# 6. GitHubにプッシュ
git push origin main

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

エラー1: non-fast-forward エラー

! [rejected] main -> main (non-fast-forward)
error: failed to push some refs

原因:
GitHubのリポジトリに、ローカルにない変更が存在する場合に発生します。

解決方法:

方法A: Pull して Merge(推奨)

# 1. リモートの変更を取得してマージ
git pull origin main

# 2. 衝突があれば解決(後述)

# 3. 再度push
git push origin main

方法B: Pull して Rebase

# 1. リモートの変更を取得してリベース
git pull --rebase origin main

# 2. 衝突があれば解決

# 3. 再度push
git push origin main

方法C: Force Push(注意が必要)

# ローカルの変更でリモートを上書き
git push --force origin main

エラー2: Merge Conflict(衝突)

CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.

原因:
同じファイルの同じ場所が、ローカルとリモートで異なる変更がされている場合に発生します。

解決方法:

1. 衝突ファイルを確認

git status

出力例:

Unmerged paths:
  both modified:   README.md

2. ファイルを開いて手動で編集

衝突しているファイルには以下のようなマークが付いています:

<<<<<<< HEAD
これはローカルの変更
=======
これはリモートの変更
>>>>>>> origin/main

編集例:

# 必要な方を残すか、両方を統合する
これはローカルの変更
これはリモートの変更

3. 衝突を解決してコミット

# 1. 編集したファイルを追加
git add README.md

# 2. マージを完了
git commit -m "衝突を解決"

# 3. プッシュ
git push origin main

エラー3: 間違えてコミットした場合

直前のコミットを取り消す

# コミットを取り消すが、変更は残す
git reset --soft HEAD^

# コミットと変更を完全に取り消す
git reset --hard HEAD^

コミットメッセージだけ修正したい

git commit --amend -m "新しいメッセージ"

エラー4: 失われたコミットを復元

間違えて resetrebase をしてしまった場合:

# 1. コミット履歴を確認
git reflog

# 2. 戻りたいコミットのハッシュを探す
# 例: 730565c HEAD@{2}: commit: 1194回のデータ追加

# 3. そのコミットに戻る
git reset --hard 730565c

便利なコマンド集

現在の状態を確認

# 変更されたファイルを確認
git status

# コミット履歴を確認
git log --oneline

# リモートリポジトリを確認
git remote -v

# ブランチ一覧を確認
git branch

リモートの最新情報を取得

# リモートの情報だけ取得(まだマージしない)
git fetch origin

# リモートとローカルの差分を確認
git log --oneline main..origin/main

特定のファイルだけコミット

# 特定のファイルだけ追加
git add README.md data/new_data.js

# コミット
git commit -m "README とデータファイルを更新"

まとめ

基本的な流れ

  1. 作業開始: git clone または git pull
  2. ファイル編集: エディタで自由に編集
  3. 変更を確認: git status, git diff
  4. ステージング: git add .
  5. コミット: git commit -m "メッセージ"
  6. プッシュ: git push origin main

エラーが出たら

  1. まず git status で状況を確認
  2. エラーメッセージをよく読む
  3. git pull で最新の状態を取得
  4. 衝突があれば手動で解決
  5. 困ったら git reflog で履歴を確認

安全のために

  • 重要な変更の前に git status で確認
  • --force の使用は慎重に
  • わからない時は git loggit reflog で履歴を確認
  • 定期的に git push してバックアップ

参考リソース


この記事が、Git と GitHub を使い始める方の助けになれば幸いです。
質問やフィードバックがあれば、コメント欄でお気軽にどうぞ!

Discussion