git d'erreur lorsque vous essayez de pousser à distance
J'ai cloné Un référentiel de la branche master de git et de créer mon propre branche appelée Li.
J'ai fait quelques modifications il y a un moment et a poussé le contenu de locaux Li de distance Li.
Maintenant, j'ai tiré quelques mises à jour de la télécommande maître de mon maître local de la branche et de la maîtrise locale de la branche locale de Li, et j'essaie de pousser les mises à jour locales Li de distance Li.
Cependant, lorsque j'essaie d'exécuter:
git checkout Li
git push origin Li
J'obtiens l'erreur suivante:
error: failed to push some refs to '[email protected]:anodejs/system.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Remarque que mon local de la branche master est mis à jour (j'ai invoqué git pull origin master) et fusionnées dans le local Li branche. Je n'ai, cependant, ajouter locales Li un nouveau fichier, afin locales Li n'est pas identique à maître local (mais cela ne compte pas, non?)
Grâce,
Li
- Avez-vous valider les modifications sur Li branche avant d'essayer de le pousser?
- Venu à cette question avec le même problème et les réponses ici n'a pas aidé. S'est avéré que mon problème était que je n'étais pas dans une branche - voir stackoverflow.com/a/18601467/5002633 pour savoir comment je diagnostiqués / il fixe.
Vous devez vous connecter pour publier un commentaire.
Trouver la diff avec
git fetch && git log Li..origin/Li
. Je suppose que vous avez relocalisée ou autrement découpeLi
depuis la dernière fois que vous avez poussé, mais la commande devrait vous dire exactement ce qui est dans la télécommande qui n'est pas dans le local. Vous pouvez trouver ce qui est dans les deux (mais pas les deux), avec la triple-syntaxe à point:git log Li...origin/Li
.Si la diff est prévu, puis il suffit de fusionner avec
git merge origin/Li
et puisgit push
. Si le changement est non désiré, remplacer la télécommande avecgit push -f origin Li
. Faire cela seulement si vous voulez abandonner la télécommande changements.git log Li..origin/Li
?Mises à jour ont été rejetés en raison d'une poussée de la branche conseil est derrière son à distance.
Essayez la commande ci-dessus pour régler le courant de la branche par défaut et
git push
, qui est souvent, mais pas toujours prévu. Les utilisateurs qui veulent savoir ce que sont ces comportements peuvent voir cette question ou cette question.exécuter les lignes suivantes:
Ils actualisent tous vos refs.
Puis regarder avec un peu de GUI git client (par exemple gitx sur mac) comment votre arborescence des sources ressemble. Il devrait aider à trouver le problème.
Assurez-vous également que votre pension n'est pas en lecture seule et vous avez la permission d'écrire.
Vous pouvez la force de pousser les changements d'adresse à distance, mais il peut produire de nouveaux branche distante
git branch --set-amont=origin/master
Si vous rencontrez le message d'erreur lorsque vous êtes sur la branche "maître", essayez la commande suivante:
git branch --set-amont=origin/master
Ou, un raccourci:
git push -u de l'origine de maître