8
8

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.

Emacs のMagitで`git reset --hard <commit id>`を楽にやる

Last updated at Posted at 2015-03-24

MagitとはEmacsから使えるgitクライアントで、CUIながらグラフィカルなインターフェースを持ち、ショートカットキーを駆使して、少ない手数で色々なことができます。特に、sshでリモートで作業をしていてGUIを開くのが嫌な人などにはおすすめです。また、Emacsユーザーじゃない人にもおすすめです。
Magit説明動画(英語)

追記:@acpleさんより指摘いただき、c-u xでできることが判明いたしました。ありがとうございます。

さて、Magitにはキーボードショートカットが多数割り当てられており、pull, push, branch, checkout, rebase, merge, fetch, などなどのコマンドを楽ちんに行えますが、本投稿の件名にあるgit reset --hard <commit id>のキーが存在しません。いつもEmacsのshellのeshellを開いて、自分でコマンドを打っていました。しかし、コマンドの組み合わせで意外と簡単にやるやり方を見つけたので共有しておきます。

超簡単な話なのです。magitには、git reset --softのために、xが割り当てられており、git reset --hard HEAD(コミットしてないワーキングツリーの変更をすべて破棄するコマンド)に対してXが割り当てられてます。これらの組み合わせで、まずxを入力し、コミット番号を指定して、HEADをコミット番号(soft reset)に移動させます。これだと、今までいたコミットとの差分がステージングされている状態なので、Xを入力してhard reset する。それだけです(当たり前のやり方です)。ちなみに、僕はl lでログを表示して、カーソルを移動したいコミットに移動させてxでsoft rest してます。

8
8
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
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?