web-dev-qa-db-ja.com

Herokuアプリをリセットしてすべてを再コミットする方法は?

Herokuでもテストしているアプリケーションを構築しています。今日何らかの問題に遭遇し、ローカルgitリポジトリで1つのコミットをロールバックしなければなりませんでしたが、Herokuは「すべてが最新」であるという変更を認識しません。

だから、実行中

git Push heroku master

herokuが応答します

Everything up-to-date

それは真実ではありません。

更新:試したこと

git Push -f heroku master
git Push --force heroku master
git Push heroku +master
git Push --force heroku +master

ソースコードにいくつかの変更を加えた後、

git add.
git commit -a -m "Message" #(Then this commit shows in my git Explorer)
git Push heroku master #Everything up-to-date
50
bruno077

奇妙に聞こえます。別のブランチをプッシュしてみてください。

git branch production
git checkout production
#do some code changes
git commit -am "some desperate code changes to try fix heroku"
git Push heroku production:master

新しい実稼働ブランチの作成は、テストしてほしいものです。また、展開に使用できる運用ブランチがあると便利です。

それが機能しない場合、問題はさらに深くなり、herokuの支援が必要だと思います。

編集:herokuリリースアドオンも追加します。ロールバックはheroku rollbackと同じくらい簡単です

50
oma

これはすべての状況で機能するわけではありませんが、Herokuにプッシュされた後にローカルブランチをリベースする場合のように、ローカルリポジトリがHerokuリポジトリから分岐してgitが2つを調整する方法を理解できない場合次のように、refの前にプラス記号+を付けることにより、プッシュを強制できます。

git Push heroku +master

あなたの場合はうまくいかないかもしれませんが、試してみる価値はあります。

44
Rob Davis

これは私のために働いた( https://coderwall.com/p/okrlzg から):

  1. 実行heroku plugins:install https://github.com/lstoll/heroku-repo.git
  2. heroku repo:reset -a APPNAME

そこから、gitリポジトリは「リセット」されました。次に、実行します:

  1. git Push heroku master -a APPNAME

gitリポジトリをシードし、アプリを再デプロイします。

19
Jeremy Thomas

以前に存在していたリモートで実行したコミットを1つロールバックするとします。私はあなたが作るべきだと思う:

git merge heroku/master

ただ先に進みたいなら

または:

git Push --force heroku master

その変化をプッシュしたい場合

8
txomon

私はかつて同様の問題を抱えていましたが、コード内の1文字を変更し、git add/commit/Pushを再度実行することで解決しました。あなたはすでにそれを試したことがあると思います。

アプリを壊さないで、CSSファイルなどにコメントを追加して、それがうまくいくかどうかを確認してください

幸運を

4
stephenmurdoch

私は同じ問題を抱えていて、それを解決しました

Git Push Origin HEAD:master

あなたのために

Git Push Heroku HEAD:master

3
Dahuchao

しばらくして、このようなrakeタスクを使用するようになりました deploy.rake

特に移行を実装する必要がある場合に、展開を標準化および高速化します

puts `git Push -f [email protected]:#{APP}.git #{current_branch}`

ご覧のとおり、オプション-force(または-f)はHerokuのgitリポジトリとの競合を無視するためにプッシュに使用されます

しかし、私は初心者にはお勧めしません:)

0
Serge Seletskyy

私は同じ問題を抱えており、すべての提案を試みましたが、助けにはなりませんでした。 heroku run rake assets:precompileを実行したにもかかわらず、アセットをローカルでプリコンパイルしてプッシュする必要がありました。

rake assets:precompile
git add .
git commit -am "local assets precompile"
git Push heroku master