1

ローカルリポジトリに「master」と「new」の2つのブランチがあるとします。マスターでは、「folder /」フォルダを.gitignoreに配置し、リポジトリからマスターにプルして、新しいフォルダ「temp/」を追加します。今、私が「新しい」にチェックアウトしたいとき、私はこれを持っています

error: The following untracked working tree files would be overwritten by checkout:
.folder/subfolder/somefile
.folder/subfolder/somefile
tmp/somefiles(1),tmp/somefiles(2)...

(チェックアウトする前にコミットしました)git rm --cachedを「temp/」および「folder/」フォルダーに実行しようとしましたが、なぜこのメッセージが表示されるのかわかりません(チェックアウトプロセスは実際にはそうではないと思います)私にとっては明らかです)。誰かが助けることができますか?

4

1 に答える 1

3

メッセージは基本的に、リストされたファイルが追跡されていないことを意味しますが、チェックアウトしているブランチはそれらを追跡しています。その結果、これらのファイルのローカル(追跡されていない)バージョンが削除され、チェックアウトしているブランチに保存されているものに置き換えられます。

この理由は、リポジトリからフォルダを削除したが、ファイルはまだそこにあるためです。git rm --cachedインデックスからファイルを削除するだけで、ファイルを物理的に削除することはありません。したがって、それらのファイルを追跡している別のバージョンをチェックアウトすると、競合が発生します。

とにかくファイルを削除したい場合は、直接削除することができます(rm <file>)。次に、別のブランチをチェックアウトした後、もちろん、それらのファイルは引き続き保持されるため、そのブランチでもそれらを削除する(または後で削除をそのブランチにマージする)ことができます。

于 2013-01-19T16:18:26.677 に答える