web-dev-qa-db-fra.com

Comment pousser les commissions non synchronisées vers GitHub?

Un outil de contrôle de code source GitHub a été ajouté à ma copie de Visual Studio 2013 et, lorsque je clique avec le bouton droit de la souris sur la solution, je crée un commit et dit que le commit a été créé localement. Lorsque j'essaie de synchroniser la validation avec le serveur, le bouton de synchronisation est grisé.

Ma question est la suivante: comment puis-je le configurer ou quelles mesures dois-je prendre pour que la validation soit transmise au serveur?

enter image description here

27
Brian J

Il semble que la branche/branche distante en amont ne soit pas configurée pour cette branche. Visual Studio fonctionne comme si la configuration "Push.default" était définie sur "en amont". 

Si vous allez à la page des branches, cette branche devrait être listée dans la section des branches "non publiées". À partir de cette page, vous pouvez choisir de "publier" cette branche en cliquant avec le bouton droit de la souris sur la branche non publiée et en sélectionnant publier dans le menu contextuel résultant. Cela va pousser la branche sur la télécommande d'origine (avec une branche du même nom que votre branche locale) et définir les informations de suivi en amont pour cette branche. À partir de ce moment, vous pouvez pousser et récupérer à partir de la page Commits non synchronisés.

Voici une capture d'écran de l'endroit où vous devez aller pour publier une branche non publiée:

Publish an unpublished branch

44
jamill

Vous devez ajouter le dépôt en ligne GitHub en tant que télécommande dans votre dépôt git local. 

Sur la ligne de commande, c'est git remote add Origin <urL>; Je ne sais pas si l'interface utilisateur VS git expose cela.

4
SLaks

Nous utilisons Atlassian Stash mais nous avons également trouvé l'interface utilisateur de Visual Studio un peu déroutante au début. La séquence qui fonctionne pour nous, en utilisant uniquement l'interface utilisateur , est la suivante:

  1. Vous devez d’abord ajouter votre "nom d’utilisateur" et votre adresse électronique dans les paramètres généraux de Git via Team Explorer> Accueil> Git> Paramètres de Git.
  2. Dans l'onglet "Explorateur de solutions", cliquez avec le bouton droit de la souris sur la solution, puis sur "Ajouter la solution au contrôle de source" et choisissez Git. 
  3. Sur l'onglet "Team Explorer", cliquez sur le dépôt que vous venez de créer et allez dans les branches
  4. Choisissez la branche principale, cliquez dessus avec le bouton droit de la souris et choisissez "Publier". L'URL distante vous sera demandée. Après l'avoir saisie, vous recevrez un message indiquant le nom d'utilisateur/mot de passe (pour le serveur distant, par exemple GitHub, Stash, etc.).
    • Tout ce que cela fait est git Push Origin master mais Microsoft a choisi de créer de la confusion en lui attribuant un autre nom.
  5. Attendez la fin de la publication (un statut de transfert de fichier sera affiché dans l'interface utilisateur)
  6. Une fois que c'est terminé, allez dans l'onglet commits et vous verrez que toutes les options pour Push/Pull/Fetch, etc. sont disponibles

Remarque: Si vous créez une autre branche localement, vous devez appuyer sur la touche «Publier» avant de la connaître.

Note finale: Visual Studio ne créera pas de projets et de repos pour vous sur la télécommande. Vous devez vous assurer que le référentiel est configuré sur la télécommande avant de pouvoir y insérer une branche.

Problème étrange: Nous avons constaté que si vous tentez d'envoyer à une branche mais échouez (en raison d'une URL incorrecte ou d'un problème d'autorisations), nous devions revenir à la commande Invite pour "réparer" la configuration distante du référentiel. /branche. Ceci utilise la commande standard git:

git remote add Origin https://[email protected]/scm/myproject/myrepo.git

2
Shane

Après avoir publié une branche comme dans la réponse de @ jamill, vous pouvez vous heurter à cela.

Dans Team Explorer, j'ai pu publier une branche, mais je ne pouvais plus rien faire. Tirer et pousser étaient grisés comme indiqué:

enter image description here

J'ai donc fait Actions> Ouvrir l'invite de commande . Puis tapez:

git Push Origin My_Branch_Name

Après cela, je pouvais voir la branche et mon commit dans ma télécommande. (Github ou quoi que ce soit dans votre cas). De plus, lors de l'exécution de la commande, le résultat dit,

remote: Create pull request for My_Branch_Name: 

Si vous souhaitez conserver cette branche et la fusionner en maître, vous pouvez créer une demande d'extraction sur votre télécommande. Sinon, comme dans mon cas, je veux abandonner la succursale. Tu n'as rien à faire.

0
Jess