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

@ は 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^^

merge したコミット (no-ff) の場合は親コミットが2つ存在する

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

$ git diff HEAD^2

参考:

HEAD の省略や TILDE, CARET の使い分け – Qiita

git の HEAD^ と HEAD~ の違い – Qiita

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です