🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

3674閲覧

大文字小文字を誤って管理してしまったファイルを正したい。

tomomo

総合スコア430

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/03/04 01:07

編集2021/03/04 04:39

php_codesnifferを使ってコーディング規約に沿って開発しているソースコードがあり、1つ消せないエラーがありまして、ご教示いただきたく。
イメージ説明

Filename "ResetpasswordModel.php" doesn't match the expected filename "ResetPasswordModel.php"phpcs

passwordとPassword。
開発の過程で大文字小文字を誤ってしまったようでこれを正したいのですが、修正することができません。
(ResetpasswordModel.phpでなくResetPasswordModel.phpにしたいです。)

実践したこと
その1
  1. いったん別名に変換(ResetPasswordModel.php→XResetPasswordModel.php)しコミット。
  2. その後ファイル名を元に戻しコミット。

→変わらず同じエラーメッセージが出続ける。

その2
  1. ResetPasswordModel.phpを削除し、コミット。
  2. その後新しくResetPasswordModel.phpを作成し、コミット。

→変わらず同じエラーメッセージが出続ける。


リネームしても削除しても、エラーメッセージ(画面ショット参照)を見る限り、内部でResetpasswordModel.phpという誤ったファイルを持ち続けているようなのですが、これはどのようにすれば解決するでしょうか?
(似たようなパターンのファイル名は受け付けているので、コーディング規約のエラーとかではなくこのファイル単体の管理方法に誤りが出たのだと思っており、phpのタグも一応つけたのですが、gitの質問なのではないかと思っています。)

よろしくお願いします。

開発環境に関して

追記 3/4 12:30

質問後に行ったことを追記させてもらいました。

大文字小文字を検知するようなオプションがあることを知り、有効にしました。

bash

1git config core.ignorecase false

リネームすると確かに大文字小文字を検知することがわかりました。
それでリネームしてはコミットしたりしましたがダメでした。

インデックスにキャッシュされているファイルを表示するコマンドを知り、試してみました。

bash

1git ls-files | grep Reset 2ResetpasswordModel.php 3ResetPasswordModel.php

誤ってる方を削除しましたが、ダメでした。

bash

1git rm --cached app/Models/ResetpasswordModel.php

適当なリモートリポジトリを作成し、一旦そこにあげる。
新しいクローンを作ってみると、エラーがなくなりました。

これはローカル(あげる前のプロジェクト)に何かキャッシュか何かを保持しているのでしょうか?
ローカルの其れを何かクリアする方法があるのでしょうか?
(先述したgit rm --cachedがそうじゃないのかなぁ...。)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/03/04 01:11

> リネームしても削除しても、エラーメッセージ(画面ショット参照)を見る限り、内部でResetpasswordModel.phpという誤ったファイルを持ち続けているようなのですが、 変更後にVSCodeやパソコン自体を再起動した場合はどうなりますか?
tomomo

2021/03/04 01:22

返信ありがとうございます。 今しがた試してみましたが、VSCoodeを再起動してもMac自体を再起動しても変わりませんでした。
yumetodo

2021/03/04 02:51

git mvコマンドでもリネーム出来ないですか?
tomomo

2021/03/04 03:41

返信ありがとうございます。 fatal: not under version control なるものが出てダメでした。 もっともいろいろやった後だからなのかもしれません。 (そのあとやった作業は質問に追記させてもらいました。)
yumetodo

2021/03/04 10:17

not under version control???gitで管理されているという情報と著しい矛盾が・・・
guest

回答1

0

試してない上、多分に妄想含んでるけど、メッセージ見る限りgitじゃなくてphpcsの何らかのキャッシュが悪さしてるように見えます。

ざっと調べてみましたが、今のところ解決方法は見つけられてません。
時間があれば追調査してみますが、取り急ぎ参考まで。

投稿2021/03/04 03:50

編集2021/03/04 03:50
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomomo

2021/03/04 04:35

返信ありがとうございます。 自分もphpcs、あるいはvscodeで使っているその拡張に関しての可能性も疑っています。 "ResetPasswordModel.php"という正しいファイルしか物理的に存在しない時に、以下コマンドを実行しました。 vendor/bin/phpcs --standard=./vendor/codeigniter4/codeigniter4-standard/CodeIgniter4 --encoding=utf-8 app/Models/ResetPasswordModel.php →何も表示されない。正しい。 vendor/bin/phpcs --standard=./vendor/codeigniter4/codeigniter4-standard/CodeIgniter4 --encoding=utf-8 app/Models/ResetpasswordModel.php →vscodeと同じエラーが表示された。 存在しないファイルを指定した時は `The file "app/Models/hogehoge.php" does not exist.`みたくなると思うのですが、vscodeと同じエラーが表示されたので、実態は消えても何かインデックス的なものが残っていて、それを辿って実行した結果がこれなのでは?と思ってるところです。 なのでphpcsみたいなのにもキャッシュがあるのかなと思いググったのですが、ちとわからない状態であります。 ちなみに vscodeの キャッシュみたいなのは消してみました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問