44889


`.gitconfig`の以下のようなデータ形式は`YAML`や`json`のようになにか汎用的な形式なのでしょうか？

それとも独自の形式なのでしょうか？

[code]

    [user]
         email = foo@example.com
         name = ironsand
    [core]
         autocrlf = false
    [push]
         editor = vim
         default = simple
    
[/code]

似たような形式は他にも見たことがありますが、形式の名前が決まっているなら知りたく質問いたしました。


CC BY-SA 4.0
2018-06-18T23:56:11.913
44866
2018-06-19T10:19:29.860
3271
question
git
`.gitconfig` の形式は独自のものか、それとも汎用的なものか


標準化されたフォーマットではありませんが、広く使われている **INIファイル** ではないでしょうか。

[code]

    ; comment
    [section]
    name=value
    
[/code]

[INIファイル -
Wikipedia](https://ja.wikipedia.org/wiki/INI%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB)

> INIファイルは構造の単純なテキストファイルであり、設定ファイルのフォーマットとしてよく使われている。  
>  INIファイルという名前はこのファイルの一般的な拡張子「.INI」から来ている。  
>  INIファイルのフォーマットは規格化・標準化はされておらず、明確には決まっていない。


CC BY-SA 4.0
2018-06-19T00:14:05.517
44867
2018-06-19T00:14:05.517
3060
44866
answer


Git 自体のドキュメントを読む限り、何かのフォーマットを流用しているわけではなく、独自に定義しています。たとえば [v2.17.1 の
config.txt](https://github.com/git/git/blob/v2.17.1/Documentation/config.txt#L20)
には Syntax の節があり、ここで文法が定義されています。

類似の文法を持つフォーマットとして [INI
ファイル](https://ja.wikipedia.org/wiki/INI%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB)や
[TOML](https://github.com/toml-lang/toml)
がありますが、少なくとも形式上は何かのフォーマットを使うよう指定されているわけでは無いようです。


CC BY-SA 4.0
2018-06-19T10:19:29.860
44889
2018-06-19T10:19:29.860
19110
44866
answer