13

git動物にはこの一連のコマンドがありました:

git init
git add *
git commit -a -m ‘initial commit and release!’

(私が通常行う)git add *と比較して何が同じですか?git add .

4

2 に答える 2

17

git add *のシェル拡張の結果であるすべてのパスを追加しますが、*gitgit add .に現在のディレクトリを追加するように指示します。

git add *.のシェル拡張は*これらを「非表示」パスと見なすため、aで始まるパスは追加されません。

git add *-f無視されたパスを本当に追加したいことを示すために(force)フラグを渡さずに無視されたパスを明示的に指定すると、gitはそれをエラーと見なすため、拡張パスが現在gitによって無視されている場合にも失敗します。

gitでglob(git add '*')を展開すると、「隠し」ファイルが追加され、無視されたファイルがスキップされます。git add .この場合と同じように機能します。

于 2012-06-10T18:33:26.710 に答える
2

デフォルトでは、ディレクトリをに渡すと、git addそのサブディレクトリとファイルが再帰的に追加されます。

ワイルドカード*は、現在のディレクトリの下にあるファイルの名前としてシェルによって展開されます。

また、Unixでは.現在のディレクトリのみを参照するため、これら2つのコマンドは同等です。シェル*によって.処理され、gitによって処理されますが、同じことを行います。

于 2012-06-10T18:33:01.283 に答える