Git
Mercurial
比較
バージョン管理

gitとmercurialのコマンド比較


きっかけ

mercurialを主に仕事使っていたのですが

最近gitを利用することが出てきたので個人的メモφ(..)


比較表

機能
git
mercurial
補足

リポジトリをクローン
git clone {path}
hg clone {path}

ファイルを登録
git add {file}
hg add {file}
gitはコミットのたびに変更ファイルのaddが必要
mercurialは新規登録されるファイル以外はadd不要

すべてのファイルを登録
git add .
hg add

ファイルを削除
git rm {file}
hg remove {file}

すべてのファイルの登録と削除
不明
hg addremove

ブランチの作成
git checkout -b {branch_name}
hg branch {branch_name}

ブランチの切替
git checkout {branch_name}
hg up {branch_name}

ブランチの削除/閉鎖
git branch --delete {branch_name}
hg commit --close-branch
gitはブランチの削除
mercurialは閉鎖という概念。
違いは次の項目参照

削除/閉鎖 されたブランチの復旧
git reflogでログ番号を確認後
git branch {branch_name} HEAD@{{番号}}
閉鎖されたブランチにhg upで切り替えるだけ。
コミットでアクティブ状態にもどる
gitはブランチをもどすイメージ
mercurialは非アクティブのbranchを復活させる

ローカルブランチを表示
git branch
hg branches

リモートブランチを表示
git branch -a
不明
mercurialは取り込みが必要

リモートブランチをローカルへ取り込む
git branch {branch_name} /origin/{branch_name}
hg pull -u
gitは特定のブランチのみをローカルに展開
mercurialは全てのブランチをローカルに展開

変更差分の取り込み
git pull
or
git fetch && git merge /origin/{branch_name}
hg pull -u
mercurialはブランチのローカル取り込みも同時にこなう

取り込んで衝突した時
git stash save -u
git merge origin/{branch_name}
git stash pop
コンフリクトしたら手動修正
hg merge
コンフリクトしたら手動修正
git stash list でstashしたlistの確認

ブランチ間のマージ
git merge origin/{branch_name}
hg merge {branch_name}

差分確認
git diff (add前)
git diff --cached (add後)
hg diff

内容に誤りなどありましたら

コメントにて教えていただけると助かります m(_ _)m