きっかけ
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