Je suis assez nouveau pour l' git
utiliser actuellement pour gérer notre code dans un environnement d'équipe. J'ai eu des problèmes de rebasage et je les ai résolus en utilisant
git checkout --ours filename.txt
git add filename.txt
git rebase --continue
Maintenant, je souhaite pousser mes modifications, et donc exécuter la commande suivante
$ git push origin feature/my_feature_branch
me donne l'erreur suivante:
To ssh://[email protected]:7999/repo/myproject.git
! [rejected] feature/my_feature_branch -> feature/my_feature_branch (non-fast-forward)
error: failed to push some refs to 'ssh://[email protected]:7999/repo/myproject.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.
Que puis-je faire pour me débarrasser de l'erreur?
PS: J'évite --force
autant que possible d'utiliser l' option.
Réponses:
Il semble que quelqu'un a poussé de nouveaux commits entre votre dernier
git fetch
et votregit push
. Dans ce cas, vous devez répéter vos étapes et rebasermy_feature_branch
une fois de plus.Après le
git fetch
je recommande d'examiner la situation avecgitk --all
.la source
Vous n'avez probablement pas récupéré les modifications à distance avant le rebase ou quelqu'un a poussé de nouvelles modifications (pendant que vous rebasiez et essayiez de pousser). Essayez ces étapes:
la source
J'ai eu ce problème! J'ai essayé: git fetch + git merge, mais je n'ai pas résolu! J'ai essayé: git pull, et également pas résolu
Ensuite, j'ai essayé ceci et j'ai résolu mon problème (est similaire à la réponse de l'ingénieur):
la source
J'ai eu un problème similaire et je l'ai résolu avec:
git pull origin
la source
Je suis en retard à la fête mais j'ai trouvé des instructions utiles dans la page d'aide de github et je voulais les partager ici.
Parfois, Git ne peut pas apporter votre modification à un référentiel distant sans perdre les commits. Lorsque cela se produit, votre push est refusé.
Si une autre personne a poussé vers la même branche que vous, Git ne pourra pas appliquer vos modifications:
Vous pouvez résoudre ce problème en récupérant et en fusionnant les modifications apportées sur la branche distante avec les modifications que vous avez apportées localement:
Ou, vous pouvez simplement utiliser
git pull
pour exécuter les deux commandes à la fois:la source
essayez cette commande
$ git push -f -u origin <name of branch>
c'est à dire
$ git push -f -u origin master
la source
Verrou en écriture sur le référentiel local partagé
J'ai eu ce problème et aucun des conseils ci-dessus ne m'a aidé. J'ai pu tout récupérer correctement. Mais la poussée a toujours échoué. Il s'agissait d'un référentiel local situé sur le répertoire Windows avec plusieurs clients travaillant avec lui via le pilote de dossier partagé VMWare. Il est apparu que l'un des systèmes verrouillé le référentiel Git pour l'écriture. Après l'arrêt du système VMWare concerné, ce qui a provoqué le verrouillage, tout a été réparé immédiatement. Il était presque impossible de déterminer quel système causait l'erreur, j'ai donc dû les arrêter un par un jusqu'à ce que cela réussisse.
la source
Eh bien, j'ai utilisé les conseils ici et cela m'a foutu car il a fusionné mon code local directement au maître. .... alors prenez tout cela avec un grain de sel. Mon collègue a déclaré que ce qui suit avait aidé à résoudre le problème, nécessaire pour rejoindre ma succursale.
la source
Dans Eclipse, procédez comme suit:
Référentiels GIT> Télécommandes> Origine> Faites un clic droit et dites chercher
Référentiels GIT> Suivi à distance> Sélectionnez votre branche et dites fusionner
Allez au projet, faites un clic droit sur votre fichier et dites Extraire depuis l'amont.
la source
la source
Voici une autre solution pour résoudre ce problème
la source
la source