[RUBY] [Rejeté] Un mémorandum car une erreur s'est produite lors du déploiement dans Heroku

Aperçu

Cela s'est produit lorsque j'ai essayé de déployer sur Heroku en tapant la commande git push heroku master.

Terminal


% git push heroku master
To https://git.heroku.com/~~.git
 ![rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://git.heroku.com/~~.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Les points sont «rejetés», «non accélérés», «indice».

Conclusion

En conclusion, c'est une erreur qui s'est produite car il n'y avait aucune différence (état) entre Heroku et le commit local. Il semble que Heroku était plus engagé.

Solution

L'une des solutions suivantes a été envisagée! En termes simples, git pull heroku master correspond à l'état de Heroku localement, et git pull origin master reflète localement l'état distant pour faire correspondre l'état distant à l'état local. pense.

Le but est de maintenir à jour les états distant, local et Heroku (post-déploiement).

Cette fois, je l'ai résolu avec git pull heroku master!

% git pull origin master
% git pull heroku master

hypothèse

Tout d'abord, quel genre de situation est cette erreur? «Rejeté» signifie que le déploiement est rejeté. Ils émettent poliment un «indice», il semble donc que vous pouvez le résoudre si vous comprenez chacun d'eux. En outre, il s'agit d'une déclaration d'erreur selon laquelle «non-avance rapide» ne peut pas être poussé car il a déjà été poussé. En gros, je déployais depuis la branche master, donc j'ai fait git commit --allow-empty -m "empty commit" puis git push heroku master``` C'était. Vous avez peut-être créé une nouvelle branche de travail dans cet état en effectuant Annuler ou Rétablir après avoir effectué une validation vide. ..

De plus, je pense qu'il est efficace de regarder la déclaration d'erreur en regardant le journal Heroku.

Terminal


% heroku logs --tail --app Nom de l'application

Si vous faites attention à la première phrase de l'indice

hint


Updates were rejected because the tip of your current branch is behind

Traduit littéralement *** La mise à jour a été rejetée car la pointe de la branche actuelle est en retard. *** est ce que cela signifie. Cela signifie-t-il qu'il y a une lacune ou une différence dans l'engagement? ..

J'ai eu une erreur avec git push heroku master, alors j'ai pensé aux deux choses suivantes.

  1. Il y a une différence entre distant et local.
  2. Il y a une différence locale avec Heroku. Vérification

  1. Il y a une différence entre distant et local.

Terminal


% git pull origin master
warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:

  git config pull.rebase false  # merge (the default strategy)
  git config pull.rebase true   # rebase
  git config pull.ff only       # fast-forward only

You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.

From https://github.com/~~
 * branch            master     -> FETCH_HEAD
Already up to date.

«Déjà à jour!» Est déjà à jour. (Ou peut-être était-il à jour) Après cela, j'ai essayé git push heroku master, mais la même erreur s'est produite sans changement particulier, donc ensuite.

  1. Il y a une différence locale avec Heroku.
% git pull heroku master
warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:

  git config pull.rebase false  # merge (the default strategy)
  git config pull.rebase true   # rebase
  git config pull.ff only       # fast-forward only

You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.

From https://git.heroku.com/~~
 * branch            master     -> FETCH_HEAD
Already up to date!
Merge made by the 'recursive' strategy.

Les points que je pense sont les points sont décrits ci-dessous.

Already up to date!
Merge made by the 'recursive' strategy.

Il semble qu'il a fusionné automatiquement, alors j'ai vérifié GitHub Desktop! Il semble que les engagements passés aient été fusionnés et que les différences aient disparu.

Après confirmation, le déploiement s'est terminé avec git push heroku master.

Sommaire

--Maintenez à jour l'état du référentiel local et distant, puis déployez. ――Undo et Revert sont des fonctions utiles, mais vous devez penser à ce qui se passe lorsque vous les utilisez. ――S'il y a un indice dans la déclaration d'erreur, il sera résolu rapidement si vous le lisez et l'application peut être efficace même si l'erreur suivante se produit.

J'ai fait référence à l'article suivant! Merci beaucoup! !!

http://shoprev.hatenablog.com/entry/2014/07/31/200540 https://qiita.com/taka_no_okapi/items/0444afde4817920d0671 https://qiita.com/nasutaro211/items/c590994a5d5091206c08

Recommended Posts

[Rejeté] Un mémorandum car une erreur s'est produite lors du déploiement dans Heroku
[Opération non autorisée] Un mémorandum car une erreur s'est produite lors de la création d'une instance EC2.
Résolution d'erreur sur Heroku
Une note de service lors de l'exécution d'Apache Maven sur un proxy interne
[Mémorandum] Qu'est-ce qu'une erreur?
[Rejeté] Un mémorandum car une erreur s'est produite lors du déploiement dans Heroku
Un exemple d'erreur FactoryBot [KeyError: Factory not registered: "user"]
[Opération non autorisée] Un mémorandum car une erreur s'est produite lors de la création d'une instance EC2.
Lors de l'introduction de JOOQ dans Spring Boot, une histoire qui a été traitée parce qu'une erreur s'est produite autour de Liquidbase
Déployez le fichier de guerre sur Heroku
Erreur de base de données concernant le déploiement à l'aide d'Heroku
Lors de l'introduction de JOOQ dans Spring Boot, une histoire qui a été traitée parce qu'une erreur s'est produite autour de Liquidbase