110 962
solution 1
Mais quand j'essaie de pousser pour maîtriser j'obtiens
fatal : Vous n'êtes pas actuellement sur une branche. Pour pousser l'historique menant à la branche actuelle (TETE détachée)
Ce qui est à prévoir
Travailler dans un état détaché estpasà prévoir, à moins que vous ne vouliez délibérément le faire, ce dont je doute que ce soit le cas pour vous. Au lieu de vérifier le commit #5, vous devriez soit avoir annulé lemaître
brancher à ce commit, ou faire ungit rebase
en mode interactif où vous pouvez ressasser les commits comme vous le souhaitez.
Ceci dit, si vous êtes certain que la version demaître
dans l'état détaché est ce que vousvraimentvoulez garder, alors vous pouvez contourner lepas d'avance rapide
erreur, en poussant de force la branche vers la télécommande :
git push origin HEAD:master --force
Cependant, si vous forcez le push, vous courez le risque de causer des problèmes à tous les autres utilisateurs qui ont extrait cette branche. Une solution moins risquée serait de créer une branche temporaire à partir du HEAD détaché, puis de fusionner cette branche dansmaître
:
git branch temp-branchgit checkout mastergit merge temp-branchgit push origin master
solution 2
avez-vous assuré que vous avez vraiment dans une branche? utiliserbranche git
et vérifiez si vous êtes dans une succursale. sinon, justegit checkout branche-nom-que-vous-voulez
et puisgit pousser
c'est bien!
solution 3
git pousser
vous permettra uniquement d'avancer rapidement la télécommande. Cela signifie que le commit que vous essayez de pousser doit être un descendant de la branche distante. Puisque vous avez modifié les commits précédents après 5, vous n'avez pas de descendant mais plutôt un cousin. Tu peux donnergit push --force
si vous souhaitez écraser la branche, mais si d'autres personnes ont apporté leurs propres modifications au-dessus du maître actuel, elles ne pourront plus extraire la branche. De plus, si quelqu'un d'autre pousse à maîtriser avant vous, ses modifications seront perdues. Généralement, vous ne voulez pas forcer le push si vous n'êtes pas le seul à utiliser une branche.
solution 4
Si vous poussez vers un nouveau référentiel, vous pouvez utiliser
git push origin HEAD:refs/heads/main --force
principal
voici une nouvelle branche qui sera créée au cas où votre référentiel cible serait vide.
solution 5
Vous pouvez créer une nouvelle branche et vous pouvez fusionner ces changements dans la branche précédente
git checkout -b newBranch git checkout previousBranchgit merge newBranchgit push origin previousBranchgit branch -d previousBranch
Voir plus de solutions
Partager:
110 962
Vidéos similaires sur Youtube
02 : 33
COMMENT RÉPARER : erreur : impossible de pousser certaines références vers | Créer un référentiel GitHub distant en 2 minutes
Brandon Colchin
123271
01 : 25
la branche maître actuelle n'a pas de || en amont git || Résolu à 100 %
Talent numérique
185
03 : 59
Erreur Git | Erreur GitHub : échec du transfert de certaines références vers '[URL REPO]'
Le codeur solo
84
02 : 56
Le maître de branche actuel n'a pas de branche en amont dans git
Sagar S
30
09 : 58
38. Que signifie git push -u ? Définir en amont pour la branche locale à l'aide de l'option -u dans la commande push - GIT
Leela Développeur Web
5
02 : 25
Comment réparer les erreurs GitHub Push Rejected + Explication
LearnToCode - Darija marocaine
3
04 : 13
Correction rapide de l'erreur "fatale : la branche actuelle n'a pas de branche en amont" de Git
Cameron McKenzie
2
02 : 12
Empêcher git push directement vers la branche master par n'importe quel contributeur
Poursuite
1
commentaires
-
Tom Hammond presque 2 ans
Le maître est-il au niveau du commit #10. Cependant, j'ai fini par réaliser que j'avais cassé quelque chose en cours de route qui n'avait pas été détecté par les tests.
J'ai fini par aller au commit #5, puis j'ai lentement refait le développement de chaque commit et l'ai ajusté continuellement pour m'assurer qu'il ne cause pas à nouveau le bogue. Maintenant, je suis essentiellement de retour au commit #10, mais avec un certain nombre de modifications qui empêchent le bogue de se produire.
Je veux maintenant créer le commit #11 en utilisant mes modifications. Mais quand j'essaie de pousser pour maîtriser j'obtiens
fatal : vous n'êtes pas actuellement sur une branche. Pour pousser l'historique menant à l'état actuel (tête détachée) maintenant, utilisez git push master HEAD :
Ce qui est à prévoir. Mais comment puis-je réellement faire en sorte que cela soit transmis à ma succursale distante ?
J'ai essayé
git push origin HEAD:maître
mais ensuite obtenu ceci:! [rejected] HEAD -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/tomhammond/sample.git'hint: Les mises à jour ont été rejetées car une pointe de branche poussée est derrière sa indice distant : contrepartie. Consultez cette branche et intégrez la modification distante : (par exemple, 'git pull ...') avant de pousser à nouveau.
Quand je fais un
statut git
Je voisTÊTE détachée du 4a74ac3
-
scrrower presque 8 ans
Vous êtes-vous assuré que votre historique de commit jusqu'au #10 est ce qu'il était à l'origine, et que seul votre commit #11 contient les modifications ? Une erreur comme celle-ci est normalement donnée lorsque votre branche et la branche d'origine ont un historique de validation différent (comme ce qui se passe lorsque vous refaites le développement de chacun des commits)
-
Tom Hammond presque 8 ans
Je suis sûr qu'ils ne le font pas. Je pense que j'ai bêtement commencé à faire le développement après avoir vérifié #5
-
scrrower presque 8 ans
C'est bien, ce que vous pouvez faire, c'est
git reset [commit10Hash]
pour annuler la mise en scène de vos modifications, puisgit cachette
pour les garder un peu,git reset --hard origin/nameofremotebranch
pour le remettre à l'origine,git cachette pop
pour réappliquer les modifications souhaitées, puisgit add .
etgit commit -m "Vos nouvelles modifications au-dessus de l'origine"
. Vous devriez alors pouvoirgit push nom d'origine de la branche distante
sans conflit
-
-
Tom Hammond presque 8 ans
Excellente information - je suis en fait le seul à travailler dessus en ce moment, donc je pense que cela devrait fonctionner
-
scrrower presque 8 ans
Forcer la poussée vers une branche principale ne peut certainement jamais être une bonne idée
-
Tim Biegeisen presque 8 ans
@scrowler J'ai ajouté un flux de travail qu'il peut utiliser pour éviter la poussée forcée.
-
Gwyneth Llewelyn plus de 3 ans
Bien qu'il s'agisse d'une réponse très simple, c'est généralement ce qui résout la plupart des problèmes menant à la question du PO. Dans mon cas, j'étais revenu à un commit antérieur, j'avais corrigé quelques problèmes et fait quelques poussées - mais j'avais oublié que le HEAD était toujours détaché ! Votre solution a tout réglé pour moi. Merci 🙏
-
Giorgi Tsiklauri plus de 3 ans
@RobbieAverill pourquoi?
-
scrrower plus de 3 ans
@GiorgiTsiklauri pour de nombreuses raisons, dont l'une est que si vous travaillez en équipe avec un flux de travail en ramification, vous désynchroniserez tout le monde
-
oulukbek sur 1 an
tu m'as sauvé la vie frère. merci
Récent
Pourquoi le fichier PNG avec Drop Shadow dans Flutter Web App est-il granuleux ?
Comment dépanner les plantages détectés par Google Play Store pour l'application Flutter
Le sélecteur Cupertino DateTime interfère avec le comportement de défilement
Pourquoi awk -F fonctionne-t-il pour la plupart des lettres, mais pas pour la lettre "t" ?
Flutter change la couleur de mise au point et la couleur de l'icône mais ne fonctionne pas
Comment imprimer et se connecter à l'imprimante à l'aide de Flutter Desktop via USB ?
Des problèmes critiques ont été signalés avec les versions suivantes du SDK : com.google.android.gms:play-services-safetynet:17.0.0
Flutter Dart - obtenir le nom du pays localisé à partir du code du pays
navigatorState est null lors de l'utilisation de pushNamed Navigation onGenerateRoutes de GetMaterialPage
Gestionnaire de Sdk Android introuvable - Erreur Flutter Doctor
Flutter Laravel Push Notification sans utiliser de tiers comme (firebase, onesignal..etc)
Comment changer la couleur de ElevatedButton lors de la saisie de texte dans TextField