2016-04-14 7 views
1

git add --all *を実行すると、ファイルの削除がステージングされません。 git statusの出力では、「コミットのためにステージングされていない変更」という見出しの下に赤で削除が表示されます。私は削除したものだけを削除するのではなく、新しい追加を取得するだけです。私は何をすべきか?なぜファイルの削除が "git add --all *"によってステージングされないのですか?

+1

'git add --all .' – Nayuki

+0

' * 'と書くと、シェルは現在のディレクトリにあるすべてのファイルに展開します。 Gitは '*'(ファイルのリストを見る)を見ず、あなたが選択しようとしている削除されたファイルについては決して聞きません。 – Nayuki

+1

ありがとう!それを修正しました – Guerrilla

答えて

3

git add --all *を実行すると、コマンドシェルは、*ワイルドカードを現在の作業ディレクトリ内のファイル/ディレクトリ名のリストに展開します。 Gitプログラムは決して*を見ることはできません。 git add --all foo.txt bar.jpg subdirのような実際のコマンドラインを受け取ります。

--all(または-A)フラグを使用していることをお勧めします。このフラグは、削除されたファイルパスの変更をGitに伝えるよう指示します。だから、git add --all .を実行するだけで、Gitはカレントディレクトリ全体(そしてすべてのサブアイテムを再帰的に見る)を作成し、作成/変更したものを追加し、インデックスにあった項目も考慮に入れます作業ディレクトリにはもっと長くなります。

+0

'git add'フラグの参考資料:http://stackoverflow.com/a/26039014/839689 – Nayuki

関連する問題