3

私の理解ではgit add .、ディレクトリ内のすべてのファイルがリポジトリに追加されます。

通常、ファイルを編集する場合は、git add file.nameそのファイルだけをステージング領域に移動します。

git add .この時点で、変更したすべてのファイルをステージング領域に追加するだけで何か問題があるのでしょうか? 明らかに、これgit addは変更されていないファイルも含め、すべてのファイルで実行されますが、これは悪いことですか? 問題ないとは思いますが、ここで確認したいと思います。

もちろん、それができることも知っていますgit commit -aが、これが技術的にgit add .後に続いて行うことと同じなのか、git commitそれともadd特定のファイルだけに十分スマートなのかはわかりません。

4

3 に答える 3

2

git add .削除されたファイルを削除しません。より具体的には、次と同じです。

git add --no-all .

おそらく必要なのは、変更されたファイルのみを更新することです。

git add --update .

Git 2.0 ではgit add .、現在の に変更されるgit add --all .ため、削除されたファイルが削除され、以前に存在しなかったすべてのファイルが追加されるため、おそらく--update代わりに使用を開始する必要があります。

于 2013-10-04T18:37:55.903 に答える
0

gitadd .は、最後のコミット以降に削除されたファイルを削除しません。
ファイルを削除する場合は、git rm を使用して、削除されたファイルが git に通知されるようにします。また、ファイルが削除されたことを git が認識していることを忘れないようにします。別のコメントで述べたように、gitcommit -aは削除されたファイルを認識します。

git add の後に git status を作成することをお勧めします。

私は毎回使用add .しますが、この追加の中に何を入れたかを確認する良い方法です. 私にとって、gitには何か問題がありますadd .

唯一のことは、プッシュしたくないいくつかのファイルを git status の後に表示した場合、オンラインにしたいファイルのみを選択できることです。

通常、コードを編集していくつかのファイルをプッシュするようにアドバイスされた後、多くのファイルをプッシュするのは良い方法ではありません。

于 2013-10-04T10:51:29.727 に答える
0

私もできることは知っていますが、これが技術的にはその後に続くことgit commit -aと同じかどうか、または特定のファイルを追加するだけで十分にスマートかどうかはわかりません。git add .git commit

git commit -aと言っているのとまったく同じではありませんgit add . ; git commit

git help commitあなたに言うでしょう:

   -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.

とは言っても、新しいファイルを追加していない場合、この 2 つは同じように動作します。

繰り返し行ってgit add fooも副作用はありません。

于 2013-10-04T10:50:53.603 に答える