Git dans Visual Studio - ajouter un projet existant?

105

J'essaye de placer un projet existant sous le contrôle de source Git, mais je ne suis pas clair sur plusieurs choses.

J'ai créé un compte Git 'Team Foundation Service' en ligne.

J'ai actuellement une solution ASP.NET MVC 4 - dans mon dossier Projets. J'ai créé un «référentiel» Git localement (un dossier vide actuellement). Doit-il être simplement mon dossier d'application actuel dans Projets? Ou faut-il que ce soit une copie?

Comment obtenir mes fichiers existants dans le référentiel en ligne?

niico
la source
Vous mentionnez «Git dans Visual Studio» - utilisez-vous les outils git dans Visual Studio 2012?
Edward Thomson
Je crois que cela a maintenant été intégré dans la version 2015 sous Team Explorer. Je suis tombé sur ceci, où je ne pouvais pas `` publier '' (le push initial de vs après init), donc je vais ajouter une réponse avec des instructions sur l'ajout de l'URI
mschr

Réponses:

148

J'ai cherché une question similaire - la façon dont j'ai réussi à initialiser un référentiel Git pour un fichier de projet existant est la suivante (avertissement: cela se fait dans Visual Studio 2013 Express, sans configuration de Team Foundation Server):

  1. Ouvrez le projet dans Visual Studio.
  2. Allez dans le menu FichierAjouter au contrôle de source .

Cela l'a fait pour moi - en supposant que Git est configuré pour vous, vous pouvez aller dans le menu AffichageTeam Explorer , puis double-cliquer sur le référentiel de votre fichier de projet et effectuer votre validation initiale (en veillant à ajouter les fichiers que vous souhaitez ).

airbear
la source
7
Cela vous évitera également d'avoir à «fournir un fichier .gitignore raisonnable», car Visual Studio se chargera de ce détail pour vous. Entre un manuel git init et celui-ci, c'est ma méthode préférée à partir de maintenant.
MrCC
Si vous souhaitez choisir le projet dans lequel cette nouvelle solution entre, vous pouvez cliquer sur le bouton Sync - puis cliquer sur publier dans git repo, puis cliquer sur solution avancée et choisir le projet auquel vous souhaitez ajouter cette nouvelle solution .. une fois que vous avez fait cela, vous pouvez ensuite synchroniser et boom
Jamisco
Remarque: cela n'a pas fonctionné pour moi car j'avais déjà ajouté une bibliothèque partagée qui était incluse dans un autre référentiel. J'ai dû supprimer le projet partagé avant que l'option «Ajouter au contrôle de code source» ne devienne disponible.
Neil B du
2
Ils doivent l'ajouter à la fenêtre Team Explorer.
thReality
66
  1. Tout d'abord, vous devez installer le logiciel Git sur votre machine de développement locale, par exemple les extensions Git .
  2. Puis faites git initdans le dossier solution. C'est la bonne façon de créer un dossier de référentiel.
  3. Configurez un .gitignorefichier raisonnable afin de ne pas commettre de choses inutiles.
  4. git add
  5. git commit
  6. Ajoutez la télécommande appropriée, comme décrit dans votre compte Team Foundation Server git remote add origin <proper URL>
  7. git push votre code

Vous pouvez également trouver ici des guides détaillés utilisant l'intégration de Visual Studio.

Klas Mellbourn
la source
Cela a très bien fonctionné, merci Klas! Une note: vous devez avoir votre URL entre guillemets pour que cela fonctionne.
Jack Fairfield
NB: Nouvelle URL pour les extensions Git: visualstudiogallery.msdn.microsoft.com
...
@JohnLBevan cette extension semble indiquer une ancienne version
Klas Mellbourn
les liens sont rompus
@PaulScharnofske merci de me l'avoir dit. Je les ai
réparés
15

Après avoir parcouru Visual Studio, j'ai finalement trouvé la réponse qui a pris beaucoup plus de temps que prévu.

