下書き_Salesforce開発でよく使うGitコマンドまとめ
この記事は、Salesforce 開発で Git を使い始めた人、または「毎回同じコマンドを検索している」人向けに、実務でよく使う Git 操作を用途別にまとめたものです。
読み終わると、ブランチ作成からコミット、リモート反映、コンフリクト対応までの最低限の流れを、コマンド単位で思い出せるようになります。
想定読者
- Salesforce プロジェクトで Git 管理(GitHub / GitLab など)を使い始めた人
- VS Code や Salesforce CLI と併用してソースを扱う人
- この記事では扱わないこと: Git の内部構造、高度な rebase 運用、Git Flow 全体の設計議論
結論
- Salesforce 開発でも、普段使う Git は「状態確認 → 差分確認 → コミット → プッシュ / プル」が中心
- ブランチは機能・修正単位で切る。
main/masterへ直接コミットしない運用が多い - 迷ったらまず
git statusとgit 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開発で特に意識すること
- retrieve 後は必ず
git status/git diff
想定外のメタデータ(翻訳、プロファイルなど)が増えていないか確認する。 - 関係ないファイルをコミットしない
.forceignoreや.gitignoreをプロジェクトで揃える。 - コミットメッセージは「何をなぜ」
例:fix: Caseクローズ時のメール送信条件を修正 - 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)でよく使うコマンドまとめ」を参照。