Je travaille dans une équipe avec quelques développeurs utilisant git sur BitBucket. Nous travaillons tous sur une dev
branche, sans pousser master
jusqu'à une sortie.
Un des développeurs a commis un code incorrect qui a écrasé le mien par accident, et maintenant j'essaye de renvoyer le code correct au dépôt. Je lis cette erreur depuis quelques jours maintenant, je ne peux plus pousser vers le repo car j'obtiens l'erreur suivante:
! [rejected] master -> dev (fetch first)
error: failed to push some refs to 'https://[email protected]/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Je suis les instructions et pull
, mais je reçois ensuite un conflit de fusion. Après avoir entré un message pour le conflit de fusion, mon code local est maintenant le code incorrect que l'autre développeur a téléchargé par accident (comme prévu par le pull
). Je remplace donc le code incorrect par la sauvegarde que j'ai copiée avant de m'engager, et lorsque j'essaye de pousser à nouveau, j'obtiens la même erreur.
C'est vraiment frustrant, je veux vraiment aider mon équipe et contribuer, mais je ne peux pas à cause de cette erreur. Quelqu'un sait-il comment résoudre ce problème? J'apprécierais beaucoup toute aide.
Voici les commandes que j'exécute pour commettre, si cela aide quelqu'un:
git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git push remotename master:dev
J'aurais pensé que si j'avais gardé cet ordre, je ne recevrais pas de conflits de fusion. Je suppose que j'avais tort. Merci encore
Mise à jour: je dois ajouter que j'ai cherché pendant quelques heures sur Google et stackoverflow, et suivi différentes instructions, mais je ne peux toujours pas push
aller à la dev
branche.
git pull --rebase
.Utilisez cette commande dans le terminal
la source
Cela se produit lorsque nous essayons de pousser vers un référentiel distant mais que nous avons créé un nouveau fichier sur distant qui n'a pas encore été extrait, disons
Readme
. Dans ce cas, comme le dit l'erreurcar nous n'avons pas mis à jour la télécommande dans notre environnement local. Alors tirez d'abord de la télécommande
Il mettra à jour votre référentiel local et ajoutera un nouveau
Readme
fichier. Ensuite, transmettez les modifications mises à jour à la télécommandela source
git pull origin develop
dans ma branche de développement locale, mais maintenant, le fairegit pull
fonctionne bien pour moi, je ne sais pas pourquoi.git pull
suffitCela se produit généralement lorsque le dépôt contient des éléments qui ne sont pas là localement. Donc, pour pousser nos changements, dans ce cas, nous devons intégrer les changements à distance, puis pousser.
Alors créez une attraction à distance
Puis poussez les modifications sur cette télécommande
la source
Force à pousser
git push -f origin master
la source
Je l'ai réparé, je ne sais pas exactement ce que j'ai fait. J'ai simplement essayé de pousser et de tirer en utilisant:
git pull <remote> dev
au lieu degit pull <remote> master:dev
J'espère que cela aidera quelqu'un s'il a le même problème.
la source
Vous devez saisir:
Si vous utilisez un
git push origin master --force
, vous aurez un gros problème.la source
git fetch
et àgit merge
nouveau manuellement après avoir exécutégit pull
qui les contient ?Vous pouvez essayer ceci:
git pull origin master --rebase
la source
En fait, github est beaucoup plus simple que nous ne le pensons et cela se produit absolument chaque fois que nous essayons de pousser même après avoir explicitement inséré des fichiers dans notre référentiel git, donc, pour résoudre le problème, essayez simplement ...
: git pull
puis..
: git push
Remarque: si vous êtes accidentellement coincé dans l'éditeur vim après avoir extrait votre référentiel, ne vous inquiétez pas, fermez simplement l'éditeur vim et essayez de pousser :)
la source
J'ai fait les étapes ci-dessous. enfin ça marche bien.
Pas
1) git init
2) git status (pour vérifier l'état)
3) git add. (ajoutez tout le fichier de modification (.))
4) git commit -m
"<pass your comment>"
5) git remote ajouter l'origine
"<pass your project clone url>"
6) git pull --allow-unrelated-histories
"<pass your project clone url>"
master7) git push -u
"<pass your project clone url>"
masterla source
J'ai eu cette erreur et c'était parce qu'il y avait une mise à jour sur le serveur mais SourceTree n'affichait aucune mise à jour disponible (peut-être parce que j'étais hors ligne lors de sa dernière vérification). J'ai donc fait un rafraîchissement dans l'arborescence des sources et maintenant il montre 2 éléments à pousser au lieu de 1 élément.
Assurez-vous donc d'appuyer sur Actualiser ou Tirez si vous obtenez cette erreur, puis réessayez.
la source
Avertissement git push -f origin master
la source
L'erreur vient probablement de la structure différente du code que vous validez et de celui présent sur GitHub. Vous pouvez consulter: Comment gérer l' erreur " Refuser de fusionner des historiques non liés ":
la source
La meilleure option pour moi et cela fonctionne et simple
git pull --rebase
puis
git push
bonne chance
la source
Voici comment j'ai résolu ce problème:
git pull origin master
git push origin master
Cela se produit généralement lorsque votre branche distante n'est pas mise à jour. Et après cela, si vous obtenez une erreur comme "Veuillez entrer un message de validation" Reportez-vous à ceci (Pour moi, la réponse de xiaohu Wang a fonctionné :))
la source
J'ai d'abord eu un projet SSDT VS. Je voulais pousser le projet tel que je l'avais sur Github. Je voulais que ce push soit la version initiale de mon dépôt commençant la branche principale. La suggestion de Donal de git push -f origin master était le moyen le plus simple (que j'ai vu) d'accomplir cela. Comme je n'avais pas à me soucier de réécrire quoi que ce soit, cela semblait logique.
la source
J'ai eu le même problème. Il est arrivé que j'ai créé le fichier .Readme sur le référentiel sans le tirer au préalable.
Vous voudrez peut-être supprimer le fichier .Readme ou le tirer avant de pousser.
la source
vous pouvez utiliser
cela vous aidera au cas où vous auriez des modifications non encore enregistrées sur votre dépôt local. surtout
README.md
la source