gitを正しく使用していない場合があります。ブランチの作成やファイルやフォルダの削除には全く問題はありません。マスターブランチに切り替えると、削除されたファイルとフォルダはそのブランチから削除されていないので復元されます。
あなたのケースでは、git rmコマンドではなくオペレーティングシステムの削除を使用して、gitの下からファイルやフォルダを削除している場合があります。だから、gitのステータスは、それらを「削除済み」として報告します。また、ブランチを切り替えるとファイルが削除されたままになるのも理由です。 gitはファイルがそこにあることを期待しており、そうではありません。
ステータスが "git add"を実行するように指示しても動作しません。ファイルはもはや存在しないので、git addを実行すると、自動的に失敗します。気づかないかもしれませんが、メッセージは "git rm"を実行するように指示します。あなたはファイルがなくなったので、あなたがそれをすることができないと思うかもしれませんが、それは真実ではありません。 rmコマンドは、ファイルシステムからファイルを削除しても、そのファイルをリポジトリから削除するのに成功します。
git add -Aを実行すると、やりやすいことは簡単です。 -Aフラグは、削除または追加されたファイルに通知するためにaddに通知します。
は、テストのためにこれを試してみてください:
git init test-delete
cd test-delete
touch filea
mkdir dir_b
touch dir_b/fileb
git add .
git commit -m "Initial commit"
git checkout -b new_branch
rm -rf dir_b
git add -A
git commit -m "deleted files from branch"
(ls to prove files arent' there)
git checkout master
(ls to show files have been restored)
git checkout new_branch
(ls to show files are gone again)
あなたはmasterブランチにチェックアウトする前に、3.0-WIPブランチにコミットしましたか?もしそうでなければ、それはおそらく問題です。 –
私は外部レポをクローンしました。新しい '3.0-wip'ブランチを作成してチェックアウトしました。 Finderでファイルやフォルダを削除しました。新しい 'index.php'ファイルを作成し、それをコミットしました。私の 'master'ブランチをチェックアウトするとファイルは消え、' git status'はすべてのファイル/フォルダを 'deleted:'として表示します。 –
あなたは追加しましたか? |コミットする前にgit add -u? 3.0-wipブランチでこれらの変更をどのようにコミットしましたか? –