2013-07-28 13 views
30

アットマーク@は、異なる の方法でgitからspecify revisionsによく使用されます。例えば、Gitの "at" @記号/記号/文字はどういう意味ですか?

  1. <ref>@{<date>}<date>がオンの状態の基準を指定します。例えば、git diff [email protected]{yesterday} master

  2. <ref>@{<n>}特定の参照番号は、そのn 番目のの状態です。例えば、git diff [email protected]{1} master

  3. @{-<n>}は 現在のものの前に以前にチェックアウトブランチのn番目を指定します。例えば、git checkout @{-5}

  4. <ref>@{upstream}は、参照のための上流ブランチを指定します。例えば、git diff [email protected]{upstream} master@はgitのに他の方法で使用されている

しかし

git rebase -i @~4 
git log @^^[email protected] 

のように、あまりにもコマンドアットマーク@これらの例では何を意味するのでしょうか?

+0

man git-rev-parse – sehe

+0

このコマンドは、msysgitユーザでは動作しません。msysgitには 'man'が付いていません。ドキュメントを表示するコマンドを使用するには' git rev -parse --help'を実行します。 –

+0

これはコマンドではありません。よく知られている「man」名前空間を使用しているMonikerです:https://www.google.com/search?q=man+git-rev-parse – sehe

答えて

34

As of Git version 1.8.5[email protected]{1}[email protected]{1}などの主要な支店/参照名と序{n}接尾辞なしのアットマーク@、特別なGitの参照HEADのためだけの同義語/エイリアス/ショートカットです:

4つの大文字「HEAD」を入力する代わりに、「@」と言うことができます。 "git log @"。だから、(WindowsまたはOS Xを使用している場合やhead)あなたは、単にHEAD@最初発生を置き換えることができ、これらのコマンドのためにそう

git rebase -i @~4 
git log @^^[email protected] 

git rebase -i HEAD~4 
git log HEAD^^..HEAD 

何をしますかHEAD平均? official Linux Kernel Git documentation for specifying Git revisionsで説明したように、HEADあなたが現在チェックアウトされていることを作業コピー(またはGitの用語で、あなたの「作業ツリー」)としてコミットするための特別なショートカットの参照です:

HEAD名のコミットこれは作業ツリーの変更に基づいています。

  1. HEAD and ORIG_HEAD in Git

はまた、特別な参照HEADが何を意味するかについて、これらの他のスタックオーバーフローの質問を読むことができます。

  • What is git HEAD, exactly?
  • VonCも@this Stack Overflow answer (the last section at the bottom)headためのショートカットとして選ばれた理由についての興味深い情報を見つけました。

    関連する問題