Visual Studio 2013 přišlo mimo jiné s novinkou v podobě nativní podpory pro verzovací nástroj Git. V dnešním článku si Git zběžně představíme, podíváme se na jeho integraci do TFS 2013, a na jednoduchém scénáři si ukážeme, jak ho prakticky využít v projektu ve Visual Studiu 2013 IDE.

Git je stále více a více populární Version Control System, který funguje jako distribuovaná služba. Každý developer jako součást týmu má tedy svou lokální kopii kompletního repositáře (repository), se kterým přímo pracuje a ve kterém vytváří tzv. commity. Ty se následně nahrají do vzdáleného repositáře, odkud ostatní členové týmu tyto změny mohou synchronizovat do své lokální kopie. To je vhodné především pro distribuované open source týmy, které nemusí nutně mít centrální řízení.

Pro více informací o fungování Gitu v týmových projektech: http://git-scm.com/book/en/Getting-Started-About-Version-Control

 

Git v kontextu Visual Studia a Visual Studia Online

Visual Studio jako integrované vývojářské prostředí (IDE) přináší podporu Gitu pro nativní připojení projektů nejen z populárního serveru Github, ale jakéhokoli Git úložiště přístupného z internetu. Do VS jde tedy importovat jakýkoli projekt nezávislý na platformě, který je řízený systémem Git.

Vedle Team Foundation Version Control (TFVC) však nativní podporu pro Git přináší i TFS 2013, nově znám pod zastřešujícím názvem Visual Studio Online. V souvislosti s Gitem funguje jako Enterprise Git server, kde můžeme projekty vzdáleně sdílet s týmem a centrálně je řídit například pomocí nástrojů pro ALM (Application Lifecycle Management). Ve Visual Studiu Online si můžeme tedy vybrat, zda budeme projekty verzovat pomocí TFVC nebo Git v závislosti na povaze projektu a distribuci vývojářského týmu.

 

Git-TF

Integrace Gitu do Visual Studia přišla již ve verzi VS 2012 a to s Updatem 2. Nyní je již plně integrovaný do VS 2013, kde je součástí záložky Team Explorer. Pokud jste tak ještě neučinili, než bude možné Git záložku naplno využít, je potřeba nainstalovat systémový nástroj pro podporu Gitu ve Windows. Tento nástroj nese název Git-TF a instaluje se přímo z Visual Studia pomocí Web Platform Installer. Stačí kliknout na odkaz Install, až vás k tomu Team Explorer vyzve.

 

Scénář

Používání Gitu si ukážeme na následujícím scénáři, ve kterém chceme existující lokální projekt sdílet ve službě Visual Studio Online (dříve znám pod názvem Team Foundation Service) právě pomocí Git version control.

  1. Nejprve si otevřete projekt, který chcete pomocí Gitu verzovat.
  2. V Solution Exploreru klikněte pravým na vaše solution a vyberte možnost Add solution to source control. V dalším okně budeme chtít Git.image
  3. Tímto se vám vytvoří lokální repository, které můžete vidět v Team Exploreru klikem na ikonku Connect to Team Projects. Otevřete lokální repositry, které nese název našeho projektu. Tím se dostanete do Git managementu tohoto projektu.image
  4. Nejprve je potřeba všechny zdrojové soubory přidat do repository. Klikněte na Changes a v sekci Included Changes uvidíte soubory, které se budou přidávat do repoistory s příštím commitem. Napište průvodní zprávu k vašemu commitu.image
  5. Tím se zpřístupní tlačitko Commit. Klikněte jej a tímto jste vytvořili váš první commit do lokálního repository.

 

Selektivní výběr změn

Může nastat situace, ve které chcete udělat commit jen některých změn, nebo všechny změny chcete roztřídit do několika commitů. V okně Changes se vždy defaultně vyberou všechny provedené změny, které by byly součástí příštího commitu. Abychom některé změny z tohoto výběru dočasně vyjmuli, můžeme stylem drag’n’drop jednotlivé soubory přesouvat mezi kategoriemi Included a Excluded Changes. Pouze soubory v Included budou součástí příštího commitu.image

 

Větvení (Branching)

Větvení ke Gitu patří jako podšálek k hrníčku. Používá se hlavně na oddělený vývoj nějaké části projektu, například jednotlivých features. Pokud chceme začít pracovat na nové feature (Blog modul do CMS), vytvoříme nejprve novou větev z naší hlavní větve, která se v Gitu nazývá master. Na této větvi pracujeme a jakmile jsme si jistí, že blog modul je kompletní, plně vyladěný a bez chyb, spojíme ho s hlavní větví akcí merge. Podívejme se na příklad ve VS.

  1. Na domácím okně lokální Git repository v Team Exploreru přejděte do okna Branches. Ujistěte se, že aktuální větev je master a do New Branch napište název nové větve. Následně větev vytvořte pomocí Create Branch. Nyní všechny změny budou probíhat na této větvi.image
  2. Jakmile jsou změny hotové, vytvoříme merge, který nám změny sloučí do hlavní větve. V okně branches klikněte na možnost Merge a vyberte směr z aktuální větve do master.image

Pro detailní informace o větvení v Gitu, navštivte: http://git-scm.com/book/en/Git-Branching-What-a-Branch-Is

 

Synchronizace se vzdáleným repository

Zatím ale žije náš zdrojový kód pouze lokálně v našem lokálním repository. Abychom jej mohli sdílet s ostatními developery, musíme naše lokální repo synchronizovat se vzdáleným. K tomu nám v našem scénáři bude sloužit Visual Studio Online, kde můžeme založit Team Project, který bude sloužit jako vzdálené repository.

Pokud ještě nemáte svou subscribci Visual Studio Online, můžete začít na stránkách Visual Studia. Nyní nahrajete změny ve vašem lokálním repository do vzdáleného repository ve VSO.

  1. Vytvořte nový Team Project ve Visual Studiu Online. Jako version control zvolte Git.image
  2. Ve Visual Studiu v okně Team Explorer klikněte ikonu Connect to Team Projects a možnost Select Team Projects.image
  3. V otevřeném okně nahoře vyberte váš VSO server a v pravé části dole vyberte odpovídající Team Project.image
  4. Po připojení k projektu, klikněte opět ikonu Connect to Team Projects. Uvidíte seznam projektů připojených z vašeho VSO serveru. Klikněte pravým na vytvořený VSO projekt a vyberte Connect.image
  5. Vraťte se o krok zpět a klikněte pravým na lokální repository, které chcete nahrát na VSO a vyberte Publish to <název projektu>.image

Upozornění: Na každém Team Projectu můžete mít vždy pouze jedno repository.

Nyní veškeré změny ve zdrojových kódech budeme muset synchronizovat se vzdáleným repository. To provádíme v Team Exploreru v okně Unsynced Commits. Zde mimo jiné vidíme, jaké commity budeme synchronizovat do vzdáleného repository a jaké do lokálního.

Poslední změny od našich spoluvývojářů si můžeme stáhnout ze vzdáleného repository pomocí akce Pull.

K téže akci opačného směru slouží Push.

Na okně vidíme, že můžeme vykonat i akci Sync, což je kombinace Pull a poté Push.image

To zakončuje typický koloběh práce s Gitem.

Pro více informací o integraci Gitu ve VS 2013, navštivte: http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/26/visual-studio-2013-preview-version-control-tfbuild.aspx

Pro další informace, jak prakticky využívat Git, navštivte: http://www.visualstudio.com/get-started/share-your-code-in-git-vs

 

Vašek