gitでの「あの時のコミット」へのショートカット用キーワードいろいろ
Gitを使ってると、「あーあの時のコミットを参照したいなー」と思うことよくありますよね?
そんな時Gitには便利なショートカットというかキーワードみたいなものが利用できます。
今回はそのキーワード(と便宜上呼びます)を、基本的なものから、「あーこれ欲しかったんだよねー」的なものや、
正直何に使うのか良くわからないものまで色々見つかったのでメモ。
間違いや、よく分からないところについて知っている方がいらっしゃったら是非コメントください!
HEAD
最もメジャーかつ一番良く使いそうなやつです。
自分のローカル内のコミットも含めた上で、一番新しいリビジョンを指し示すことができます。
利用方法として一番ポピュラーなのは、 git reset
や git revert
を利用するときにヘッダ位置を指定するときですね。
~n
や ^n
等と併用することが多いです。
例えば
git reset HEAD~1
とすれば、ローカル内のリビジョンを 最新から一つ前 の状態に戻すことができます。 HEAD~2
なら2つ前です。
無駄なコミットや間違ったコミットをとりあえず元に戻しちゃいたいときとかに良く使います。
FETCH_HEAD
実は今回の記事は個人的にこれを調べてて色々見つけたのがきっかけだったり。ずっと欲しかったんですこれ。
FETCH_HEAD
は、 現在フェッチされているリモートブランチの最新リビジョン を習得できます。
用途としては、「色々ごちゃごちゃいじっちゃったけど結局これ全部自分の変更元に戻してリモートと同じクリーンな状態にしたいなぁ…」なんて時に使います。
git reset --hard FETCH_HEAD
これでスッキリです!
自分がローカルで行った変更やコミットだけが、綺麗さっぱり消えてくれます!
ORIG_HEAD
これはちょっと特殊で、 git merge
等の 大幅な変更 が入るようなコマンドが実行されるときに、
内部で自動的に記録しておいてくれるヘッダ番号らしいです。
どのようなコマンドの時にORIG_HEADが更新されるのかはわかっていませんが、
少なくとも git merge
の際にはそれを記録するようなので、
これを使うことで、もし変なブランチをマージしてしまったとしても、以下のように簡単にマージ前の状態に戻すことができます。
git reset --hard ORIG_HEAD
いざマージしようとしたらCONFLICTを起こしちゃってぐちゃぐちゃになってしまった場合に、
とりあえず元に戻したい場合なんかにも使えるようです。
これでもうマージ怖くない!
MERGE_HEAD
これは git merge
を行う際にマージ 元 となるリビジョンを示しています。
うーん何に使うのか使い道が思い当たらない・・・。
CHERRY_PICK_HEAD
これも良くわからなかったです。
git cherry-pick
実行時の取得元のリビジョンを指してるのかなぁと思いますが…やはり使い道が分からない><;
一応ヘルプでの原文は
records the commit which you are cherry-picking when you run git cherry-pick.
となっています。
実はまだまだあるらしい
本記事下部に記載した参考リンクのStackOverFlow内では、gitのソースコードの中には、
さらにこの他にBISECT_HEAD
, REVERT_HEAD
, REJECT_NON_FF_HEAD
等というものもあるらしいという事が書かれています。
ただ公式にマニュアルとかがあるわけでは無いような気がするので、あまり乱用するのはよくないかもしれませんね。
参考
最後に
あまり英語が得意じゃないので、間違ってる事や、「他にもこんなイカした使い方があるぜ!」等々ありましたら
是非コメントにて教えて頂ければと思います
Author And Source
この問題について(gitでの「あの時のコミット」へのショートカット用キーワードいろいろ), 我々は、より多くの情報をここで見つけました https://qiita.com/m-yamashita/items/102745f0b53ad6a6ed2e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .