💻
実務github使い方
はじめに
この記事では、GitとGitHubを初めて使う方向けに、基本的なコマンドの使い方と、よくあるエラーの解決方法を解説します。
目次
- Git基本コマンド(add, commit, push)
- GitHubからプロジェクトを取得して作業する方法
- よくあるエラーと解決方法
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: 失われたコミットを復元
間違えて reset や rebase をしてしまった場合:
# 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 とデータファイルを更新"
まとめ
基本的な流れ
-
作業開始:
git cloneまたはgit pull - ファイル編集: エディタで自由に編集
-
変更を確認:
git status,git diff -
ステージング:
git add . -
コミット:
git commit -m "メッセージ" -
プッシュ:
git push origin main
エラーが出たら
- まず
git statusで状況を確認 - エラーメッセージをよく読む
-
git pullで最新の状態を取得 - 衝突があれば手動で解決
- 困ったら
git reflogで履歴を確認
安全のために
- 重要な変更の前に
git statusで確認 -
--forceの使用は慎重に - わからない時は
git logやgit reflogで履歴を確認 - 定期的に
git pushしてバックアップ
参考リソース
この記事が、Git と GitHub を使い始める方の助けになれば幸いです。
質問やフィードバックがあれば、コメント欄でお気軽にどうぞ!
Discussion