git - community - visual studio code tfs




Erreur lors de la publication de la branche principale sur GitHub à partir de VS.NET (4)

J'utilise VS.NET 2013 avec les outils Git intégrés et j'essaie de publier ma branche principale dans un référentiel existant que j'ai configuré sur GitHub. J'utilise les outils VS.NET dans l'EDI exclusivement et je voudrais s'il vous plaît, des réponses à suivre en utilisant ces outils si possible, par opposition à une ligne de commande.

Toutes mes modifications ont été validées localement et je dois simplement publier la branche sur GitHub. Cependant, lorsque j'essaie de publier ma branche master locale, l'erreur suivante s'affiche:

Vous ne pouvez pas publier le maître de succursale local sur l'origine du référentiel distant car une branche portant le même nom existe déjà. Vous voudrez peut-être renommer votre succursale locale et réessayer.

Je sais qu'il y a un long article à ce sujet here , mais j'essaye de remédier à cela depuis VS.NET ou directement en ligne sur GutHub si possible. Au mieux, je veux mieux comprendre le problème.

Je suis presque sûr que ce problème a été causé par la sélection de l'option Initialize this repository with a README sélection Initialize this repository with a README sur GitHub au lieu de créer un référentiel vide vers lequel mes modifications locales pourraient être transférées. Je pense que GutHub a déjà utilisé le même nom de branche et que cela crée un conflit.

Je suppose que je pourrais supprimer le dépôt sur GitHub et recommencer à zéro, mais j'espérais que ce soit à partir de VS.NET ou de GitHub. Est-ce que quelqu'un sait comment je peux le faire pour que ma branche principale puisse être publiée avec succès?


Comme je venais de créer le référentiel et qu'il n'y avait pas d'utilisateurs, la solution consistait à supprimer le référentiel de Github (sous le menu «Paramètres») et à le créer à nouveau (une fois supprimé, je pourrais utiliser le même nom). L'astuce consiste à ne pas initialiser le dépôt à partir de GitHub - autorisez VS.NET à le faire lors de la 1ère synchronisation. Maintenant, cela fonctionne à merveille de VS.NET.

Si je n'avais pas supprimé le référentiel, j'aurais dû utiliser des outils externes pour renommer le référentiel local ou utiliser la synchronisation depuis un autre outil (comme TortoiseGit) qui permet de forcer le remplacement de la branche à la synchronisation. Il ne semblait pas qu'il y ait quelque chose de natif à VS.NET qui permettrait cela.


Il y a un correctif pour ceci:

Accédez à votre invite de commande et accédez au répertoire de votre solution. De là, vous devriez être capable de lancer des commandes git. Vous devrez peut-être installer git si vous n'avez pas déjà exécuté "git pull origin master". Cela devrait fusionner votre repo GitHub avec votre repo local. C'est tout ce que nous devons faire depuis l'invite de commande. Revenons maintenant à Visual Studio

Vous pouvez avoir des conflits si vous le faites, vous devrez les résoudre et vous reconnecter localement. Visual Studio vous indiquera s'il y a des conflits. Une fois les conflits résolus, cliquez sur le lien "master" 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 «master» sous le titre «Branches non publiées». Cliquez avec le bouton droit sur master et cliquez sur «Publish Branch». Vous pouvez maintenant cliquer sur le lien «changements non synchronisés» et vous verrez que le bouton «Sync» 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


Je sais que c'est un vieux thread, mais les suivants ont fonctionné pour moi: Fusionner la branche de suivi à distance 'refs / remotes / origin / master'

Dans VS, allez à Team Explorer> Branches; Dites ensuite à VS de fusionner votre branche distante sur master.

Cela semble avoir fonctionné pour moi. Pas besoin de supprimer quoi que ce soit, pas besoin d'utiliser une console ... nous sommes VS Devs, nous n'aimons pas les consoles ... et pas besoin de téléchargements tiers (même si certains sont agréables à avoir et faciles à télécharger) 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 create repository. Je dois donc créer le référentiel manuellement.

Ce problème temporairement ennuyeux 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 y a un problème avec VS2013 et c'est la solution de contournement pour moi.





visual-studio-2013