J'utilise Git pour gérer mes deux ordinateurs et mon développement. J'essaie de valider les modifications sur GitHub et j'obtiens l'erreur.
Impossible de pousser certains ref à
<repo>
. Pour vous empêcher de perdre l'historique, les mises à jour non rapides ont été rejetées. Fusionner les modifications à distance avant de pousser à nouveau.
Quelle pourrait en être la cause et comment puis-je résoudre ce problème?
ÉDITER:
Le retrait du repo renvoie les éléments suivants:
* branch master-> master (pas d'avance rapide) Déjà à jour
Pousser me donne toujours l'erreur susmentionnée.
git
version-control
Moshe
la source
la source
Réponses:
GitHub a une belle section intitulée " Gérer les erreurs " sans avance rapide " "
Git ne peut pas apporter de modifications sur la télécommande comme une fusion à avance rapide, ce qu'une référence Visual Git illustre comme:
Ce n'est pas exactement votre cas, mais cela aide à voir ce qu'est une "avance rapide" (où le
HEAD
d'une branche est simplement déplacé vers un nouveau commit plus récent).Le "
branch master->master (non-fast-forward) Already-up-to-date
" est généralement destiné aux succursales locales qui ne suivent pas leur homologue distant.Voir par exemple cette question SO " git pull dit à jour mais git push rejette l'avance non rapide ".
Ou les deux branches sont connectées, mais en désaccord avec leur histoire respective:
voir " Histoire GIT sans fin - qu'est-ce que je fais de mal ici? "
la source
Cela signifie qu'il y a eu d'autres commits poussés vers le référentiel distant qui diffèrent de vos commits. Vous pouvez généralement résoudre ce problème avec un
avant de pousser
En fin de compte, "avance rapide" signifie que les validations peuvent être appliquées directement au sommet de l'arborescence de travail sans nécessiter de fusion.
la source
Une mise à jour à avance rapide est l'endroit où les seuls changements d'un côté sont après le commit le plus récent de l'autre côté, il n'est donc pas nécessaire de fusionner. Cela signifie que vous devez fusionner vos modifications avant de pouvoir pousser.
la source
vous voudrez peut-être utiliser la force avec l'opération push dans ce cas
git push origin master --force
la source
Ne faites jamais de choses
git -f
à fairepush
car cela peut entraîner des conséquences désastreuses par la suite.Il vous suffit de faire une
git pull
de votre succursale locale.Ex:
puis faites un
git push
la source
Vous devez fusionner et résoudre le
conflicts locally
avant de pousser vos modifications vers le repo / fork distant.1) tirer (récupérer et fusionner)
2) Poussez les changements
Néanmoins, vous avez le choix rapide de
push
forcer en utilisant l'--force
option, mais cela doit être évité car cela peut entraîner une perte de modifications ou affecter gravement les autres contributeurs.la source