Afin de prendre un projet existant sans contrôle de code source et de le placer dans un référentiel GitHub vide (c'est important), le processus est simple, mais délicat, car votre première inclination est d'utiliser Team Explorer, ce qui est faux et c'est pourquoi vous rencontrez des problèmes.

Tout d'abord, ajoutez-le au contrôle de code source. Il y a quelques explications à ce sujet ci-dessus, et tout le monde va aussi loin.

Maintenant, cela ouvre un référentiel LOCAL vide et l'astuce dont personne ne vous parle est d'ignorer complètement Team Explorer et d'aller dans l'Explorateur de solutions, de cliquer avec le bouton droit sur la solution et de cliquer sur Valider.

Cela valide ensuite toutes les différences entre votre solution existante et le référentiel local, en le mettant essentiellement à jour avec tous ces nouveaux fichiers. Donnez-lui un nom de commit par défaut «fichiers initiaux» ou tout ce qui fait flotter votre bateau et validez.

Ensuite, cliquez simplement sur Sync sur l'écran suivant et déposez l'URL du référentiel GitHub VIDE. Assurez-vous qu'il est vide ou vous aurez des conflits de branche principale et il ne vous le permettra pas. Alors utilisez un nouveau référentiel ou supprimez l'ancien que vous aviez déjà foutu. Gardez à l'esprit qu'il s'agit de Visual Studio 2013, votre kilométrage peut donc varier.

Utile
la source
14

Faites un clic droit sur votre solution et sélectionnez Ajouter au contrôle de code source . Sélectionnez ensuite Git.

Maintenant, vos projets ont été ajoutés à un contrôle de source local. Faites un clic droit sur l'un de vos fichiers et sélectionnez Commit .

Saisissez ensuite un message de validation et sélectionnez Valider . Sélectionnez ensuite Sync pour synchroniser votre projet avec GitHub. Cela nécessite d'avoir un référentiel Git. Accédez à GitHub, créez un nouveau référentiel, copiez le lien du référentiel et ajoutez-le à votre serveur de contrôle de source distant. Sélectionnez Publier .

C'est tout.

Hashem Aboonajmi
la source
Cette réponse est correcte et fonctionne dans VS 2015. Cependant, j'avais une question majeure avec ceci étant un nouvel utilisateur git. VS 2015 n'a pas semblé créer un fichier gitignore ou offrir un moyen d'ignorer les dll / fichiers créés par VS qui ne devraient PAS être archivés. Comme le dossier obj par exemple et il essaie de tout valider dans les dépôts locaux. Quelqu'un d'autre a ce problème? Je ne veux pas que tout ce truc soit commis localement.
Matt
Je modifierai mon commentaire ci-dessus au fur et à mesure que j'en apprendrai plus. Quand je vérifie le répertoire, il a en fait construit le fichier gitignore, ce qui est génial car il est très volumineux et je détesterais essayer de le construire manuellement. Cependant, lorsque j'ai essayé de faire mon commit initial dans le référentiel local, VS n'a pas utilisé ce fichier gitignore car tous les fichiers étaient disponibles pour la validation dans git et c'était un gros gâchis. J'ai donc fermé la solution, supprimé le dossier .git et 2 fichiers git dans ma solution (qui se détache de git), rouvert et suis allé au fichier-> ajouter au contrôle de source et sélectionné à nouveau git. Cette fois, cela a très bien fonctionné.
Matt
Nous sommes maintenant en décembre 2019 et c'est encore plus facile. Après avoir suivi les étapes ci-dessus et cliqué sur Sync, on m'a demandé le compte GitHub et si je voulais en faire un référentiel privé. Une fois sélectionné, le nouveau référentiel a été créé pour moi (sans que je doive aller sur GitHub) et créé avec succès.
batpox
5

Utilisation de SourceTree :

Cliquez avec le bouton droit sur le nom de la solution dans l'Explorateur de solutions. Sélectionnez "Ajouter au contrôle de code source" .

Ensuite, dirigez-vous vers SourceTree et sélectionnez Cloner / Nouveau . Sélectionnez Ajouter un dossier de travail et pointez sur le nouvel emplacement Git que vous venez de créer dans votre solution.

Allez chercher l'adresse de clonage d'un Git vide (Bitbucket ou GitHub) et revenez à SourceTree, cliquez avec le bouton droit sur Remotes et ajoutez une nouvelle télécommande . (Remarque dans les versions modernes, allez dans RepositoriesAdd Remote .... Collez votre URL dans cette case et appuyez sur OK.

C'est ainsi que vous pouvez faire votre commit initial et pousser.

Clark
la source
5

Le moyen le plus simple est évidemment celui décrit dans l'article MSDN Partagez votre code avec Visual Studio 2017 et VSTS Git .

  1. Créez un nouveau référentiel Git local pour votre projet en sélectionnant Ajouter au contrôle de code source dans la barre d'état dans le coin inférieur droit de Visual Studio. Cela créera un nouveau référentiel dans le dossier dans lequel se trouve la solution et validera votre code dans ce référentiel.

    Entrez la description de l'image ici

  2. Dans la vue Push de Team Explorer, sélectionnez le bouton Publish Git Repository sous Push to Visual Studio Team Services.

    Entrez la description de l'image ici

  3. Connectez Remote Source Control et entrez le nom de votre référentiel, puis sélectionnez Publish Repository .

    Entrez la description de l'image ici

batmaci
la source
3

Sur Visual Studio 2015, la seule façon dont je l'ai finalement fait fonctionner était de l'exécuter à git initpartir de la racine de mon répertoire en utilisant la ligne de commande. Ensuite, je suis allé dans Team Explorer et j'ai ajouté un référentiel git local. Ensuite, j'ai sélectionné ce référentiel git local, je suis allé dans Paramètres-> Paramètres du référentiel et j'ai ajouté mon dépôt distant. C'est ainsi que j'ai finalement pu intégrer Visual Studio pour utiliser mon projet existant avec git.

J'ai lu toutes les réponses mais aucune n'a fonctionné pour moi. Je suis allé dans Fichier-> Ajouter au contrôle de code source, ce qui était censé faire essentiellement la même chose que git init, mais cela ne semblait pas initialiser mon projet car lorsque j'allais ensuite dans Team Explorer, toutes les options étaient grisées. De plus, rien n'apparaîtrait non plus dans la boîte de dialogue Modifications. Une autre réponse a déclaré que je devais simplement créer un dépôt local dans Team Explorer et que mes modifications apparaissaient, mais cela ne fonctionnait pas non plus. Toutes les options Git de Team Explorer ne fonctionnaient qu'après l'initialisation de mon projet via la ligne de commande.

Je suis nouveau dans Visual Studio, donc je ne sais pas si je viens de manquer quelque chose d'évident, mais il semble que mon projet ne s'initialise pas à partir de Visual Studio.

chavab_1
la source
Après avoir sélectionné "Fichier -> Ajouter au contrôle de source", y a-t-il quelque chose dans la fenêtre de sortie pour le volet "Contrôle de source - Git"? Je ne m'attendrais à rien dans la page Modifications, mais si vous visualisez l'historique du référentiel Git, je m'attendrais à ce qu'il affiche un commit "Ajouter des fichiers de projet" où les fichiers ont été validés dans le référentiel.
jamill
Est-ce le même que l'Explorateur de contrôle de code source? Si c'est le cas, cela ne montre rien. Il affiche simplement un lien pour ajouter un plugin de contrôle de source. Lorsque je clique dessus et que je sélectionne Git, rien ne se passe. Quant aux autres panneaux dans Team Explorer, rien ne se passe non plus. Ce n'est qu'après avoir initialisé le projet à partir de la ligne de commande, puis créé un dépôt local à partir du volet Connexions que je commence à voir les outils VS Git interagir avec mon projet.
chavab_1
2

Créez d'abord un «dossier de solution» avec le chemin relatif souhaité. Notez que Visual Studio 2012 ne crée pas de dossier système avec le même chemin relatif.

Maintenant, à l'intérieur de ce «dossier de solution», ajoutez un nouveau projet, mais vous devez faire attention lorsque vous le définissez que le chemin relatif dans le système correspond au chemin relatif de votre nouveau «dossier de solution». Si le dossier système souhaité n'existe pas, Visual Studio 2012 le créera désormais pour le nouveau projet. (Comme indiqué ci-dessus, il ne le fait pas lorsque vous ajoutez un nouveau `` dossier de solutions ''.)

Si vous souhaitez ajouter un fichier existant avec le chemin d'accès relatif correspondant, vous devez d'abord créer le fichier dans le chemin d'accès relatif système correspondant, depuis l'extérieur de Visual Studio. Ensuite, vous pouvez ajouter un fichier existant dans Visual Studio.

Anthony Biagioli
la source
1

Si le référentiel souhaité existe déjà (peut-être sur GitHub), vous pouvez le cloner sur votre système local, puis y copier le répertoire de la solution. Ajoutez ensuite les fichiers, validez les fichiers et envoyez le fichier local. Cela a mis la solution dans un référentiel.

Jiminion
la source
1

Git dans Visual Studio - ajouter un projet existant ; comment publier votre référentiel local dans un projet sur GitHub, GitLab ou autre.

Donc, vous avez créé une solution et vous voulez qu'elle soit téléchargée et versioncontroller via votre compte Git quelque part. Visual Studio 2015 a des outils dans Team Explorer pour cela.

Comme Meuep le mentionne, chargez votre solution puis naviguez File >> Add to Source Control . C'est l'équivalent de git init. Ensuite, vous aurez ceci:

Accueil Team Explorer

Maintenant, sélectionnez Settings >> Repository Settings et faites défiler jusqu'à Télécommandes .

Entrez la description de l'image ici

Configurez origin(assurez-vous que vous y mettez ce nom réservé) et définissez les URI.

Ensuite, vous pouvez utiliser Add, Syncet Publish.

mschr
la source
0

Si vous souhaitez ouvrir un projet existant à partir de GitHub, vous devez effectuer les opérations suivantes (ce sont des étapes uniquement pour Visual Studio 2013 !!!! Et plus récent, comme dans les anciennes versions, il n'y a pas d'installation Git intégrée):

  1. Explorateur d'équipe → Connectez-vous à teamProjects → Local GitRepositories → Cloner .

  2. Copiez / collez votre adresse GitHub à partir du navigateur.

  3. Sélectionnez un chemin local pour ce projet.

Andrew
la source
0

Pour moi, un dépôt Git (pas GitHub) a déjà été créé, mais vide. C'était ma solution pour ajouter le projet existant au référentiel Git:

  1. J'ai cloné et extrait un référentiel avec des extensions Git.
  2. Ensuite, j'ai copié mes fichiers de projet existants dans ce référentiel.
  3. Ajout d'un .gitignorefichier.
  4. Mise en scène et validation de tous les fichiers.
  5. Poussé sur le référentiel distant.

Il serait intéressant de voir tout cela fait directement dans Visual Studio 2015 sans outils comme les extensions Git, mais les choses que j'ai essayées dans Visual Studio n'ont pas fonctionné (l' ajout au contrôle de source n'est pas disponible pour mon projet, l'ajout d'une télécommande n'a pas aide, etc.).

essai
la source
0

Pour ajouter un projet dans une solution, ouvrez simplement la fenêtre Team Explorer et accédez à Modifications. Ensuite, sous Fichiers non suivis, cliquez sur Options d'affichage et sélectionnez Basculer vers l'arborescence (sauf si elle est déjà dans l'arborescence), cliquez avec le bouton droit sur le dossier racine du projet et sélectionnez Ajouter .

Entrez la description de l'image ici

Bleu froid
la source
0

J'oublie toujours cela, donc c'est plus pour moi, mais cela pourrait peut-être aider quelqu'un d'autre à utiliser VS.

Visual Studio a le concept de solutions. Dans git cependant, il a le concept d'un dépôt git suivi par les branches locales et distantes. Tous les fichiers et dossiers ajoutés à git sont locaux.

Revenons maintenant à Visual Studio Solutions lorsque vous créez un projet de modèle standard, il crée tous les projets localement pour cette solution.

Donc, le problème se produit lorsque vous ajoutez un projet qui n'est pas local à la solution ou à git d'ailleurs. Ce qui se passe, c'est que le fichier de solution .sln est mis à jour avec l'emplacement du projet, mais le contenu réel du projet, les fichiers de projet et les dossiers ne peuvent pas être ajoutés à git car ils se trouvent sur un répertoire séparé ou un lecteur réseau séparé ou un serveur ftp etc .... Cela peut être préférable si vous voulez seulement une référence à un fichier de projet qui est compilé uniquement dans le fichier .sln ou si vous voulez les source pour séparer les dépôts git ou github. Mais vous ne voulez pas que les fichiers réels soient suivis par git localement.

Pour remédier à cela (c'est-à-dire que vous souhaitez les ajouter à votre référentiel git), il vous suffit de déplacer les fichiers distants d'intérêt dans le cadre de la solution et de ses fichiers projets afin qu'ils soient locaux.

RetroCoder
la source
0

Voici comment procéder dans Visual Studio 2015.

  1. Ouvrez le projet et allez dans Outils >> Options >> onglet "Contrôle de source" et sélectionnez "Git" comme contrôle de source. entrez la description de l'image ici

  2. Allez dans le menu Fichier et sélectionnez "Ajouter au contrôle de source".

Cela fait essentiellement exécuter "git init" par Visual Studio en créant toutes les cloches et les sifflets (la configuration ignore les fichiers en conséquence, comme ignorer les fichiers spécifiques à l'utilisateur, les fichiers temporaires, le répertoire, etc.).

Essentiellement, votre référentiel git a été créé correctement localement (c'est l'étape majeure du projet VS car ce dossier contient beaucoup de fichiers que nous voulons ignorer).

Vous pouvez maintenant connecter ce dépôt git à n'importe quel autre git comme GitHub, BitBucket, etc. dans git bash (en dehors de Visual Studio).

Je démarre la session Git Bash maintenant dans ce répertoire de travail et comme j'utilise BitBucket, je suis les instructions qui y sont données (il suffit de copier les lignes ci-dessous à partir de là).

git remote add origin https: //[email protected]/yourusername/hookdemo.git

git push -u origin master

C'est tout.

Ensuite, vous pouvez gérer le référentiel sur la ligne de commande git elle-même depuis sa configuration correctement maintenant.

zar
la source