17
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MercurialとGitを使って思うこと

Last updated at Posted at 2018-08-30

何の話か

  • Mercurialを業務で使ったので、これまでGitを使ったときとの所感をメモっておく
  • Mercurialはチームのメンバーとして既にある運用ルールで使ったが、Gitは2人で使っていて割と独学で私がルールを作っていた

MercurialとGitの違い

  • Mercurialは間違ったマージの戻しはかなりつらい(らしい)
    • Gitの戻しも綺麗に戻すには結構つらいが、Mercurialで間違ったマージをプッシュした場合、「間違ったマージをプッシュしたら殺すw」と冗談めいて言われるレベルらしい
    • 理由としては、そういった操作をするためのコマンドがデフォルトで用意されていないからかな?と思っている
      • コミットをローカルで戻すのにも拡張コマンドを使えるようにしないといけないとかあったし
  • Mercurialは単純、Gitは高機能な印象
    • Mercurialは現在のチームではほんとに次のコマンドしか使っていない
      • clone
      • up -C
      • commit
      • merge
      • diff
      • branch
      • pull
      • push
    • 単純にブランチに対して更新するだけの印象(チームでの運用がそうだからというだけの可能性もあり)
    • その分、戻しのコマンドはよくわからないため、間違った場合の処置がかなりきつそう(ググってもあまり情報がないし)
    • Gitでも同じようなコマンドだけでの運用も可能だと思うが、情報が多いので間違ったときの対処もなんだかんだ可能だったりする点でちょっと有利だと思う

MercurialとGitの同じところ

  • 次のコマンドはだいたい同じ
    • clone
    • commit
    • merge
    • diff
    • push
  • pullについてはGitでの使い道があいまいな理解ではあるが使い勝手に違いを感じている
    • Gitのpullは、ローカルに反映してくれるまで全部やってくれる
    • Mercurialのpullは、リポジトリの情報を引っ張ってくるだけの様子※で次の順番で操作する(実はもっと単純で良いのかもだが、)
      • hg up -C ブランチ名 でブランチの切り替えとローカルのクリーン
      • hg pull でリポジトリ情報の取得
      • hg up -C でローカル更新

※コメントもらっての通り、 hg pull = git fetch じゃん

自分はどっち派か

なんだかかんだGit派。
Mercurialも使いこなせればアリだと思うが、以下の点で負けているかな。

  • Gitがデファクトになっている風潮を感じている
  • Mercurialは情報が少ない
17
27
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?