0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【保存版】現場で使えるGit実践Tips30選 ― 初心者が最初に覚えるべきコマンドと運用ルール

0
Posted at

はじめに

Git を学び始めたけれど、「addcommit はわかるけど、それ以外がよくわからない」という方は多いのではないでしょうか。

この記事では、実際の開発現場でよく使う Git コマンドと運用ノウハウを30個 厳選してまとめました。ブックマークして、困ったときに参照してください。

対象読者

  • Git の基本(add, commit, push)は知っている
  • チーム開発で Git を使い始めた
  • 「こういうときどうするんだっけ?」が多い

基本操作編

1. 変更状況の確認は git statusgit diff のセット

# 変更されたファイルの一覧
git status

# 変更内容の詳細(まだ add していないもの)
git diff

# add 済みの変更内容(次の commit に含まれるもの)
git diff --cached

コミット前に必ず git diff --cached で「何をコミットしようとしているか」を確認する習慣をつけましょう。

2. 特定のファイルだけ add する

# ❌ 全ファイルを一括 add(意図しないファイルが入る危険)
git add .

# ✅ ファイルを指定して add
git add src/UserService.java
git add src/UserController.java

git add . は便利ですが、.env や巨大なバイナリファイルが紛れ込むリスクがあります。

3. コミットメッセージの書き方

# 良い例:「何をしたか」が一目でわかる
git commit -m "ユーザー登録機能のバリデーションを追加"
git commit -m "ログイン画面のレイアウト崩れを修正"

# 悪い例:情報が足りない
git commit -m "修正"
git commit -m "update"
git commit -m "fix"

おすすめフォーマット:

<種類>: <何をしたか>

種類の例:
feat: 新機能
fix: バグ修正
refactor: リファクタリング
docs: ドキュメント
test: テスト
chore: 雑務(依存更新、設定変更等)

4. 直前のコミットメッセージを修正する

# メッセージだけ修正(ファイルの変更はなし)
git commit --amend -m "正しいコミットメッセージ"

ただし、すでに push したコミットを amend するのは危険です。ローカルのコミットのみに使いましょう。

5. コミット履歴を見やすく表示

# 1行ずつ簡潔に表示
git log --oneline

# ブランチの分岐・マージを視覚的に表示
git log --oneline --graph --all

# 最新5件だけ表示
git log --oneline -5

ブランチ編

6. ブランチの基本操作

# ブランチ一覧を見る
git branch

# リモートブランチも含めて一覧
git branch -a

# 新しいブランチを作成して移動
git checkout -b feature/user-registration

# ブランチを切り替える
git checkout main

# Git 2.23 以降は switch が推奨
git switch main
git switch -c feature/user-registration  # 作成 + 切替

7. ブランチ命名規則

feature/○○  … 新機能
fix/○○      … バグ修正
hotfix/○○   … 緊急修正
refactor/○○ … リファクタリング
docs/○○     … ドキュメント

チームでルールを統一しておくと、ブランチ名を見ただけで目的がわかります。

8. 不要なブランチを削除する

# ローカルブランチの削除(マージ済みのみ)
git branch -d feature/user-registration

# マージされていなくても強制削除
git branch -D feature/user-registration

# リモートブランチの削除
git push origin --delete feature/user-registration

マージ済みのブランチは定期的に掃除しましょう。

9. リモートの最新情報を取得する

# リモートの情報を取得(ローカルには反映しない)
git fetch

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

# pull は fetch + merge と同じ
git fetch && git merge origin/main

git fetch で確認 → 問題なければ git merge の2ステップが安全です。

10. 他の人のブランチをローカルに持ってくる

# リモートの情報を更新
git fetch

# リモートブランチをローカルにチェックアウト
git checkout -b feature/payment origin/feature/payment

マージ・コンフリクト編

11. ブランチをマージする

# main ブランチに切り替え
git switch main

# feature ブランチをマージ
git merge feature/user-registration

12. マージコンフリクトの解消

コンフリクトが発生すると、ファイル内に以下のような表示が出ます。

<<<<<<< HEAD
現在のブランチの内容
=======
マージしようとしているブランチの内容
>>>>>>> feature/user-registration

解消手順:

# 1. コンフリクトしたファイルを開いて、正しい内容に修正
# 2. マーカー(<<<<, ====, >>>>)を削除
# 3. 修正したファイルを add
git add src/UserService.java

# 4. コミット
git commit -m "feature/user-registration のマージコンフリクトを解消"

13. マージを中止する

# マージ作業を中止して、マージ前の状態に戻る
git merge --abort

コンフリクトが複雑で手に負えないときは、一度中止して作戦を立て直しましょう。

14. rebase と merge の使い分け

# merge:履歴にマージコミットが残る(チーム開発の標準)
git merge feature/user-registration

# rebase:履歴が一直線になる(個人の作業ブランチ向き)
git rebase main

基本ルール: 共有ブランチ(main, develop)には merge、個人ブランチの整理には rebase。


取り消し・やり直し編

15. add を取り消す

