web-dev-qa-db-fra.com

le maître heroku de git Push dit "Tout est à jour", mais l'application n'est pas à jour

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!!

47
Darkmatter5

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
67
KannanHudson

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
44
levi

Je suis prêt à parier que vous avez oublié d'exécuter git add . suivi de git commit -m 'xyz'?

11
stephenmurdoch

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.

7
techdreams

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!

4
Milena

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."

3
user5783745

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
2
Vladimir Djuricic

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.

0
birken25

Si vous utilisez Java, n'oubliez pas de reconstruire le projet avant de pousser.

En cas de Gradle:

gradlew clean install
0
Ab_

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
0
Jordan Taylor

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
0
Gil Grencho

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. )

0
Aur Saraf