2012-02-17 52 views
1

我大致知道他們做了什麼,但他們在哪裏來的呢?他們有正式的名字嗎?我也經常在shell命令中看到類似的字母,後面跟着破折號。git中的破折號是什麼?如:-a -b -p

我不能露面的答案經過一番快速搜索,因爲我不能搜索「-a」,「-b」等,因爲破折號不被搜索引擎拾起。

編輯:我發現了一個搜索引擎來查找這樣的事情:symbolhound

回答

1

那些被稱爲開關。它們在命令行中非常常見。大多數開源軟件(如git)使用像getopt這樣的庫來讀取這些文件。格式是完全可預測:

  • -a [VALUE](單字母開關)
  • --name [= VALUE](對於闡明開關)

在這兩種情況下取決於交換機,可能需要也可能不需要VALUE。在你的例子中,他們沒有使用。閱讀手冊頁或運行command --help通常會告訴您哪些交換機受支持。

+0

謝謝你,我一直想知道你和今天jcollado的帖子之間的區別。 – CornSmith 2012-02-18 01:51:15

1

它們常用的選項;像getoptpopt這樣的編程工具或多或少地以標準方式解析它們。你會在Unix中遇到它們,比如標準的ls -l選項,以「長形式」而非短形式列出。

-的關鍵不是它只是一個任意但常規的字符,很少發生在例如文件或分支名稱的開頭,所以相對容易區分「行爲不同」和「在這件事情上操作」的工具。

+0

謝謝你的回答言簡意賅,這就是我一直在尋找。 – CornSmith 2012-02-18 01:55:25

0

破折號標記選項命令。因此,-a是一種選擇,而-b是另一種選擇。

的原因還有一個破折號,讓您和該命令知道它是一個選項。因此,例如,

git commit --amend main.c 

--amend之前破折號清楚地表明--amend是一種選擇,而main.c沒有破折號,所以它是一個正規的說法。

,這是它幾乎與所有shell命令的方式。有關更多詳細信息,請參見a man page

0

除了在其他答案中已經解釋過的內容,請注意,有一個git help命令將提供有關所有子命令選項的信息。

例如,在輸出git help commit,你會看到以下內容:

OPTIONS

-a, --all 
     Tell the command to automatically stage files that have been modified and deleted, but new files you have not 
     told git about are not affected. 
+0

啊,所以 - 只是表示這個選項被拼寫成完整的單詞。謝謝,我一直在想這件事。 – CornSmith 2012-02-18 01:48:37