Je reçois ce message en poussant vers le référentiel github. Pouvez-vous me dire la procédure étape par étape pour y remédier? J'ai poussé une seule fois et ça a réussi. Mais, lorsque j'ai mis à jour un projet et essayé de pousser mon deuxième commit, il affiche "maître rejeté non-avance rapide" et ne me permet pas de pousser. Veuillez expliquer la procédure.
88
Réponses:
J'ai eu ce même problème et j'ai pu le résoudre. afk5min avait raison, le problème est que la branche dont vous avez extrait le code a depuis changé sur le référentiel distant. Selon les pratiques git standard ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes ), vous devez (maintenant) fusionner ces modifications au référentiel distant dans vos modifications locales avant de peut s'engager. Cela a du sens, cela vous oblige à prendre les modifications des autres et à les fusionner dans votre code, garantissant que votre code continue de fonctionner avec les autres modifications en place.
Quoi qu'il en soit, sur les marches.
Configurez le 'fetch' pour récupérer la branche que vous avez initialement extraite.
Récupérez la branche distante.
Fusionnez cette branche distante avec votre branche locale.
Validez le changement (de fusion) dans votre dépôt local.
Transférez la modification vers le référentiel distant.
En détail...
Dans eclipse, ouvrez la vue 'Git Repositories'.
Assurez-vous de voir votre référentiel local et de pouvoir voir le référentiel distant comme un sous-dossier. Dans ma version, cela s'appelle Remotes, puis je peux voir le projet distant à l'intérieur.
Cherchez la flèche verte pointant vers la gauche, c'est la flèche «chercher». Cliquez avec le bouton droit de la souris et sélectionnez «Configurer Fetch».
Vous devriez voir l'URI, assurez-vous qu'il pointe vers le référentiel distant.
Regardez dans la section mappages de référence de la fenêtre contextuelle. Le mien était vide. Cela indiquera les références distantes que vous souhaitez récupérer. Cliquez sur «Ajouter».
Tapez le nom de la branche que vous devez récupérer dans le référentiel distant. Le mien était 'master' (btw, un menu déroulant ici serait génial !!, pour l'instant, vous devez le taper). Continuez dans la fenêtre contextuelle, puis cliquez sur «Terminer».
Cliquez sur "Enregistrer et récupérer". Cela récupérera cette référence distante.
Regardez dans le dossier «Branches» de votre référentiel local. Vous devriez maintenant voir cette branche distante dans le dossier distant. Encore une fois, je vois «maître».
Cliquez avec le bouton droit de la souris sur la branche locale dans le dossier «Local» de «Branches», qui est nommé «maître». Sélectionnez «Fusionner», puis sélectionnez la branche distante, qui est nommée «origine / maître».
Traitez à travers la fusion.
Validez toutes les modifications apportées à votre référentiel local.
Transférez vos modifications vers le référentiel distant.
Allez prendre une boisson savoureuse en vous félicitant. Prenez le reste de la journée.
la source
Merge
en master puis cliquez à nouveau avec le bouton droit sur le projetpush branch Master
travailléDans mon cas, j'ai choisi la
Force Update
case à cocher en poussant. Ça a marché comme sur des roulettes.la source
Entre-temps (pendant que vous mettiez à jour votre projet), d'autres commits ont été effectués dans la branche «master». Par conséquent, vous devez d'abord extraire ces modifications pour pouvoir appliquer vos modifications.
la source
Applicable pour Eclipse Luna + Eclipse Git 3.6.1
JE,
Et j'ai rencontré ce problème avec EGit et voici comment je l'ai résolu.
Oui, quelqu'un a validé les modifications avant de valider mes modifications. Les modifications sont donc rejetées. Après cette erreur, les modifications sont réellement validées dans le référentiel local. Je ne voulais pas juste
Pull
les changements parce que je voulais maintenirlinear history
comme indiqué dans - Dans quels cas `git pull` pourrait-il être nocif?Alors, j'ai exécuté les étapes suivantes
projet Git concerné
Fetch from Upstream
- il récupère les mises à jour à distance (références et objets) mais aucune mise à jour n'est effectuée localement. pour plus d'informations, reportez-vous à Quelle est la différence entre 'git pull' et 'git fetch'?Rebase...
- cela ouvre une fenêtre contextuelle, cliquez surPreserve merges during rebase
voir pourquoiQue fait exactement "rebase --preserve-merges" de git (et pourquoi?)
Rebase button
conflict(s)
, passez à l'étape 6 sinon à l'étape 11Rebase Result
popup apparaîtra, il suffit de cliquer surOK
file comparator
ouvrirait, vous devez modifierleft side file
.Git Staging
voirstage the changes
. c'est à direadd to index
Rebase
->Continue
. répétez 7 à 10 jusqu'à ce que tous les conflits soient résolus.History
vue, sélectionnez votre ligne de validation et sélectionnezPush Commit
Rebase Commits of local.......
case et cliquez sur suivant. référez-vous pourquoi - Git: rebase sur la branche de développement depuis l'amontFinish
Remarque: si vous avez plusieurs commits de référentiel local, vous devez les écraser en un seul commit pour éviter plusieurs fusions.
la source
Configurer Après avoir poussé le code lorsque vous recevez un message rejeté, cliquez sur configurer et cliquez sur Ajouter une spécification comme indiqué dans cette image
Descendez et cliquez sur le ref / heads / yourbranchname et cliquez à nouveau sur Add Spec
Assurez-vous de sélectionner la mise à jour forcée
Enfin, enregistrez et poussez le code vers le dépôt
la source
Ouvrez la vue git:
1- sélectionnez votre projet et choisissez fusionner 2- Sélectionnez le suivi à distance 3- cliquez sur ok
Git fusionnera la branche distante avec le référentiel local
4- puis poussez
la source
Cette erreur signifie que le référentiel distant a eu d'autres validations et a dépassé votre succursale locale.
J'essaye de faire un git pull suivi d'un git push. S'il n'y a pas de modifications conflictuelles, git pull obtient le dernier code dans ma branche locale tout en conservant mes modifications intactes.
Ensuite, un push git pousse mes modifications vers la branche master.
la source
J'ai trouvé que vous devez être sur le dernier commit du git. Voici donc les étapes à suivre: 1) assurez-vous que vous n'avez pas travaillé sur les mêmes fichiers, sinon vous rencontrerez une erreur DITY_WORK_TREE. 2) tirez les dernières modifications. 3) Validez vos mises à jour.
J'espère que cela t'aides.
la source
la source