J'utilise VS.NET 2013 avec les outils Git intégrés et j'essaie de publier ma branche master
dans un référentiel existant que j'ai configuré sur GitHub. J'utilise exclusivement les outils VS.NET dans IDE et j'aimerais que toutes les réponses à suivre à l'aide de ces outils si possible soient comparées à une ligne de commande.
Toutes mes modifications ont été validées localement et il me suffit de publier la branche sur GitHub. Toutefois, lorsque j'essaie de publier ma branche master
locale, le message d'erreur suivant s'affiche:
Vous ne pouvez pas publier le maître de branche local dans le référentiel distant Origin car une branche avec le même nom existe déjà là-bas. Tu pourrais voulez renommer votre branche locale et réessayer.
Je sais qu'il existe un long article dans ce ici , mais j'essaie d'y remédier de VS.NET ou en ligne sur GutHub directement si possible. Au mieux, je veux mieux comprendre le problème.
Je suis presque certain que ce problème a été causé par le choix de l'option Initialize this repository with a README
sur GitHub au lieu de créer un référentiel vide dans lequel mes modifications locales pourraient être appliquées. Je pense que GutHub a déjà utilisé le même nom de branche et cela provoque un conflit.
Je suppose que je pourrais supprimer le référentiel sur GitHub et recommencer à zéro, mais espérais que cela serait réglé soit de VS.NET, soit de GitHub. Est-ce que quelqu'un sait comment faire pour que ma branche master
puisse être publiée avec succès?
Comme je venais de créer le référentiel et qu'il n'y avait aucun utilisateur, la solution consistait à supprimer le référentiel de Github (sous le menu 'Paramètres') et à le recréer (une fois supprimé, je pouvais utiliser le même nom). L'astuce consiste à non initialiser le référentiel à partir de GitHub - autoriser VS.NET à le faire lors de la 1ère synchronisation. Maintenant, cela fonctionne à merveille à partir de VS.NET.
Si j not n effaçais le référentiel, je devais utiliser des outils externes pour renommer le référentiel local ou utiliser la synchronisation depuis un autre outil (comme TortoiseGit) permettant de forcer le remplacement de la branche synchronisée. Il ne semblait pas que rien dans la version native de VS.NET permette que cela se produise.
Il y a un correctif pour ceci:
Accédez à l'invite de commande et accédez au répertoire de votre solution. À partir de là, vous devriez pouvoir exécuter les commandes git. Vous devrez peut-être installer git si vous n'avez pas encore Exécutez 'git pull Origin master'. Cela devrait fusionner votre dépôt GitHub avec votre dépôt local. C'est tout ce que nous devons faire à partir de l'invite de commande. Revenons maintenant à Visual Studio.
Vous pouvez avoir des conflits, sinon vous devrez les résoudre et vous engager à nouveau localement. Visual Studio vous dira s'il y a des conflits. Une fois les conflits résolus, cliquez sur le lien "maître" situé en haut du volet. Il devrait vous donner un menu déroulant avec un élément appelé «gérer les branches». Cliquez dessus. Vous devriez voir une branche appelée "maître" sous le titre "Branches non publiées" Cliquez avec le bouton droit de la souris sur maître et cliquez sur "Publier une branche" Vous pouvez maintenant cliquer à nouveau sur le lien "modifications non synchronisées". vous verrez que le bouton 'Sync' n'est plus grisé Cliquez sur Sync et vous avez terminé!
Source et crédit: http://zanemayo.com/using_git_and_github_with_visual_studio.html
J'ai rencontré ce problème dans Visual Studio 2015 et voici comment j'ai résolu le problème.
git pull Origin master
(Cette commande extraira les modifications de la branche principale distante d’origine et les fusionnera dans la branche extraite locale.)Je sais que ce fil est ancien, mais que ce qui suit a fonctionné pour moi: Fusionner la branche de suivi à distance 'refs/remotes/Origin/master'
Dans VS, accédez à Team Explorer> Branches; puis dites à VS de fusionner votre branche distante sur le maître.
Cela semble avoir fonctionné pour moi. Pas besoin de supprimer quoi que ce soit, pas besoin d'utiliser une console ... nous sommes des développeurs, nous n'aimons pas les consoles ... et pas besoin de téléchargements tiers (même si certains sont sympas, faciles à utiliser) utilisation.)
La solution pour moi était assez simple:
Ouvrez Git Bash dans le répertoire source.
exécuter:
git Push Origin -f
Cela a résolu le problème.
Pour une raison quelconque, mon VS2013 ne crée pas réellement de référentiel git lorsque vous cochez la case Créer un référentiel. Je dois donc créer le référentiel manuellement.
Ce problème temporairement ennuyant est résolu par
git init
git remote add Origin https://(bitbucket username)@bitbucket.org/(bitbucket project name)/(bitbucket repository name).git
git add .
git Push Origin -f
Je sais que cela est contraire à la méthodologie de base consistant à vouloir utiliser uniquement l'interface Visual Studio, mais il existe un problème avec VS2013 et cette solution de contournement est pour moi.