セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
ガイド
- gitattributes
- コマンドラインインターフェースの慣例
- 日常のGit
- よくある質問 (FAQ)
- 用語集
- Hooks
- gitignore
- gitmodules
- リビジョン
- サブモジュール
- チュートリアル
- ワークフロー
- すべてのガイド...
管理
低レベルコマンド
- 2.43.1 → 2.49.0 変更なし
-
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
階層に保存され、タグは参照名前空間の 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
にある) を意味します。 -
チルダ
~
とキャレット^
は、後置の nth parent および peel onion 操作を導入するために使用されます。 -
コロン
:
は、fetch および push 操作においてsrcref:dstref
のように「srcref の値を使用し、それを dstref に格納する」という意味で使用されます。また、'git cat-file' のように特定のオブジェクトを選択するためにも使用できます: "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
が示すものよりも厳しくなる場合があります (例: 参照コンポーネントの先頭にダッシュが現れることは許可されますが、ブランチ名の先頭に現れることは明示的に禁止されています)。リポジトリで --branch
オプション付きで実行すると、入力は最初に「以前のチェックアウト構文」@{-n}
のために展開されます。たとえば、@{-1}
は、「git switch」または「git checkout」操作を使用してチェックアウトされた最後のものを参照する方法です。このオプションは、ブランチ名が期待されるどこでもこの構文を受け入れるためにポーセリンで使用されるべきであり、これにより、まるでブランチ名を入力したかのように動作できます。例外として注意すべきは、N番目に最後にチェックアウトされたものがブランチでなかった場合、「以前のチェックアウト操作」がコミットオブジェクト名を結果として返す可能性があることです。
オプション
- --[no-]allow-onelevel
-
1レベルの参照名 (つまり、複数の
/
で区切られたコンポーネントを含まない参照名) が受け入れられるかどうかを制御します。デフォルトは--no-allow-onelevel
です。 - --refspec-pattern
-
をリファレンス名のパターンとして、refspec (リモートリポジトリで使用されるような) のために解釈します。このオプションが有効な場合、 は refspec 内で単一の *
を含むことができます (例:foo/bar*/baz
やfoo/bar*baz/
は可能ですが、foo/bar*/baz*
は不可)。 - --normalize
-
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] スイートの一部