私は以下の(簡略化された)ブランチ構造を持っています
/主人
readme.md
/発展
readme.md
folder1 /
このフォルダに初期化されたサブモジュール
2つのブランチを切り替えると、サブモジュールフォルダーも削除されると思います。 私はバージョン2.48.05を使用しているWindows10を使用しています
私が得ている実際のメッセージは
"C:\Program Files (x86)\Git\bin\git.exe" checkout "master"
Your branch is up-to-date with 'origin/master'.
warning: unable to rmdir Daedalus.Web/Areas/blog: Directory not empty
warning: unable to rmdir Daedalus.Web/Areas/emails: Directory not empty
Switched to branch 'master'
Done
なぜこれが起こっているのか、または私がそれを回避する方法について誰かが光を当てることができますか? 私のプロジェクトは非公開ですが、必要に応じて、公開Gitで問題を再現して、問題のデモを行います。
Git Bashでgit checkout master
を実行してみてください。
blog
およびemail
フォルダー内のファイルは何ですか? それらは.gitignoreにありますか?
こんにちは@ Radrik5 、
これをGitBashで試したところ、上記と同じメッセージが表示されます。 ディレクトリが空になりましたなど
.gitignore
についておっしゃいましたが、サブモジュールフォルダはメインリポジトリ.gitignoreで名前を付ける必要がありますか?
sub-modules
フォルダーには、いくつかのfolders
、 .html
、 .cs
ファイルなどがあります。
これはサブモジュールでよく知られている問題のようです。 https://git-scm.com/book/en/v2/Git-Tools-Submodules#Issues-with-Submodulesを参照して
解決策を探している人のために:(申し訳ありませんが私は4年遅れています...)
新しいGitバージョン(Git> = 2.13)は、-recurse-submodulesフラグをgit checkoutコマンドに追加することで、これをすべて簡素化します。これにより、切り替え先のブランチに適した状態にサブモジュールが配置されます。
git checkout --recurse-submodules master
使用する
git config submodule.recurse true
を使用して、常に--recurse-submodules
使用するようにgitに指示します(gitバージョン2.14以降のみ)
ソースは上記の@ Radrik5の投稿からです
最も参考になるコメント
解決策を探している人のために:(申し訳ありませんが私は4年遅れています...)
git checkout --recurse-submodules master
使用するgit config submodule.recurse true
を使用して、常に--recurse-submodules
使用するようにgitに指示します(gitバージョン2.14以降のみ)ソースは上記の@ Radrik5の投稿からです