下書き_Salesforce開発でよく使うGitコマンドまとめ


この記事は、Salesforce 開発で Git を使い始めた人、または「毎回同じコマンドを検索している」人向けに、実務でよく使う Git 操作を用途別にまとめたものです。

読み終わると、ブランチ作成からコミット、リモート反映、コンフリクト対応までの最低限の流れを、コマンド単位で思い出せるようになります。

想定読者

  • Salesforce プロジェクトで Git 管理(GitHub / GitLab など)を使い始めた人
  • VS Code や Salesforce CLI と併用してソースを扱う人
  • この記事では扱わないこと: Git の内部構造、高度な rebase 運用、Git Flow 全体の設計議論

結論

  • Salesforce 開発でも、普段使う Git は「状態確認 → 差分確認 → コミット → プッシュ / プル」が中心
  • ブランチは機能・修正単位で切る。main / master へ直接コミットしない運用が多い
  • 迷ったらまず git statusgit diff を見る

実際の環境

  • OS: Windows / WSL(Ubuntu)想定
  • ツール: Git、VS Code、Salesforce CLI(sf
  • 前提: リモートリポジトリが用意済みで、ローカルに clone できること
  • 検証日: 2026-08-09(コマンドは一般的な使い方。環境差でオプションが異なる場合あり)

背景と課題

Salesforce 開発では、Apex・LWC・メタデータを Git で管理することが一般的です。
CLI で retrieve / deploy する前後に「今どのファイルが変わったか」を把握できないと、余計なメタデータまでコミットしてしまいがちです。

そのため、Salesforce 固有というより 開発フローの中で毎回使う Git コマンド を手元に置いておくのが有効です。

よく使うコマンド

1. リポジトリの取得と状態確認

# リモートからクローン
git clone <リポジトリURL>
cd <プロジェクト>

# 今の状態(変更ファイル、ブランチ)を確認
git status

# 短い表示
git status -sb

# コミット履歴
git log --oneline -n 20

2. ブランチ操作

# 現在のブランチ一覧
git branch

# リモート含む一覧
git branch -a

# 作業ブランチを切って移動
git switch -c feature/add-account-trigger

# 既存ブランチへ移動
git switch main

# 古い書き方(まだ見かける)
git checkout -b feature/add-account-trigger

Salesforce 案件では、チケット番号や機能名をブランチ名に入れることが多いです。

例: feature/SF-123-update-opportunity-flow

3. 変更のステージとコミット

# 変更差分を確認
git diff

# ステージ済みとの差分
git diff --staged

# 特定ファイルだけステージ
git add force-app/main/default/classes/AccountService.cls
git add force-app/main/default/classes/AccountService.cls-meta.xml

# まとめてステージ(やりすぎ注意)
git add .

# コミット
git commit -m "fix: Account更新時のNullチェックを追加"

Apex は .cls.cls-meta.xml がセットなので、片方だけコミットしないよう注意します。

4. リモートとの同期

# リモートの最新を取得(マージはしない)
git fetch origin

# 現在ブランチを最新化(環境によって pull の挙動が異なる)
git pull origin main

# 自分のブランチを push
git push -u origin feature/add-account-trigger

# すでに upstream 設定済みなら
git push

5. 一時退避とやり直し

# 作業中の変更を一時退避
git stash
git stash push -m "wip: trigger調査中"

# 退避一覧
git stash list

# 最新の退避を戻す
git stash pop

# 直前のコミットメッセージだけ修正(まだ push していないとき)
git commit --amend -m "fix: メッセージを修正"

# ファイルの変更を破棄(注意: 戻らない)
git restore force-app/main/default/classes/AccountService.cls

# ステージ解除
git restore --staged force-app/main/default/classes/AccountService.cls

6. コンフリクトが起きたとき

git pull origin main
# コンフリクト発生後

git status
# 衝突ファイルを手動修正

git add <修正したファイ>
git commit
# またはマージ継続
git merge --continue

LWC の HTML / JS / CSS や、巨大な profile / permissionset メタデータはコンフリクトしやすいので、可能な範囲で変更単位を小さくします。

Salesforce開発で特に意識すること

  1. retrieve 後は必ず git status / git diff
    想定外のメタデータ(翻訳、プロファイルなど)が増えていないか確認する。
  2. 関係ないファイルをコミットしない
    .forceignore.gitignore をプロジェクトで揃える。
  3. コミットメッセージは「何をなぜ」
    例: fix: Caseクローズ時のメール送信条件を修正
  4. main 直コミットを避ける
    PR / MR 経由にする運用が多い。

最低限の一日の流れ(例)

git switch main
git pull origin main
git switch -c feature/SF-200-fix-validation

# 実装・sf project retrieve / deploy など

git status
git diff
git add force-app/main/default/classes/...
git commit -m "fix: 入力規則の条件を修正"
git push -u origin feature/SF-200-fix-validation

ハマったこと

  • git add . でローカル設定や不要メタデータまで入れてしまった
  • .cls だけコミットして meta ファイルを忘れた
  • まだレビュー前のコミットを amend / rebase して共有ブランチを壊しそうになった

まとめ

  • 毎日使うのは status / diff / switch / add / commit / push / pull
  • Salesforce では retrieve 後の差分確認が特に重要
  • 困ったら「今どこにいるか」(git status -sb)から戻る

関連: SF CLI 側のよく使うコマンドは、別記事「Salesforce CLI(sf)でよく使うコマンドまとめ」を参照。