Help us understand the problem. What is going on with this article?

Composer install したらgit submodule化してしまった

More than 5 years have passed since last update.

状況

gitで管理しているレポジトリをgithubにプッシュした際に、webhookを利用して、開発サーバーにソースをアップ(開発サーバーからpull)している。
gitpullは正常に行われているのに、開発サーバーで一部モジュール(今回は cebe/markdown)が読み込めていない。
githubを見てみると、対象のモジュールのフォルダのみがアップされていない。


調査

Composer でPHPのモジュールをインストールした際に、モジュールにgitで管理されているモジュールが含まれていた為、submodule扱いとなり、コチラの意図通りにgit管理出来なくなってしまったとアテをつけて調査。

試しに直接 git add してみる
$ git submodule deinit vendor/cebe/markdown/

No submodule mapping found in .gitmodules for path 'vendor/cebe/markdown'

・・・出来ない。

サブモジュールの削除?
$ git submodule deinit vendor/cebe/markdown/

No submodule mapping found in .gitmodules for path 'vendor/cebe/markdown'

これもムリ。

submoduleのキャッシュがあるらしい。クリアを試す。
$ git rm --cached vendor/cebe/markdown/

error: the following file has staged content different from both the
file and the HEAD:
    vendor/cebe/markdown
(use -f to force removal)

手応えあり・・?


対策

まずは上記のエラーメッセージの導きに従い、-f オプションを付けてみる

git rm --cached -f
$ git rm --cached -f vendor/cebe/markdown/
rm 'vendor/cebe/markdown'

エラーなし。

念のため submodule deinit
$ git submodule deinit vendor/cebe/markdown/

error: pathspec 'vendor/cebe/markdown/' did not match any file(s) known to git.
Did you forget to 'git add'?

git add してないよって言われる。

git add してからやってみる
$ git add vendor/cebe/markdown/
$ git submodule deinit vendor/cebe/markdown/

一応エラーは出ない。

これで $ git status してみると、無事にaddされてる!

実際にはsubmodule化している訳ではないので、submoduleのキャッシュをクリアするのがキーだったぽい。(たぶん)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした