チルダとキャレットの意味

@HEAD を表す。@ を用いて HEAD コミットの変更を表示する。

$ git show @

これは次のコマンドと同じ動作となる。

$ git show HEAD

チルダ (~) は世代が前のコミットを表す

1世代前のコミットからの変更を表示する。

$ git diff HEAD~

2世代前のコミットからの変更を表示する。

$ git diff HEAD~2

次のコマンドでも同じ動作となる。

$ git diff HEAD~~

キャレット (^) は親コミットを表す

親コミットからの変更を表示する。HEAD~ もしくは HEAD~1 の指定と同じ動作となる。

$ git diff HEAD^

親の親コミットからの変更を表示する。HEAD~~ もしくは HEAD~2 の指定と同じ動作となる。

$ git diff HEAD^^

ファストフォワードでないマージコミットの場合は、親コミットが2つ存在する。

2つある親コミットの2番目のコミット (merge コマンドで指定した方のコミット) からの変更を表示する。

$ git diff HEAD^2

参考:

チルダ (~) とキャレット (^) の違い | Tech 控え帳

HEAD の省略やチルダ/キャレットの使い分け – Qiita

HEAD^ と HEAD~ の違い – Qiita

Git で N 個前のコミットを表現する | まくまくノート

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA