プロジェクトの中でGitで「git add」しようとしたときに以下のようなエラーが発生することがあります。
warning: adding embedded git repository: レポジトリ名
You've added another git repository inside your current repository
ここでは、このエラーの原因と対処法についてまとめています。
エラーの発生状況
「git clone」でファイルなどをプロジェクトの中に追加して、加えたファイルを「git add」してステージングしようとしたときに以下のエラーが発生。
$ git add .
warning: adding embedded git repository: レポジトリ名
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> WOW
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached WOW
hint:
hint: See "git help submodule" for more information.
Gitのレポジトリを「git add」しようとしているという警告です。
原因
元々あるプロジェクトの中に別のプロジェクトをgit cloneしたため、Gitが管理しているレポジトリが重複したことが原因です。
ここでは、Laravelのプロジェクトの中に、アニメーションを使うためのWOW.jsというライブラリを「git clone」してきました。
元々のLaravelのプロジェクトの中にもGitレポジトリがあり、さらに「git clone」してきたモノの中にも別のGitレポジトリがあったことでバッティングが発生した結果です。
対処法
対処法は追加したレポジトリの取扱によって以下の2つの方法に分かれます。
ファイルだけ欲しくて、追加したレポジトリのコミット履歴などは不要な場合
追加したレポジトリのファイルだけ欲しくて、コミット履歴などは不要な場合は、不要な方のレポジトリのキャッシュを削除します。
$ git rm --cached レポジトリ名
実例
ここでは、「git clone」してきたWOWというレポジトリが不要なので、削除します。
$ git rm --cached WOW
error: the following file has staged content different from both the
file and the HEAD:
WOW
(use -f to force removal)
削除が完了しました。
再度「git add」を実行してみます。
$ git add .
$
エラーが出ることなくgit addすることができました。
サブモジュールとして追加した場合
「git clone」したレポジトリをサブモジュールとして使いたい場合は、以下のコマンドを実行します。
git submodule add <リモートレポジトリのURL> <登録するレポジトリ名>
ヒントの中身
なお、上記の対処法は「git add」したときに表示されたエラーの内容にヒントとして記載されています。
$ git add .
warning: adding embedded git repository: レポジトリ名
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> WOW
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached WOW
hint:
hint: See "git help submodule" for more information.
↓ 翻訳
警告:埋め込まれたgitリポジトリを追加します:レメッセージトリ名
ヒント:現在のリポジトリ内に別のgitリポジトリを追加しました。
ヒント:外部リポジトリのクローンには、
ヒント:埋め込まれたリポジトリであり、それを取得する方法がわかりません。
ヒント:サブモジュールを追加する場合は、次を使用してください。
ヒント:
ヒント:git submodule add <url> WOW
ヒント:
ヒント:このパスを誤って追加した場合は、から削除できます。
ヒント:インデックス:
ヒント:
ヒント:git rm --cached WOW
ヒント:
ヒント:詳細については、「githelpサブモジュール」を参照してください。