2017-06-20 18 views
0

ファイルがfoo/example.txtの場合、新しく作成された親ディレクトリに移動されると、gitは新しいファイルを検出していないようです。ディレクトリを検出していないgitディレクトリが別のディレクトリに移動した

mkdir foo/bar 
mv foo foo/bar 

は、特に、git statusfoo/example.txtが削除されたことを示しているが、ではないことfoo/bar/example.txt作成あります。 git status --ignoredは、ではないにしても、.gitignoreには、foo/barが無視されたdirとして表示されます。は、にありません。実際には、ディレクトリの名前を変更しても無視された状態は変わりません。

git mvを使用するとが発生しません。なぜか分からない。

これは2.13.0Darwin C02RW05YFVH6 15.6.0にあります。

答えて

2

を検出します。git rm旧ディレクトリ、git add新しいものです。

+0

なぜですか?そして、Gitが特別な手順を取らずにこのような変更を常に検出できるようにする設定がありますか? –

+0

これはgitの背後にあるディレクトリを "移動"したことです。ディレクトリを移動した直後に(gitを使用せずに)ステータスがgitにチェックされていれば、「このディレクトリはありません。このディレクトリがあります。それはgitが魚のようなものがあることに気がついたことを認識させるのに十分なはずです。この時点でディレクトリを "追加"した場合、削除についてgitに通知していないため、gitはファイルが "新規"であると考えます。追加した後に古いディレクトリを削除した場合、gitは "aha!"と表示されます。... 2bcont – eftshift0

+0

... "mv;を使用する代わりに、ファイルが..... _or_移動されたことを伝えます。 git mt originaldir bar/newdir''' – eftshift0

関連する問題