質問
だから、Git GUIを使用してリポジトリを作成しています。しかし、Google、ドキュメント、または「改訂表現」とは何か他の場所でトレースを見つけることができず、新しいブランチを作成する必要があります。
また、これはプログラムの他の多くの場所で使用されているようですので、知っておくことが重要だと思います。
StackOverflowでこれに関する質問を見つけましたが、回答が得られませんでした。
知っておく必要があるのは、改訂表現とは何ですか?
解決
gitは、多くの一般的な操作中にコミットを識別できる必要があります
コミットを識別する方法はいくつかあります。ブランチ、タグ、コミットsha1、または式を使用できます。例:
git log HEAD
HEAD
は最終的に特定のコミットに解決され、そのログが提供されます。あなたも言うことができます:
git log master
master
はブランチであり、特定のコミットに解決されます。
git log fd72e9c99312
これが実際のコミットです。
以下のドキュメントはあなたが探しているものです。
改訂の指定
通常、リビジョンパラメータは、必ずしもそうではありませんが、コミットオブジェクトに名前を付けます。拡張SHA1構文と呼ばれるものを使用します。オブジェクト名を綴るさまざまな方法を次に示します。このリストの最後近くにリストされているものは、コミットに含まれるツリーとブロブに名前を付けることです。
完全なSHA1オブジェクト名(40バイトの16進文字列)、またはリポジトリ内で一意のサブ文字列。例えば。 dae86e1950b1277e545cee180551750029cfe735とdae86eは、リポジトリにオブジェクト名がdae86eで始まる他のオブジェクトがない場合、同じコミットオブジェクトに名前を付けます。
git-describeからの出力。つまり、オプションでダッシュといくつかのコミットが続き、ダッシュ、g、および短縮オブジェクト名が続く、最も近いタグです。
シンボリックref名。例えば。 masterは通常、$ GIT_DIR / refs / heads / masterによって参照されるコミットオブジェクトを意味します。たまたまheads / masterとtags / masterの両方がある場合は、heads / masterと明示的に言って、どちらを意味するかをgitに伝えることができます。あいまいな場合、次のルールの最初の一致を取得することにより、aが明確になります。
$ GIT_DIR /が存在する場合、それはあなたが言うことです(これは通常、HEAD、FETCH_HEAD、ORIG_HEAD、およびMERGE_HEADに対してのみ有用です);
それ以外の場合、存在する場合は$ GIT_DIR / refs /;
それ以外の場合、$ GIT_DIR / refs / tags /が存在する場合;
それ以外の場合、$ GIT_DIR / refs / heads /が存在する場合;
それ以外の場合、$ GIT_DIR / refs / remotes /が存在する場合;
それ以外の場合、$ GIT_DIR / refs / remotes // HEADが存在する場合。
HEADは、作業ツリーでの変更のベースとなるコミットに名前を付けます。 FETCH_HEADは、最後のgit-fetch呼び出しでリモートリポジトリからフェッチしたブランチを記録します。 ORIG_HEADは、操作前にHEADの位置を記録するためにHEADを大幅に移動するコマンドによって作成されるため、ブランチの先端を簡単に実行する前の状態に戻すことができます。 MERGE_HEADは、git-mergeの実行時にブランチにマージするコミットを記録します。
refの後に接尾辞@が付き、日付指定が中括弧のペアで囲まれています(例:{yesterday}、{1 month 2 weeks 3 days 1 hours 1 second ago}または{1979-02-26 18:30:00 })前の時点でのrefの値を指定します。この接尾辞は、ref名の直後にのみ使用でき、refには既存のログ($ GIT_DIR / logs /)が必要です。これは、指定された時間にローカル参照の状態を検索することに注意してください。たとえば、先週地元のマスターブランチにあったもの。特定の時間に行われたコミットを確認する場合は、-sinceおよび--untilを参照してください。
refの後にサフィックス@が続き、括弧のペアで囲まれた順序指定(例:{1}、{15})により、そのrefのn番目の前の値を指定します。たとえば、master @ {1}はmasterの直前の値であり、master @ {5}はmasterの5番目の前の値です。この接尾辞は参照名の直後にのみ使用でき、参照には既存のログ($ GIT_DIR / logs /)が必要です。
現在のブランチのreflogを取得するには、空のref部分で@コンストラクトを使用できます。たとえば、ブランチblablaにいる場合、@
他のヒント
gahooaは包括的な答えを提供します。一般的なケース:
- 既存のブランチの名前(例:
master
) - SHA1チェックサムの最初の数桁。
gitk
またはgit log
から最適にキャプチャされます
gitの素晴らしい世界へようこそ。 TMIはコースの標準です...
Emacsを使用する場合の別の場合: Ctrl-x v l
と入力するだけで、すべてのリビジョンが一覧表示されます。 gitの初心者(Emacs / CVSではない)の場合、リビジョンが次のようにリストされていることに驚いた:
commit 8d5ab12cd76d5e6098e5894c8713ec605fd9f153
これは間違いなく Major.minor.bugfix.build
表記からのさわやかな変更です。
さらに(楽しい)驚くべきことは、EmacsがCVSではなくgitを参照する必要があることを(.emacs経由で)伝える必要なく、自動的にgitを処理することです。とても素晴らしい。
要約すると、Emacsがリビジョンのプロンプトを表示したときに、その40桁の16進数を入力するだけです。
初めてブランチを作成しようとするとき、Git GUIはリビジョン式を要求します、私の理解から、gitはすでに作成されコミットされたブランチが必要だと思います(新しいブランチ/変更でファイル)を何か(ここではmasterブランチ)と比較します。