2011-06-14 72 views
17

我經歷了安裝git和heroku寶石的步驟,併成功地將我的應用推送到heroku。 問題是,它顯示了一個標準的「你正在使用Ruby on Rails」頁面,儘管我擁有的本地應用程序已將路由設置爲根目錄到某個控制器/頁面。我也從/ public刪除了index.html頁面。應用推送到heroku仍然顯示標準索引頁面

任何想法爲什麼會發生這種情況?我懷疑我可能需要以某種方式從開發切換到部署,但仍然刪除了index.html,爲什麼它仍然顯示在heroku上?

編輯:去mysite.heroku /登錄和我創建的其他網頁工作正常,出於某種原因,所以沒有關於部署的事情。

+9

你刪除'公共/ index.html'從'混帳混帳rm',或者只是從您的工作目錄? 'git status'說什麼? – matt 2011-06-14 23:16:44

+0

你應該發佈這個答案,以便我可以給它應得的功勞:) 我沒有意識到你需要這樣做,我想git push heroku master將處理哪些文件已被刪除,哪些避難所沒有。 – 2011-06-14 23:51:19

回答

40

當您使用git並刪除文件時,該文件不會自動從git倉庫中刪除。所以,當你該文件仍然存在,並推到Heroku。

如果你可以告訴這是git status的情況下,它會顯示類似:

# 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 

爲了刪除文件,你需要使用git rm。在這種情況下,您需要執行如下操作:

git rm public/index.html 
git commit -m "Removed public/index.html" 

它將從當前分支中刪除文件。

現在,當你做

git push heroku 

該文件將不被包括在內,所以在routes.rb中規定,你會被髮送到控制器。

+4

你也可以做'git commit -am'消息「'並且負責刪除文件。 – David 2011-06-15 01:49:59

+0

爲什麼它值得我做一個git add。然後一個git添加-u但我猜用戶偏好 – Richlewis 2013-05-21 12:45:56

2

我總是使用git commit -am「message」。這阻止了上述問題(肯定會發生),我不知道有什麼理由不使用-am。

編輯:此外,請確保在添加新文件時使用git add .

所以,我的過程是:

git status (to see what has changed) 
git add . (if there are new files I want to add to repository) 
git commit -am "This is the comment" 
git push (to github) 
git push heroku (--app app-name if there is more than one app connected to this repository)