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