Mercurial ~ チートシート

コマンド分類

Mercurialのコマンドは、だいたい4つに分類できると思います(やや強引ですが)。

  • リポジトリ(主にストア)の内容を調べる、調査系
  • 日常的に使う、基本系
  • 誤操作を取り消すために使う、取り消し系
  • リポジトリ間の操作を行う、分散系

主要コマンドについて、(1)ストアや作業ディレクトリを読み書きする様子と、(2)引数としてリビジョンやファイルを受け取るかどうか、の2点を整理してみました。

コマンド名
分類
(1)読み書きの様子(2)引数
ストア
作業DIR
リビジョン
ファイル
help調査
log調査READOPTIONOPTION
tip調査READ
status調査READOPTIONOPTION
heads調査READOPTION
parents調査READOPTIONOPTION
tags調査READ
branches調査READ
cat調査READOPTIONMUST
diff調査READREADOPTIONOPTION
grep調査READREADOPTIONOPTION
locate調査READOPTION
summray調査READ
annotate調査READOPTIONMUST
bisect調査READWRITEOPTION
init基本WRITE
add基本WRITEOPTION
remove基本WRITEWRITEMUST
rename基本WRITEWRITEMUST
commit基本WRITEOPTION
tag基本WRITEOPTION
branch基本WRITE
update基本READWRITEOPTION
merge基本READWRITEOPTION
revert取り消しREADWRITEOPTION
rollback取り消しWRITEWRITE
backout取り消しWRITEWRITEMUST
serve分散READ
path分散READ
outgoing分散READREADOPTION
incoming分散READREADOPTION
clone分散READWRITEOPTION
push分散WRITEOPTION
pull分散WRITEOPTION

読み書きの様子を図示すると、こんな感じでしょう。

図.リポジトリ読み書き

調査系コマンド

以下、COMとかREVとかFILEとかはプレースホルダです。

hg help COM
COMコマンドの使い方を表示する。
hg log -l NUM
最新のNUM世代分のリビジョンログを表示する。
hg tip
ティップのリビジョンログを表示する。
hg status
作業ディレクトリの状態を表示する(M:Modified、A:Added、R:Removed、!:Missing、?:Not tracked)。
hg heads
ヘッドの一覧を表示する。
hg parents
作業ディレクトリの親の一覧を表示する。
hg parents -r REV
REVリビジョンの親の一覧を表示する。
hg tags
タグの一覧を表示する。
hg branches
ブランチの一覧を表示する。
hg cat FILE
作業ディレクトリの親リビジョンのFILEの内容を表示する。
hg cat -r REV FILE
リビジョンREVのFILEの内容を表示する。
hg diff FILE
作業ディレクトリのFILEと、作業ディレクトリの親リビジョンのFILEを比較する。
hg diff -r REV FILE
作業ディレクトリのFILEと、リビジョンREVのFILEを比較する(-r REV1:REV2でリビジョン間の比較)。
hg grep PATTERN
全リビジョンから、PATTERNを含むファイルを探す。
hg grep -r REV PATTERN
リビジョンREVから、PATTERNを含むファイルを探す。
hg locate PATTERN
作業ディレクトリから、ファイル名がPATTERNにマッチするものを探す。
hg locate -r REV PATTERN
リビジョンREVから、ファイル名がPATTERNにマッチするものを探す。
hg summray
リポジトリの状態を要約する(statusとtipとparentsをまとめたような感じ)。
hg annotate FILE
FILEに関する変更履歴の詳細を表示する。
hg bisect --reset | --bad | --good REV
リビジョンを走査し、レベルダウンしたリビジョンを見つける。

基本系コマンド

hg init
カレントディレクトリをリポジトリとし、そこにストアを作成する。
hg init DIR
DIRディレクトリをリポジトリとし、その中にストアを作成する。
hg add
作業ディレクトリの全ての未追加ファイル(?:Not tracked)をストアに追加する。
hg add FILE
FILEをストアに追加する。
hg remove FILE
FILEをストア(と作業ディレクトリ)から削除する。
hg remove --after FILE
FILEが不在(!:Missing)ならストアから削除する。FILEを省略すると全てのファイルが対象。
hg addremove
未追加のファイル(?:Not tracked)を追加し、不在のファイル(!:Missing)を削除する。
hg rename SRC DST
SRCファイルの名前をDSTに変更する。
hg commit
作業ディレクトリの内容をコミット(チェックイン)する。コミットコメントはエディタで入力する。
hg commit -m "COMMENT"
コミットコメントをCOMMENTとしてコミットする。
hg tag TAG
作業ディレクトリの親リビジョンにタグTAGを貼り、.hgtagsファイルをコミットする。
hg branch BRANCH
次のコミット以降を、BRANCHブランチとして扱う。
hg update -c
作業ディレクトリの親をティップに変える(未コミットファイルがあれば失敗)。
hg update -c REV
作業ディレクトリの親をリビジョンREVに変える(未コミットファイルがあれば失敗)。
hg update -C REV
作業ディレクトリの親をリビジョンREVに変える(未コミットファイルがあっても無視)。
hg merge REV
作業ディレクトリに、リビジョンREVをマージ(マージ元リビジョンが明らかな場合はREVを省略可能)。

取り消し系コマンド

hg revert FILE
作業ディレクトリのFILEを、親リビジョンの内容に戻す。
hg revert -r REV FILE
作業ディレクトリのFILEを、リビジョンREVの内容に戻す(作業ディレクトリの親は元のまま)。
hg rollback
直前のコミットを取り消す(取り消せるのは1世代分だけ)。
hg backout -m "COMMENT" --merge REV
リビジョンREVに対して、そのチェンジセットを打ち消すようなチェンジセットをチェックインする。その上で、打ち消したチェンジセットを作業ディレクトリへマージする。

分散系コマンド

hg serve -p 8080
ポート8080でWebサーバを開始する。
hg path
現リポジトリのリモートリポジトリ(clone元)のURLを表示する。
hg outgoing
リモートリポジトリへpushされる予定のファイルを表示する。
hg incoming
リモートリポジトリからpullされる予定のファイルを表示する。
hg clone SRC DST
SRCリポジトリを複製してDSTリポジトリを作る。
hg clone -r REV SRC DST
SRCリポジトリのりビジョンREV以前を複製してDSTリポジトリを作る。
hg push
現リポジトリからリモートリポジトリへ同期する
hg pull
リモートリポジトリから現リポジトリへ同期する
Last modified:2011/06/14 23:54:43
Keyword(s):
References:[Mercurial(分散SCM)]
This page is frozen.