# 特定ファイルの add を取り消し
git restore --staged src/UserService.java

# 全ファイルの add を取り消し
git restore --staged .

16. ファイルの変更を取り消す(add 前)

# 特定ファイルを最後のコミット状態に戻す
git restore src/UserService.java

この操作は取り消しできません。変更内容が完全に失われるため、慎重に使いましょう。

17. 直前のコミットを取り消す(変更は残す)

# コミットだけ取り消し、変更はワーキングディレクトリに残る
git reset --soft HEAD~1

18. 特定のコミットの変更を打ち消す

# 指定したコミットの変更を打ち消す新しいコミットを作成
git revert <コミットハッシュ>

reset と違い、revert は履歴を書き換えないため、push 済みのコミットにも安全に使えます。

19. 作業を一時退避する(stash)

# 現在の変更を一時退避
git stash

# 退避した変更の一覧
git stash list

# 最新の退避を復元
git stash pop

# 特定の退避を復元
git stash apply stash@{1}

「今の作業を中断して別ブランチで作業したい」ときに便利です。


リモート操作編

20. push の基本

# 現在のブランチを push
git push origin feature/user-registration

# 初回 push 時に追跡ブランチを設定
git push -u origin feature/user-registration

# 以降は省略可能
git push

21. force push は原則禁止

# ❌ 絶対にやってはいけない(他の人の作業を破壊する)
git push --force origin main

# △ 個人ブランチでどうしても必要な場合はこちら
git push --force-with-lease origin feature/my-branch

--force-with-lease は、他の人が push していない場合のみ force push を許可するオプションです。

22. リモートブランチの情報をクリーンアップ

# リモートで削除されたブランチの参照をローカルから削除
git fetch --prune

GitHub 連携編

23. Pull Request の作成(GitHub CLI)

# GitHub CLI のインストール(macOS)
brew install gh

# PR 作成
gh pr create --title "ユーザー登録機能を追加" --body "バリデーションとテストを含む"

# PR の一覧
gh pr list

# PR の詳細を見る
gh pr view 123

24. PR のレビューコメントを見る

gh pr view 123 --comments

25. Issue の作成・管理

# Issue 作成
gh issue create --title "ログイン画面のレイアウト崩れ" --body "iOS Safari で崩れる"

# Issue 一覧
gh issue list

# Issue をクローズ
gh issue close 45

便利技・設定編

26. エイリアスで入力を短縮

# よく使うコマンドにエイリアスを設定
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm "commit -m"
git config --global alias.lg "log --oneline --graph --all"

設定後は git stgit lg のように短く打てます。

27. .gitignore の書き方

# IDE
.idea/
.vscode/
*.iml

# ビルド成果物
build/
target/
dist/
node_modules/

# 環境変数・機密情報
.env
.env.*
*.pem
*.key

# OS
.DS_Store
Thumbs.db

# ログ
*.log

プロジェクト開始時に必ず設定しましょう。gitignore.io で言語やフレームワークに合わせたテンプレートを生成できます。

28. 特定のコミットを別ブランチに適用する(cherry-pick)

# 特定のコミットだけ現在のブランチに適用
git cherry-pick <コミットハッシュ>

「このバグ修正だけ main にも適用したい」というときに使います。

29. 変更した行の担当者を調べる(blame)

# 各行の最終変更者とコミットを表示
git blame src/UserService.java

「この行を変更したのは誰?」を調べるときに使います。

30. 過去の操作履歴を見る(reflog)

# Git の操作履歴を表示
git reflog

「間違えて reset してしまった」「ブランチを消してしまった」ときの救済手段です。reflog から過去の状態のハッシュを見つけて復元できます。

# reflog で見つけたハッシュに戻る
git checkout <ハッシュ>
git switch -c recovered-branch

チーム開発のルール(テンプレート)

チームで Git を使うなら、以下のルールを共有しておくと事故が減ります。

# Git 運用ルール

## ブランチ
- main: 本番環境。直接 push 禁止
- develop: 開発環境。PR 経由でマージ
- feature/*: 機能開発
- fix/*: バグ修正

## コミットメッセージ
- 形式: <type>: <description>
- type: feat / fix / refactor / docs / test / chore

## Pull Request
- PR にはレビュアーを最低1人指定
- CI が通るまでマージしない
- マージ後はブランチを削除

## 禁止事項
- main / develop への直接 push
- force push(--force)
- .env ファイルのコミット

まとめ

カテゴリ 覚えておくべきコマンド
基本操作 status, diff, add, commit, log
ブランチ branch, switch, checkout -b, merge
取り消し restore, reset --soft, revert, stash
リモート push -u, pull, fetch, push --force-with-lease
便利技 cherry-pick, blame, reflog, エイリアス

Git は最初は覚えることが多く感じますが、実際に現場でよく使うコマンドは限られています。この記事の内容をひと通り把握しておけば、日常の開発で困ることはほぼありません。

参考


@kotaro_ai_lab
AI活用や開発効率化について発信しています。フォローお気軽にどうぞ!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?