J'ai une application sur Heroku qui exécute un ancien code. J'ai fait un petit changement et engagé le changement. J'ai ensuite couru
git Push heroku master
Ça va dire
Fetching repository, done.
Everything up-to-date
Mais si je regarde l'application, c'est tout l'ancien code. J'ai restauré le site vers une autre version de Heroku il y a environ 15 jours, mais j'ai mis à jour les mises à jour depuis et le logiciel a fonctionné.
Pourquoi heroku ne récupère-t-il pas les fichiers les plus récents de mon dépôt github? Y at-il un moyen de simplement réinitialiser l'application et pousser à nouveau les fichiers de github? J'ai des données de production dans la base de données, je ne veux donc PAS y toucher.
Merci d'avance!!
Veuillez confirmer que votre branche actuelle est la principale.
git branch
Si le pointeur ne pointe pas vers le maître, vérifiez dans la branche principale.
git checkout master
Commettez vos modifications et essayez de pousser à heroku
git commit -am "xxxyyzzz"
git Push heroku master
Lorsque vous exécutez git Push heroku master
, git suppose que vous poussez depuis le maître. Par conséquent, si vous apportez des modifications dans une autre branche, vous essayez de pousser votre branche principale sans modifications.
Vous avez deux options
1.Fusionner vos modifications avec le maître et les pousser.
Commettez vos modifications dans votre branche actuelle, puis fusionnez-les avec le maître
git commit -a - m "your messages"
git checkout master
git merge your_feature_branch
git Push heroku master
2.Poussez vos modifications depuis votre branche actuelle
git Push heroku your_feature_branch:master
Je suis prêt à parier que vous avez oublié d'exécuter git add .
suivi de git commit -m 'xyz'
?
J'avais un problème similaire et mes modifications n'étaient en aucun cas visibles sur heroku. Pour me reconfirmer, j'ai même pris un clone de heroku et il était évidemment à jour.
Je ne pouvais résoudre mon problème qu'en suivant cette approche:
Étape 1: Créez une nouvelle branche à partir de master
git checkout -b new_branch
Étape 2: Ajoutez simplement un commentaire dans n'importe quel fichier pour créer un nouveau commit, puis:
git add .
git commit -m "Just a test commit to Push new branch to heroku"
Étape 3: Poussez la nouvelle branche vers heroku.
git Push heroku new_branch:master
heroku restart
Vous pouvez maintenant voir vos modifications avec succès sur heroku.
Même s'il s'agit d'un problème ancien, je souhaitais mettre à jour ce qui fonctionnait pour moi (un débutant) si quelqu'un d'autre rencontrait ceci:
Après avoir suivi les instructions ici (de Hudson), ce qui a finalement fonctionné pour moi, c’est de faire un "tir git" après avoir vérifié la branche "master". Peut-être que "git Push heroku master" ne fait sortir que la branche locale du maître?
Bien entendu, cela suppose que toutes les modifications requises ont été correctement fusionnées dans votre maître. Je n'avais pas tiré de master sur mon local depuis la mise en place du projet car toutes les fusions (du développement au master) étaient gérées sur GitHub et je travaillais sur de nouvelles branches qui ont ensuite été fusionnées avec le développement.
Donc, pour reformuler les étapes ci-dessus à partir de Hudson:
git checkout master
git pull
(ici, j'ai mis à jour README pour qu'il soit modifié, comme "Heroku deploy [date, heure]"
git add .
git commit -am "xxxyyzzz"
git Push heroku master
heroku run rake db:migrate
heroku restart
Bonne chance!
Essayer:
heroku status
Cela a renvoyé ce qui suit, ce qui a confirmé que le problème venait de l'API heroku (et non de mon application!):
"L'API connaît des retards. Cela peut entraîner des retards lors de l'ajout de nouveaux domaines, de nouvelles versions et autres actions similaires. Actuellement, les ingénieurs étudient le problème."
Lorsque cela se produit, j'applique le hachage de validation précédent comme:
git Push some-heroku-app-name ee3bca189acec89f5e9b098692ab6cee386a8f25:master --force
Puis je re-pousse le maître comme ceci:
git Push some-heroku-app-name master:master
Mon nom d’exécutable a changé mais j’ai oublié de le changer dans mon Procfile . Ainsi, alors que tous les fichiers se mettaient à jour correctement dans heroku, le même ancien exécutable était en cours d'exécution. J'ai utilisé heroku local
À partir de la ligne de commande pour aider à dépister ce problème.
Si vous utilisez Java, n'oubliez pas de reconstruire le projet avant de pousser.
En cas de Gradle:
gradlew clean install
Même problème, j'ai ajouté une télécommande à mon référentiel local avec la commande heroku git: remote, puis je l'ai poussée.
heroku git:remote -a your-heroku-app
git Push heroku master
avait le même problème, ce qui a fonctionné pour moi était: faire un commit avec un message aléatoire, puis Push
git commit -m"random message"
git Push heroku master
Je sais, je sais, idiot, mais c'est ce qui m'est arrivé, alors je laisse un avertissement aux autres: assurez-vous que l'application que vous souhaitez appliquer est la même que celle pour laquelle vous vérifiez les modifications.
Dans mon cas, je poussais à la staging, puis à l’exécution d’un shell en production, sans comprendre pourquoi les fichiers statiques n’avaient pas changé.
(Cela a commencé avec un problème réel dans lequel les fichiers statiques ne changeaient pas lorsque je mettais une nouvelle version à jour, mais c’était probablement un coup du hasard, et cela ne me faisait tourner en rond que pendant une heure, car j’avais testé la mauvaise application. )