Mercurial(hg) のコマンド一覧
hg コマンドのメモです。() は省略形。拡張機能のコマンドは、Mercurial(hg) の拡張機能のコマンド一覧 参照。
ヘルプ
- hg help
- コマンド一覧の表示
- hg help コマンド名
- コマンドのヘルプの表示
ファイルの操作
- hg add
- 作業領域のファイル/ディレクトリをリポジトリに追加する(コミットで完了)
- hg add ファイル名
- 指定したファイルをリポジトリに追加する
- hg add .
- カレントディレクトリ以下のファイル/ディレクトリをリポジトリに追加する
- hg add -A
- hg addremove と同じ?
- hg addremove
- 未登録のファイル(?)は hg add、削除されたファイル(!)は hg remove する
- hg remove
- ファイル名:指定したファイルをリポジトリから削除する(コミットで完了)
- hg forget
- remove がファイルを作業領域から削除するのに対し、forget は削除しませんが、管理対象外になります(コミットで完了)
- hg rename (hg mv) 変更前 変更後
- ファイル名を変更/ファイルを移動する(コミットで完了)
- hg copy (hg cp) コピー元 コピー先
- 指定したファイルをコピーする(コミットで完了)。参考: 複製ファイルへの自動的な変更反映
ファイルの確認
- hg diff (hg di)
- 変更されたファイルの変更箇所を表示する
- hg diff ファイル名
- 指定したファイルの変更箇所を表示する
- hg diff -c チェンジセット
- 指定したチェンジセットでの変更箇所を表示する
- hg diff -w
- 差分判定の際に空白文字を無視する。改行コードが変更された場合 など
- hg status (hg st)
- ファイルの状態を確認する
- hg status --rev チェンジセット
- 指定したチェンジセットとの差分でファイルの状態を確認する
- hg status ファイル名
- 指定したファイルの状態を確認する
- hg status --change チェンジセット
- 指定したチェンジセットにおける更新ファイルを表示する
M = 改変有り(Modified) A = 追加登録予定(Added) R = 登録除外予定(Removed) C = 変更無し(Clean) ! = 構成管理対象にも関わらず作業領域にファイルが無い(missing) ? = 構成管理対象外(unknown) I = 無視(Ignored)
- hg log
- 変更履歴の表示(コミットメッセージは 1行のみ表示)
- hg log -v
- 詳細な変更履歴の表示
- hg log -l n
- n個のチェンジセットを表示
- hg log -k keyword
- keyword による検索
- hg annotate (hg blame) ファイル名
- 指定したファイルの行ごとのチェンジセットを調べる
- hg tip
- tip(最も新しく追加されたチェンジセット)を表示する
- hg heads
- ヘッドの一覧を表示する
- hg heads -a
- アクティブなヘッドのみ表示する
- hg parents
- 作業領域の親リビジョンの表示
リポジトリの操作
- hg clone コピー元 コピー先
- リポジトリを複製する
- hg update (hg up)
- pull した変更を作業領域に反映させる。作業領域のファイルが変更されている場合はマージされる
- hg update -C
- 作業領域での変更は破棄される
- hg incoming (hg in)
- pull されるチェンジセットを確認する
- hg outgoing (hg out)
- push されるチェンジセットを確認する
- hg paths
- 設定されているリポジトリの別名とそのパスの一覧を表示する
マージ
- hg merge
- マージする
- hg resolve -l
- 衝突したファイルとその状況を確認する
U = 未解消(Unresolved) R = 解消済み(Resolved)
- hg resolve -m
- 衝突を解消済みにマークする
過去に戻る
- hg update -C チェンジセット
- 作業領域を指定したチェンジセットに変更する(-C 作業領域での変更は破棄)。過去のチェンジセットに update したまま変更をコミットするとヘッドが増える
変更の取り消し
- hg revert --all
- 作業領域のすべてのコミットされていない変更を取り消す
- hg revert ファイル名
- 指定したファイルのコミットされていない変更を取り消す
- hg rollback
- リポジトリに対する直前の変更操作を取り消す。push してしまった変更を rollback するのは混乱の元になるのでしない
- hg backout tip
- tip を打ち消す変更がコミットされる
- hg backout チェンジセット
- 指定したチェンジセットを打ち消す変更がコミットされる。tip 以外を打ち消すとヘッドが増える
- hg backout --merge -m "commit message" チェンジセット
- 指定したチェンジセットを打ち消しマージする
タグ
- hg tags
- タグの一覧を表示する
- hg tag -r チェンジセット -m "commit message" タグ名
- 指定したチェンジセットにタグを付ける(自動でコミットされる)
- hg tag --remove タグ名
- タグを削除する
アーカイブの作成
- hg archive -r チェンジセット パス名
- 指定したチェンジセットのファイルを指定したパス名にアーカイブする(svn exportに相当)
- hg archive -t ファイルタイプ -r チェンジセット パス名
- 指定したファイルタイプでアーカイブを作成する
パス名の指定
%h チェンジセットのハッシュIDに置き換わる %r チェンジセットのリビジョン番号に置き換わる
ファイルタイプの指定
files ディレクトリとファイル(デフォルト) tar tar tbz2 tar.bz2 tgz tar.gz uzip zip(圧縮なし) zip zip(圧縮あり)
名前付きブランチ
- hg branches
- ブランチの一覧を表示する
- hg branch
- 現在のブランチを表示する
- hg branch ブランチ名
- ブランチを作成する(コミットで完了)
- hg update -C ブランチ名
- 指定したブランチに変更する(-C 作業領域での変更は破棄)
- hg log -b ブランチ名
- 指定したブランチの変更履歴のみを表示する
- hg heads ブランチ名
- 指定したブランチのヘッドのみを表示する
パッチ
- hg export -o パッチファイル名 チェンジセット
- 指定したチェンジセットのパッチファイルを作成する
- hg import パッチファイル名
- パッチファイルを取り込む
その他
- hg showconfig
- 設定情報を表示する
- hg version
- Mercurial のバージョンを表示する
- hg serve
- 簡易 Web サーバ機能を起動する。http://localhost:8000/ でリポジトリを閲覧できる