Sự hiểu biết của tôi là git tuân theo quy ước Linux 'chuẩn' cho cờ. Đó là:
- một dấu gạch ngang cho 'ngắn' cờ: thường một lá cờ nhân vật, nhưng đôi khi những lá cờ với một nhân vật duy nhất, sau đó ký tự tiếp tục đại diện cho một tham số để lá cờ (ví dụ
git log -SFoo
, trong đó Foo
là một tham số vào cờ -S
). Những lá cờ này có thể hoặc không thể viết tắt là những lá cờ dài khác.
- Hai dấu gạch ngang cho cờ 'dài': cờ nhiều ký tự thường là từ tiếng Anh. Nếu những cờ này nhận được thông số, nó sẽ được tách ra khỏi cờ bằng một dấu hiệu
=
(ví dụ: git log --author=Peter
).
Đây là 'lý do': đó là quy ước được nhúng trong thế giới Linux. Git đến từ thế giới này, vì vậy nó theo quy ước. Các 'hai dấu gạch ngang cho một lá cờ dài, một cho một cờ ngắn' quy tắc nên hướng dẫn bạn như thế nào nhiều dấu gạch ngang để sử dụng cho một lá cờ.
Vì lý do tại sao có các cờ ngắn và dài trùng lặp, chẳng hạn như --quiet
và -q
, đó chỉ là để cung cấp tùy chọn thuận tiện hoặc dễ nhớ. --quiet
dễ nhớ hơn, nhưng -q
nhanh hơn khi nhập và phân tích cú pháp về tinh thần nếu bạn quen với nó. Ví dụ, tôi gõ git commit -m "...blah"
vì vậy thường xuyên nó sẽ nhận được trên dây thần kinh của tôi nếu tôi đã tăng gấp đôi chiều dài của lệnh của tôi mỗi lần bằng cách nhập git commit --message='...blah'
.
tôi đã không gặp bất kỳ cờ git mà hành xử khác nhau cho hai dấu gạch ngang và một dấu gạch ngang, vì vậy thường nếu bạn nhập hai dấu gạch ngang cho một lá cờ một dấu gạch ngang hoặc ngược lại, không có gì không thể sửa chữa xấu sẽ xảy ra, git sẽ chỉ phàn nàn về lá cờ của bạn và không làm gì cả.
Tất nhiên, git có một số lượng lớn lệnh, mỗi lệnh có số lượng cờ lớn, vì vậy có thể có ngoại lệ đối với tất cả các quy tắc này. Họ thường nên giữ mặc dù.
Hoặc những tùy chọn yêu cầu không có dấu gạch ngang (ví dụ: danh sách stit git)? –