86700


git add -A の-Aオプションはなぜ大文字なのでしょうか？  
-a オプションが他に使用されていたのですか？  
大文字・小文字の規則はあるのでしょうか？


CC BY-SA 4.0
2022-03-05T05:19:06.680
86696
2022-03-05T07:46:42.843
51699
question
git
gitオプションの大文字・小文字の違い


たしかに git-add には `-a` オプションがないのに `--all` の短縮名は `-A` ですね．

Unix
コマンドの短縮名に大文字を採用することについて，私が知る限り明確なルールはないと思います．一般的には，以下のいずれかの理由で採用されている例が多いような気がします：

  1. 小文字の短縮名が既に存在していて，それとの区別をするため
  2. 挙動が特殊だったり危険だったりするため，使用時に注意してもらうため

さて，git-add については，git-add に最初に `--all`
オプションが追加された際のコミットメッセージに短縮名が大文字となった理由が書かれていました．

> It will be too much of a change that is against the expectation of the  
>  existing users to allow "git commit -a" to include untracked files,  
>  and it would be inconsistent if we named this new option "-a", so the  
>  short option is "-A". We _might_ want to later add "git commit -A"  
>  but that is a separate topic.  
>
> <https://github.com/git/git/commit/3ba1f114267b19a458df0f1d714dc4010ec9cc56>

要するに，広義の 1. と 2. の複合みたいなパターンのようです．確かに git-add 自体には小文字の短縮名 `-a` は存在しませんが，それ以前から
git-commit に `-a` オプションが存在していて，git-commit の `-a` と git-add の `-A`
では挙動が異なることについて注意を促すために大文字になったということのようです．

ちなみに同コミットメッセージには「git-commit の方にも `-A` を追加するかも知れない」という主旨のことが書かれていますが，結局今日 (git
2.35.1) まで追加されてはいないようです．


CC BY-SA 4.0
2022-03-05T07:46:42.843
86700
2022-03-05T07:46:42.843
27047
86696
answer