Mercurial(hg) のコマンド一覧

hg コマンドのメモです。() は省略形。拡張機能のコマンドは、Mercurial(hg) の拡張機能のコマンド一覧 参照。

ヘルプ

hg help
コマンド一覧の表示
hg help コマンド名
コマンドのヘルプの表示

初期化

hg init
カレントディレクトリにリポジトリを作成する
hg init パス名
指定したディレクトリにリポジトリを作成する

ファイルの操作

hg add
作業領域のファイル/ディレクトリをリポジトリに追加する(コミットで完了)
hg add ファイル名
指定したファイルをリポジトリに追加する
hg add .
カレントディレクトリ以下のファイル/ディレクトリをリポジトリに追加する
hg add -A
hg addremove と同じ?
hg addremove
未登録のファイル(?)は hg add、削除されたファイル(!)は hg remove する
hg commit (hg ci)
リポジトリにコミットする
hg commit -m "commit message"
コミットメッセージを指定してリポジトリにコミットする
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 locate
リポジトリに保存されているファイルの一覧を表示する。リポジトリに保存されているファイルを作業領域からすべて削除する場合は「hg locate | xargs rm」とする
hg annotate (hg blame) ファイル名
指定したファイルの行ごとのチェンジセットを調べる
hg tip
tip(最も新しく追加されたチェンジセット)を表示する
hg heads
ヘッドの一覧を表示する
hg heads -a
アクティブなヘッドのみ表示する
hg parents
作業領域の親リビジョンの表示

リポジトリの操作

hg clone コピー元 コピー先
リポジトリを複製する
hg push
ローカルリポジトリの変更をコピー元のリポジトリに送信する
hg pull
コピー元のリポジトリの変更をローカルリポジトリに取り込む
hg pull -u
hg pull の後 hg update する
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/リポジトリを閲覧できる