0

新しいRailsアプリをHerokuに配置しようとして、デフォルトのインデックスファイルpublic/index.htmlを削除しました。ただし、驚いたことに、Herokuでアプリにアクセスすると、表示したいインデックスではなく、デフォルトのインデックスページが表示されました。

OK、それは少し奇妙ですが、Gitがファイルを削除してもリポジトリからファイルを削除しないなどの理由があると思います。そこで私はインターネットでGitにリポジトリからファイルを削除させる方法を調べて思いついた

git filter-branch --tree-filter 'rm public/index.html' HEAD

しかし、これを実行すると、「ダーティな作業ディレクトリでブランチを書き換えることはできません」と表示されました。コミットしたばかりなので、作業ディレクトリが汚れている理由がわかりませんでした。実行git statusすると、次のように表示されました。

# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    public/index.html

かなり前にpublic/index.htmlを削除していたので、これは私を混乱させました。なぜそれが唯一の変更である必要があるのですか?それでも、私は走っgit add .git commit -m "..."言った

# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    public/index.html
#
no changes added to commit (use "git add" and/or "git commit -a")

それから、私はイライラし、試しgit add .git statusみて、変更が単に追加されていないことを確認しました。 git add public/index.html私にも何もしgit rm public/index.htmlませんでした git stashそれから私は問題をグーグルで検索し、誰かが試してgit stash apply更新することを提案したStackOverflowの投稿を思いついた。私はそれをしました、そして物事はまだうまくいきませんでした。

問題は何ですか?どうすれば修正できますか?

4

2 に答える 2

3

基本的に削除をコミットする必要があると思うので、git commit -a -m'[comment]'を実行すると、削除が受け入れられます

于 2012-08-01T00:31:33.027 に答える
0

git filter-branch に関しては、意図したとおりであれば、リポジトリ内のすべてのコミットからファイルが削除されます。変更を行う前に、変更をコミットまたはスタッシュしてください。これから削除したい場合は、seansmashの答えがおそらく必要なものです。

于 2012-08-01T00:37:37.780 に答える