セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.43.1 → 2.50.1 変更なし
-
2.43.0
2023-11-20
- 2.23.1 → 2.42.4 変更なし
-
2.23.0
2019-08-16
- 2.17.0 → 2.22.5 変更なし
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
- 2.13.7 → 2.14.6 変更なし
-
2.12.5
2017-09-22
- 2.11.4 変更なし
-
2.10.5
2017-09-22
- 2.7.6 → 2.9.5 変更なし
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 変更なし
-
2.0.5
2014-12-17
概要
git check-ref-format [--normalize] [--[no-]allow-onelevel] [--refspec-pattern] <refname> git check-ref-format --branch <branchname-shorthand>
説明
指定された refname が許容可能であるかどうかをチェックし、許容できない場合は非ゼロのステータスで終了します。
参照は Git でブランチとタグを指定するために使用されます。ブランチヘッドは refs/heads
階層に格納され、タグは ref 名前空間の refs/tags
階層に格納されます(通常は $GIT_DIR/refs/heads
および $GIT_DIR/refs/tags
ディレクトリ、または参照が git
gc
によってパックされている場合はファイル $GIT_DIR/packed-refs
のエントリとして)。
Git は参照の命名に関して以下のルールを課しています
-
階層的(ディレクトリ)なグループ化のためにスラッシュ
/
を含めることができますが、スラッシュで区切られたコンポーネントはドット.
で始まることはできません。また、シーケンス.lock
で終わることもできません。 -
少なくとも1つの
/
を含まなければなりません。これによりheads/
、tags/
などのカテゴリの存在が強制されますが、実際の名前は制限されません。--allow-onelevel
オプションが使用されている場合、このルールは免除されます。 -
どこにも2つの連続するドット
..
を含めることはできません。 -
どこにも ASCII 制御文字(つまり \040 より小さい値のバイト、または \177
DEL
)、スペース、チルダ~
、キャレット^
、またはコロン:
を含めることはできません。 -
どこにも疑問符 ?、アスタリスク
*
、または開き角括弧 [ を含めることはできません。このルールに対する例外については、以下の--refspec-pattern
オプションを参照してください。 -
スラッシュ
/
で始まることも終わることもできず、複数の連続するスラッシュを含むこともできません(このルールに対する例外については、以下の--normalize
オプションを参照してください)。 -
ドット
.
で終わることはできません。 -
シーケンス
@{
を含めることはできません。 -
単一の文字
@
であることはできません。 -
\ を含めることはできません。
これらのルールにより、シェルスクリプトベースのツールが参照名を簡単に解析でき、引用符なしで参照名が使用された場合(誤って)のシェルのパス名展開、および特定の参照名式での曖昧さ(gitrevisions[7] を参照)を回避できます。
-
二重ドット
..
はref1..ref2
のように頻繁に使用され、一部のコンテキストではこの表記は^ref1
ref2
を意味します(つまり、ref1
になくref2
にある)。 -
チルダ
~
とキャレット^
は、接尾辞の N番目の親 と 剥がす操作 を導入するために使用されます。 -
コロン
:
は、フェッチおよびプッシュ操作で「srcref の値を使用して dstref に格納する」という意味でsrcref:dstref
のように使用されます。また、「git cat-file blob v1.3.3:refs.c」のように、特定のオブジェクトを選択するためにも使用されます。 -
アットマークと開き中括弧
@{
は、reflog エントリにアクセスするための表記として使用されます。
--branch
オプションを指定すると、コマンドは名前を受け取り、それが有効なブランチ名として使用できるかどうかをチェックします(例えば、新しいブランチを作成する場合)。しかし、分離HEAD状態を参照する可能性のある以前のチェックアウト構文を使用する際には注意してください。git
check-ref-format
--branch
$name
が実装するルールは、git
check-ref-format
refs/heads/$name
が言うよりも厳密である場合があります(例えば、ダッシュは ref コンポーネントの先頭に現れることがありますが、ブランチ名の先頭には明示的に禁止されています)。リポジトリで --branch
オプションを実行すると、入力は最初に「以前のチェックアウト構文」@{-n}
に展開されます。例えば、@{-1}
は「git switch」または「git checkout」操作を使用して最後にチェックアウトされたものを参照する方法です。このオプションは、ブランチ名が期待される場所であればどこでもこの構文を受け入れるようにポーセレンで使用されるべきであり、あたかもブランチ名を入力したかのように動作できるようにします。例外として、N番目に最後にチェックアウトされたものがブランチでなかった場合、「以前のチェックアウト操作」はコミットオブジェクト名になる可能性があることに注意してください。
オプション
- --[no-]allow-onelevel
-
1レベルの参照名(つまり、複数の
/
で区切られたコンポーネントを含まない参照名)が受け入れられるかどうかを制御します。デフォルトは--no-allow-onelevel
です。 - --refspec-pattern
-
<refname> を refspec の参照名パターンとして解釈します(リモートリポジトリで使用される場合)。このオプションが有効な場合、<refname> は refspec 内に単一の
*
を含むことが許可されます(例:foo/bar*/baz
またはfoo/bar*baz/
。ただしfoo/bar*/baz*
は不可)。 - --normalize
-
refname を、先頭のスラッシュ (
/
) 文字を削除し、名前コンポーネント間の隣接するスラッシュの連続を単一のスラッシュにまとめることによって正規化します。正規化された refname が有効であれば、標準出力に出力し、ステータス 0 で終了します。そうでなければ、非ゼロのステータスで終了します。(--print
は--normalize
を記述する非推奨の方法です。)
例
-
以前にチェックアウトされたものの名前を出力する
$ git check-ref-format --branch @{-1}
-
新しいブランチに使用する参照名を決定する
$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch")|| { echo "we do not like '$newbranch' as a branch name." >&2 ; exit 1 ; }
GIT
git[1]スイートの一部