Gitextensions: チェックアウトブランチがサブモジュールフォルダーをクリアしない

作成日 2015年09月29日  ·  4コメント  ·  ソース: gitextensions/gitextensions

私は以下の(簡略化された)ブランチ構造を持っています

/主人
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 issue

最も参考になるコメント

解決策を探している人のために:(申し訳ありませんが私は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 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の投稿からです

このページは役に立ちましたか?
0 / 5 - 0 評価