web-dev-qa-db-ja.com

インデックスから削除できないサブモジュールを追加します

すでに存在するサブモジュール(別のgitリモートリポジトリ)を追加しようとしています。私はそれを正しく行う方法を見つける前に検索していなかったので、リポジトリをめちゃくちゃにしたので、もう一度修正するために助けが必要だと思います。

削除したいサブモジュールに関して、.gitmodulesと.git/configからすべての関連セクションをすでに削除しました。 .git /ディレクトリ内にmodulesディレクトリがないことも確認しました。

ただし、コマンド_git rm --cached path_to_submodule_を実行すると、次のメッセージが表示されます。

致命的:pathspec 'path_to_submodule'はどのファイルとも一致しませんでした

前のコマンドが失敗したので、同じ定義のサブモジュールを新しい定義で再度追加しようとすると、_git submodule add gituser@Host:repo.git_コマンドを実行すると、次のメッセージが表示されます。

 'repo'はすでにインデックスに存在します
23
Rui Gonçalves

そのメッセージ('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'がサブモジュールではない場合でも、サブモジュールが存在すると、同じ名前のサブモジュールの宣言ができなくなります。

50
VonC

新しいサブモジュールを追加する出力が次の場合:

'FolderName' already exists in the index

次のコマンドのヒント

git ls-files --stage 

出力は次のようになります。

160000 d023657a21c1bf05d0eeaac6218eb5cca8520d16  0  FolderName

次に、フォルダーインデックスのヒントを削除します。

git rm -r --cached FolderName

サブモジュールをもう一度追加してください

4
GutiMac

エラー、サブモジュールのフォルダの手動削除、またはHallileo Cometなどの何かとマージするときに発生する可能性があります

  1. ファイル.gitmodules-サブモジュールへのリンクを削除します(サブモジュール名を含むセクション全体)

  2. ファイル.git\config-前の手順と同様に、サブモジュールへのリンクを削除します

  3. フォルダ.git\modules-「問題」モジュールの相対パスに類似した相対パスを持つフォルダーを削除します

  4. サブモジュールのフォルダが存在しないことを確認してください

  5. 次に:

    $ git submodule add -f --name <name> <git://path_1.git> <path_2>

    ここで:name-希望するサブモジュールの名前。repoの名前と同じでもかまいません。 -サブモジュールソースリポジトリへのパス(つまり-githubなど)-サブモジュールが存在するフォルダーへの相対パス

    これにより、uはパス内に、またはまだインデックスに存在しているが、本来は生きていない名前でサブモジュールを追加できます。

これらのデッドリンクをインデックスから削除する方法は見つかりませんでしたが、強制されたとき

2
SynCap

「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

0
knight2016

これは、サブモジュールの名前と同じ名前のフォルダーがリポジトリにあるためです

$ git rm -r subModuleName
$ git submodule add "your submodule repo path without these quotes"

サブモジュールを追加してもう一度お試しください

0
abhishek tomer