Github Windows 'Échec de la synchronisation de cette branche'

124

J'utilise Github Windows 1.0.38.1 et lorsque je clique sur le bouton 'Sync' après la validation, j'obtiens l'erreur

entrez la description de l'image ici

Comment déboguer ce problème? Si dans la coquille, que dois-je faire?

La synchronisation fonctionne bien si je fais un git pushou git pull, mais la prochaine fois que je veux synchroniser à l'aide de fenêtres Github, j'obtiens la même erreur.

Nyxynyx
la source
1
Pour moi, c'était parce que j'avais oublié de supprimer un très gros fichier du commit. Github a une taille de fichier maximale et j'étais dessus.
pmcilreavy
5
J'adore la façon dont il y a tant de réponses, dont chacune aurait pu être correcte dans ce cas, mais aucune d'entre elles ne l'est. C'est Git pour toi.
15ee8f99-57ff-4f92-890c-b56153
1
Cette erreur peut se produire car vous n'êtes pas connecté à Internet. Un peu évident mais ... hé.
levininja
1
Nous avions des problèmes Internet au bureau et cela s'est produit. Cependant, le shell git fonctionnait toujours.
Frank Cannon

Réponses:

113

Quand il dit cela, ouvrez simplement le shell et faites git status. Cela vous donnera une bonne idée de ce qui pourrait ne pas aller et de l'état de votre repo.

Je ne peux pas vous donner d'erreur spécifique pour cela, car cela se produit pour de nombreuses raisons dans Github pour Windows, comme par exemple un problème de mise à jour des sous-modules, etc.

manojlds
la source
3
Merci! En tant que débutant en ce qui concerne git et GitHub qui ont eu le même problème que le demandeur d'origine, cela a été très utile :) Excellente réponse!
Dyndrilliac
5
git stashaidé. J'espère que je continuerai avec GIT un jour.
ivkremer
J'ai redémarré mon GitHub et cela a résolu le problème! C'est arrivé après que j'ai eu quelques conflits à fusionner.
Rafael Fernandes le
1
J'ai le même problème, mais j'utilise un lecteur mappé. Avec cette réponse, je m'engage maintenant avec GitHub Desktop et git pushvia Git.
zanderwar
@manojlds et quand git status dit simplement que votre branche est à jour, rien à valider, le répertoire de travail est nettoyé?
levininja
16

Cette erreur est due à un conflit de fusion dans les fichiers. Je l'ai affronté après avoir mis à jour le pom.xml de mon projet Maven mais je ne l'ai pas validé. En utilisant

git status
error: Your local changes to the following files would be overwritten by merge:
<my project>/pom.xml
Please, commit your changes or stash them before you can merge.
Aborting

comme le message ci-dessus suggéré a aidé à trouver des modifications contradictoires et vous pouvez décider de les rejeter ou de les valider.

Navin Mishra
la source
J'ai redémarré mon GitHub et cela a résolu le problème! C'est arrivé après que j'ai eu quelques conflits à fusionner.
Rafael Fernandes le
11

