75

どちらも同じように機能すると思いました。どちらもすべてのファイルをインデックスに追加します。しかし、私は間違っているようです。

  • git add .との違いは何git add -uですか?
4

3 に答える 3

78

これは、ここで説明したgitの落とし穴の1つです(Git 2.0より前)。

git add .削除されたものではなく、そこにあるものだけを追加します(追跡されている場合)。

git add .
git commit
git status
//hey! why didn't it commit my deletes?, Oh yeah, silly me
git add -u .
git commit --amend

git add -A両方のステップを処理します...


Git 2.0では、git add -Aデフォルトです

git add <path>これは""と同じgit add -A <path>であるため、 " git add dir/"はディレクトリから削除したパスを認識し、削除を記録します。
古いバージョンのGitでは、「git add <path>」は削除を無視するために使用されていました。

本当に必要な場合は、「」と言っgit add --ignore-removal <path>て、追加または変更されたパスのみをに追加できます。<path>


警告(git1.8.3 2013年4月、今後のgit2.0の場合)。代わりに、
と言うように答えを変更しました。:git add -u .git add -u

git add -u" "やその他のコマンドとの一貫性を保つために、Git2.0のツリー全体で動作します。「」を「」として動作さ せるメカニズムがないため、「 」(pathspecなし)で現在のサブディレクトリ内のパスのみのインデックスを更新することに慣れている人は、明示的に「」と言うように指のトレーニングを開始することが重要です。 Git2.0が登場する前にそれを意味するとき。git commit -a
git add -ugit add -u .git add -ugit add -u .

「 e」で述べたように

于 2010-02-03T07:56:58.620 に答える
25

マニュアルにあるように:git add .現在のディレクトリにあるすべてのファイルを追加しますが、git add -u .すでに追跡されているファイルのみを追加します。

于 2010-02-03T07:55:02.227 に答える
14

git add documentaiton

git add . 

現在のディレクトリからすべてのファイルを追加します

git add -u 

現在追跡されているファイルのみを更新します。

于 2010-02-03T07:56:47.357 に答える