すでに存在するサブモジュール(別のgitリモートリポジトリ)を追加しようとしています。私はそれを正しく行う方法を見つける前に検索していなかったので、リポジトリをめちゃくちゃにしたので、もう一度修正するために助けが必要だと思います。
削除したいサブモジュールに関して、.gitmodulesと.git/configからすべての関連セクションをすでに削除しました。 .git /ディレクトリ内にmodulesディレクトリがないことも確認しました。
ただし、コマンド_git rm --cached path_to_submodule
_を実行すると、次のメッセージが表示されます。
致命的:pathspec 'path_to_submodule'はどのファイルとも一致しませんでした
前のコマンドが失敗したので、同じ定義のサブモジュールを新しい定義で再度追加しようとすると、_git submodule add gituser@Host:repo.git
_コマンドを実行すると、次のメッセージが表示されます。
'repo'はすでにインデックスに存在します
そのメッセージ('repo' already exists in the index
)は、 'repo'がインデックスにまだ存在する場合に表示できます( サブモジュールのこの章 を参照):
$ rm -Rf rack/
$ git submodule add [email protected]:schacon/rack.git rack
'rack' already exists in the index
You have to unstage the rack directory first. Then you can add the submodule:
$ git rm -r rack
$ git submodule add [email protected]:schacon/rack.git rack
'rack
'がサブモジュールではない場合でも、サブモジュールが存在すると、同じ名前のサブモジュールの宣言ができなくなります。
新しいサブモジュールを追加する出力が次の場合:
'FolderName' already exists in the index
次のコマンドのヒント
git ls-files --stage
出力は次のようになります。
160000 d023657a21c1bf05d0eeaac6218eb5cca8520d16 0 FolderName
次に、フォルダーインデックスのヒントを削除します。
git rm -r --cached FolderName
サブモジュールをもう一度追加してください
エラー、サブモジュールのフォルダの手動削除、またはHallileo Cometなどの何かとマージするときに発生する可能性があります
ファイル.gitmodules
-サブモジュールへのリンクを削除します(サブモジュール名を含むセクション全体)
ファイル.git\config
-前の手順と同様に、サブモジュールへのリンクを削除します
フォルダ.git\modules
-「問題」モジュールの相対パスに類似した相対パスを持つフォルダーを削除します
サブモジュールのフォルダが存在しないことを確認してください
次に:
$ git submodule add -f --name <name> <git://path_1.git> <path_2>
ここで:name-希望するサブモジュールの名前。repo
の名前と同じでもかまいません。 -サブモジュールソースリポジトリへのパス(つまり-githubなど)-サブモジュールが存在するフォルダーへの相対パス
これにより、uはパス内に、またはまだインデックスに存在しているが、本来は生きていない名前でサブモジュールを追加できます。
これらのデッドリンクをインデックスから削除する方法は見つかりませんでしたが、強制されたとき
「submodules/uasdk-clib」はすでにインデックスに存在します
git rm -r --cached submodules/uasdk-clib
git submodule add -b china/release/16.8.0 -f ssh://[email protected] submodules/uasdk-clib
これは、サブモジュールの名前と同じ名前のフォルダーがリポジトリにあるためです
$ git rm -r subModuleName
$ git submodule add "your submodule repo path without these quotes"
サブモジュールを追加してもう一度お試しください