J'ai eu le même problème. Cela m'est arrivé à cause de certains changements contradictoires. J'ai supprimé le référentiel local de mon projet de mon bureau, puis je l'ai cloné à nouveau à partir du site Web github (en utilisant l'option de clonage dans mon compte), l'erreur avait disparu.

rk2
la source
5

J'ai eu le même problème lorsque j'ai essayé de l'intérieur de Visual Studio et que "git status" dans le shell n'a montré aucun problème. Mais j'ai réussi à pousser les changements locaux avec "git push" via shell.

Rovsen
la source
Comme le dit rovsen pour ajouter de la couleur à ceux qui sont bloqués: Si GitHub pour Windows plante mais dans Git Shell, vous voyez tout en vert et ce git statusmessage "Votre branche est en avance sur 'origin / master' d'un commit. (Utilisez" git push "pour publiez vos commits locaux) ". Entrer a git pushcorrigé cela pour moi. J'ai redémarré GitHub pour Windows et la synchronisation a finalement fonctionné!
micstr
4

J'ai eu ce problème et j'ai trouvé qu'il était lié au proxy. J'ai résolu le problème en utilisant cette commande:

 git config --global http.proxy %HTTP_PROXY%
À M
la source
2

C'est probablement un cas extrême, mais chaque fois que j'ai cette erreur spécifique, c'est parce que j'ai récemment mappé un lecteur dans Windows et que je powershellne peux pas le trouver.

Un redémarrage de l'ordinateur (de toutes choses) corrige l'erreur pour moi, comme powershellpeut maintenant récupérer le lecteur nouvellement mappé. Assurez-vous simplement de vous connecter au lecteur mappé AVANT d'ouvrir le client github.

kwakwa
la source
Pareil ici. Redémarré et puis cela a fonctionné très bien hausse
Shieldgenerator7
OMG! Je viens de déménager dans un nouvel espace de bureau et mes lecteurs mappés ne fonctionnaient plus. Mais ils n'avaient rien à voir avec git ou mes dossiers de travail. J'ai simplement supprimé les mappages, puis GitHub Desktop a commencé à fonctionner. Cela doit être un bogue car il ne devrait même pas regarder ces lecteurs mappés?
DeborahK
2

J'ai eu le même problème. Dans mon cas, git n'a pas pu trouver la variable globale%HTTP_PROXY% , simplement parce que Windows ne la fournissait pas / ne l'utilisait pas.

Je l'ai résolu en excluant la variable du fichier de configuration git (situé dans %USERPROFILE%\.gitconfig):

[http]
#   proxy = %HTTP_PROXY%
Steven
la source
2

Avez-vous récemment changé votre mot de passe Windows, ou du moins celui que vous utilisez pour vous connecter à votre proxy?

C'était mon problème et git statusje ne pouvais pas m'aider. J'ai dû changer mes identifiants de connexion dans le fichier ".git / config" pour contourner cette erreur.

Ralph Lavelle
la source
J'ai eu l'erreur de cela. Sérieusement, ils devraient simplement rendre cette chose correctement consciente du proxy dans l'interface utilisateur et demander un nouveau nom d'utilisateur et un nouveau mot de passe. Ou même NTLM s'ils se sentent (légèrement) fantaisistes.
Rob Grant
1

Cette erreur se produit également si la branche que vous essayez de synchroniser a été supprimée.

git statusne vous le dira pas, mais vous obtiendrez un message "aucun ref n'a été récupéré" si vous essayez git pull.

Libby
la source
1

Une autre chose qui peut causer cela est lorsque vous mappez un lecteur réseau ou connectez un disque dur virtuel après que GitHub Desktop a déjà été démarré. La raison en est que GitHub Desktop utilise ssh-agent de l'installation portable GIT pour établir des connexions, et ne le ferme jamais ... même si vous désinstallez l'application. Le processus commence sans aucune connaissance du nouveau lecteur et ne s'actualise jamais, et lorsqu'il est utilisé pour exécuter les commandes GIT pour travailler sur votre dépôt, il échoue car il ne comprend pas les chemins.

La solution dans cette instance est de fermer GitHub Desktop et d'utiliser le Gestionnaire de tâches pour mettre fin à l'agent ssh en cours d'exécution avant de le redémarrer. Cela démarrera une nouvelle instance de ssh-agent si nécessaire, qui récupérera les nouveaux mappages de lecteur, etc.

Corey
la source
1

Assurez-vous que la branche vers laquelle vous essayez de pousser n'est pas protégée. J'essayais de pousser vers une branche protégée et j'ai échoué comme vous.

mikii123
la source
0

vérifiez " git status " et " git pull " dans le shell et découvrez ce qui ne va pas. et mon problème est le nœud http.proxy dans la configuration, par conséquent, Github Windows devrait être beaucoup plus intelligent, comme simplement pop le shell et donner plus de conseils après l'émission des erreurs.

Alex Kon
la source
0

Tout comme les réponses du proxy HTTP, cela peut également se produire en raison d'une connexion VPN. La déconnexion de ma connexion VPN a résolu le problème pour moi.

Byron Claiborne
la source
0

J'ai eu le même problème, et "git status" n'a montré aucun problème, puis j'ai juste redémarré le client saint GitHub pour Windows et cela a fonctionné comme du charme.

Qasim
la source
0

J'ai eu le même problème. J'ai supprimé le dépôt du client Windows GitHub (menu contextuel) et l'ai ré-ajouté. Lorsque j'ai ré-ajouté, j'ai remarqué que j'avais environ 300 modifications non validées et qu'il signalait une erreur de mémoire. J'ai annulé toutes les modifications, puis la synchronisation a recommencé à fonctionner correctement. (Utilisateur Rookie Git - Je suis sûr qu'il existe de meilleures façons de le faire sur la ligne de commande)

Stephen Kearns
la source
0

Le journal de débogage peut fournir des informations. J'utilise la v3.3.4.0, votre expérience peut différer mais devrait être similaire. Dans le menu des paramètres, choisissez «À propos de Github Desktop ...». Cliquez sur le lien pour afficher le journal de débogage. Dans mon cas, il y avait une erreur très claire:

*** erreur fatale - discordance de base cygheap détectée - 0x1157408 / 0x1167408. Ce problème est probablement dû à l'utilisation de versions incompatibles de la DLL cygwin.

Il a même fourni des conseils utiles pour résoudre le problème.

Je ne sais pas pourquoi ces informations ne sont pas exposées dans l'invite d'erreur, mais au moins elles étaient disponibles.

Opsimath
la source
0

J'ai essayé avec Android Studio de valider les modifications et de les pousser vers le maître, mais la fenêtre a montré une fenêtre contextuelle indiquant que je dois entrer les informations d'identification Github ( https://github.com ). J'ai fait une inscription avec mon compte Gmail.J'ai donc essayé de saisir mon identifiant Gmail avec son mot de passe, évidemment Git n'a pas mon mot de passe Gmail et ne peut pas le faire correspondre avec ce que je fournis, donc j'ai fini par annuler le push.
Lorsque j'ai essayé de synchroniser mes modifications via la fenêtre GUI de GitHub, je rencontre cette erreur. Sur la git statuscommande, Git Shell a suggéré de pousser les changements comme

Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

J'ai fait la même chose que Git Shell a suggéré ( git push) et tout va bien maintenant.

Remarque: pour quelqu'un qui est nouveau dans git, vous devez changer votre chemin vers le dossier où se trouve votre fichier .git, sinon chaque commande que vous entrez Git Shell affichera une erreur selon laquelle ce n'est pas un dépôt git.

fatal: Not a git repository (or any of the parent directories):

Par exemple, si votre projet est dans le Dlecteur dans un dossier, vous devez faire quelque chose comme ci-dessous comme vous le faites cmdpour changer de répertoire.

cd D:\someFolder     // if your project is not deep in `D`

Et si c'est dans un dossier imbriqué dans D

cd D:\somefolder\someNestedFolder\nestedInNested     // if your project is not deep in `D`

Si quelqu'un sait comment se connecter au popup Github à partir de Windows, comme je l'ai fait pour m'inscrire avec un compte Google et voici 2 champs uniquement Nom d'utilisateur Github, mot de passe Veuillez me le faire savoir. J'ai résolu le problème mais avec une perte de temps, je veux aussi en savoir plus sur la connexion.

Inzimam Tariq IT
la source