Rozumiem, że git jest zgodny ze standardową konwencją Linux dotyczącą flag. Czyli:
- jedna kreska na „krótkim” flagi: Ogólnie jednej flagi znaków, ale czasami flagi za pomocą jednego znaku, a następnie dalsze znaki, które stanowią parametr do flagi (np
git log -SFoo
, w którym Foo
jest parametrem do flagi -S
). Te flagi mogą, ale nie muszą być skróconą formą innych, dłuższych flag.
- Dwa kreski dla długich flag: flagi wieloznakowe, które zazwyczaj są słowem angielskim. Jeśli te flagi otrzymują parametry, jest ono oddzielone od flagi znakiem
=
(np. git log --author=Peter
).
To jest "dlaczego": jest to konwencja osadzona w świecie Linuksa. Git pochodzi z tego świata, więc podąża za konwencją. "Dwa kreski dla długiej flagi, jedna dla krótkiej flagi" powinny wskazywać, ile kresek należy użyć dla flagi.
Jeśli chodzi o powielanie krótkich i długich flag, takich jak --quiet
i -q
, wystarczy podać opcję przydatności mnemonicznej lub zwięzłości. Łatwiej jest zapamiętać numer --quiet
, ale można go szybciej pisać i przetwarzać w myślach, jeśli już się przyzwyczaiłeś. Na przykład wpisałem git commit -m "...blah"
, więc często działał mi na nerwy, gdybym musiał podwoić długość mojego polecenia za każdym razem, wprowadzając git commit --message='...blah'
.
I nie natknąć żadnej flagi git, które zachowują się inaczej podane dwie kreski i jedna kreska, więc generalnie jeśli wpiszesz dwie kreski na fladze jedna kreska lub odwrotnie, nic nieodwracalnie złego się stanie, będzie git po prostu narzekaj na swoje flagi i nie rób nic.
Oczywiście git ma ogromną liczbę poleceń, z których każda zawiera ogromną liczbę flag, więc możliwe jest, że istnieją wyjątki od tych wszystkich reguł. Powinny jednak ogólnie trzymać.
A co z opcjami, które nie wymagają kresek (np. Lista ukryć git)? –