2014-02-12 69 views
1

當試圖添加所有我刪除的文件,而無需使用我在哪裏可以找到有關從git add -u到git add --update:/?的更改信息。

git rm 

我找到了命令

git add -u 

想象一下,我驚愕時did not work as advertised.

相反,我得到了以下警告。

warning: The behavior of 'git add --update (or -u)' with no path argument from a 
subdirectory of the tree will change in Git 2.0 and should not be used anymore. 
To add content for the whole tree, run: 

    git add --update :/ 
    (or git add -u :/) 

To restrict the command to the current directory, run: 

    git add --update . 
    (or git add -u .) 

從哪裏可以找到有關從git add -u到git add的更改的文檔--update:/?

而且,顯然:/不是frowney-臉。這是一個實際的命令。

+0

實際行爲還沒有改變,它只是警告你習慣於鍵入這兩個版本中的任何一個來指定你的意思。沒有參數的當前含義與「add -u」相同。所以如果你習慣於輸入,而不是「添加-u」,你將看不到任何改變。如果你的意思是獲得'cd root_of_git_work_tree; git add -u。; cd back_where_I_was',使用冒號斜線版本。 – torek

回答

0

從哪裏可以找到有關從git add -u更改爲git add --update:/?的文檔。

commit 0fa2eb53,通過Matthieu Moy (moy)在GIT中v1.8.2的(2013年3月)介紹:

大多數Git命令,可以有或沒有pathspec被用於通過缺省操作樹範圍,所使用的pathspec限制其範圍。
少數例外是:'git grep','git clean','git add -u'和'git add -A'。
在沒有pathspec的子目錄中運行時,它們僅在當前目錄中的路徑上運行。

的「git add -u」和「git add -A」不一致性是特別有問題的,因爲其它「git的添加」子命令(即「git add -p」和「git add -e」)是樹寬默認情況下。
這也意味着「git add -u && git commit」將記錄與 不同的狀態,其記錄爲「git commit -a」。

現在翻轉默認是不能接受的,所以讓我們開始訓練用戶鍵入「git add -u|-A :/」或「git add -u|-A .」明確,爲下一步做準備:

  • 禁止不「git add -u|-A」無pathspec(如' ''沒有選項)

  • 很久以後,也許,重新允許'git add -u|-A'沒有pathspec,這將添加所有跟蹤和修改的文件,或所有文件,全樹。

這個補丁的一個不錯的副作用是它使0123.魔術pathspec更容易發現用戶。

當從樹的根部調用該命令時,沒有歧義,也不需要改變行爲,因此不需要警告