SVN コマンドチートシート
Subversion (SVN) コマンドを素早く参照:checkout、update、commit、branch / tag、merge、履歴の確認、リポジトリ管理 — よく使うオプションと実用例をまとめました。
28 コマンド
はじめに
svn checkout <url> [<dir>]リポジトリから作業コピーをチェックアウト;プロジェクト ファイルを最初に取得するときに使います。
-r <rev> 特定のリビジョン; --depth empty|files|immediates|infinity
svn checkout https://svn.example.com/repo/trunk ./my-projectsvn info作業コピー / URL の情報を表示:URL、リビジョン、最終更新日時など。
svn info .日常の操作
svn update作業コピーをリポジトリと同期;サーバの変更をマージする場合もあります。
-r <rev> 特定のリビジョンに更新; --accept postpone|base|mine-full|theirs-full|edit|launch
svn update --accept postponesvn status作業コピーの状態を表示:変更、追加、削除、未追跡ファイル。
-u サーバの古い情報を表示; -v 詳細; --quiet 未追跡を抑制
svn status -usvn add <path>次のコミットで追加するファイル / ディレクトリを予約します。
-N 非再帰(ディレクトリのみ); --force 既にバージョン管理下でも追加
svn add src/utils/ helpers/svn delete <path>作業コピーからファイル / ディレクトリを削除し、次コミットで削除予約します。
--keep-local 作業コピー側に残す(サーバでは削除しない)
svn delete obsolete/old-config.jsonsvn commit -m "<msg>"ログ メッセージと共にローカルの変更をリポジトリに送信します。
-m インライン メッセージ; -F <file> ファイルから読み込み; --no-unlock ロック維持
svn commit -m "feat: add login form validation"svn diffパス間 / リビジョン間の unified diff を表示。
-r <rev1>:<rev2> リビジョン比較; -c <rev> あるリビジョンの変更; --diff-cmd / -x
svn diff -r HEAD~5:HEAD --summarizesvn revert <path>ローカル編集を破棄し、ファイル / ディレクトリを元の状態に戻します。
-R 再帰; --depth infinite
svn revert -R .ブランチ / タグ
svn copy <src> <dst>リポジトリ内でコピーしてブランチ / タグを作成(チープ コピー)。
-r <rev> 特定のリビジョンから; -m メッセージ
svn copy ^/trunk ^/branches/feature-x -m "branch: feature-x"svn switch <url>再チェック アウトせず作業コピーを別ブランチ / タグに向けます。
-r <rev> 特定のリビジョンへ; --relocate URL 接頭辞を書換
svn switch ^/branches/feature-xsvn list <url>チェック アウトせずリポジトリのディレクトリの内容を一覧。
-v 詳細; -r <rev>
svn list -v ^/tags/マージ / 競合
svn merge <url[@rev]>2 つのソース / ブランチ間の差分を作業コピーに適用します。
-c <rev> / -r <rev1>:<rev2> 対象リビジョン; --record-only マージ追跡のみ
svn merge ^/trunk -c 12345svn merge --reintegrate <url>機能ブランチを発生元ブランチへ再統合(レガシー、1.8 以前)。
svn merge --reintegrate ^/branches/feature-xsvn resolve <path>マージ / 更新後の競合ファイルを解消します。
--accept base|mine-full|theirs-full|working|theirs-conflict|theirs-full
svn resolve --accept theirs-full conflict.txt履歴 / 確認
svn logファイル / リポジトリのコミット ログを表示します。
-r <rev1>:<rev2> 範囲; -l <n> 件数制限; -v パス詳細; --xml
svn log -l 20 -vsvn blame <file>ファイルの各行について作者とリビジョンを表示(praise / annotate)。
-r <rev> 指定リビジョン時点; -v リビジョン内容も表示
svn blame src/index.ts | tail -20svn cat <url>[@rev]チェック アウトせず、特定 URL / リビジョンのファイル内容を表示。
svn cat ^/trunk/README.md@HEADプロパティ / ロック
svn propset <prop> <value> <path>ファイル / ディレクトリにプロパティを設定(svn:ignore、svn:executable、svn:mime-type など)。
-F <file> 値ファイルから; --revprop リポジトリ revprop
svn propset svn:ignore "node_modules\n.DS_Store" .svn propedit <prop> <path>プロパティ値をエディタで開き編集します。
svn propedit svn:ignore .svn lock <target>他クライアントが変更コミットできないようファイルをロック(サーバ設定が必要)。
-m "理由"; --force ロックを奪う
svn lock images/banner.png -m "editing before release"svn unlock <target>ファイル / ディレクトリのロックを解除します。
--force 他者のロックを破棄
svn unlock images/banner.pngリポジトリ / クリーンアップ
svn cleanup作業コピーを整理:ロック トークン削除、タイムスタンプ修正、保留操作の完了。
--diff3-cmd / --remove-unversioned 未追跡も整理
svn cleanup /path/to/wcsvn export <url> [<dir>].svn メタデータ無しでディレクトリ ツリーをエクスポート — パッケージングに便利。
-r <rev> 特定リビジョン; --force 既存を上書き
svn export ^/tags/v1.2.0 ./release-1.2svn import <path> <url> -m "<msg>"バージョン未管理ツリーを 1 回の初期コミットとしてリポジトリに追加します。
--no-ignore 無視ファイルも対象; --auto-props auto-props 適用
svn import ./src ^/trunk -m "initial import"svn relocate <from-prefix> <to-prefix>作業コピーに保存されたリポジトリ URL の接頭辞を書換(サーバ移転時)。
--strict 接頭辞不一致を拒否
svn relocate https://old.svn.example.com https://new.svn.example.comパッチ
svn diff > patch.diff共有 / svn patch で適用するための unified diff を生成。
svn diff > /tmp/feature-x.patchsvn patch <patch-file>svn diff が生成した unified diff を作業コピーに適用します。
--dry-run プレビュー; --reverse-cmd
svn patch --dry-run /tmp/feature-x.patchチートシート バージョン 1.0.0
SVN 1.10+ に対応