~~REVEAL~~
====== Git w VS ======
===== Nowe repozytorium =====
* **File -> New -> Project -> Add to Source Control**
{{ :zajecia:znd_2014_1:tfs_add_new_project.png?600 |}}
===== Pobierania istniejącego repozytorium (clone) =====
{{https://www.visualstudio.com/en-us/docs/git/_shared/_img/clonevsrepo.png}}
Źródło: https://www.visualstudio.com/en-us/docs/git/gitquickstart
===== Configuracja repozytorium =====
* **Team Explorer -> Settings -> Repository settings**
{{https://www.visualstudio.com/en-us/docs/git/tutorial/_img/add_remote_vs.png}}
Źródło: https://www.visualstudio.com/en-us/docs/git/gitquickstart
===== commit - zatwierdzanie zmian =====
* **Staged changes** - lista zmian, która powędruje do następnego zatwierdzenia
{{https://www.visualstudio.com/en-us/docs/git/_shared/_img/vs_update2_changes.png}}
Źródło: https://www.visualstudio.com/en-us/docs/git/gitquickstart
===== Historia zmian =====
{{https://www.visualstudio.com/en-us/docs/git/tutorial/_img/vs_history_view.png}}
Źródło: https://www.visualstudio.com/en-us/docs/git/gitquickstart
===== Porównywanie zmian =====
{{https://www.visualstudio.com/en-us/docs/git/tutorial/_img/vs_diff_changes.png}}
Źródło: https://www.visualstudio.com/en-us/docs/git/gitquickstart
===== Synchronizacja ze zdalnym repozytorium =====
* ''push'' - wysyłanie zmian
* ''pull'' = ''fetch'' + ''merge'' - pobieranie zmian i łączenie z lokalną kopią
{{https://www.visualstudio.com/en-us/docs/git/_shared/_img/newvspush.png}}
Źródło: https://www.visualstudio.com/en-us/docs/git/gitquickstart
===== Gałęzie (branches) ======
* gałęzie zawierają równolegle rozwijane wersje kodu, pomiędzy którymi możemy w prosty sposób się przełączać (''checkout'')
* ''merge'' - dołącza zmiany z innej gałęzi
{{https://www.visualstudio.com/en-us/docs/git/_shared/_img/newvsbranch.png}}
Źródło: https://www.visualstudio.com/en-us/docs/git/gitquickstart
===== Konflikty =====
{{http://www.hanselman.com/blog/content/binary/Windows-Live-Writer/ed5b594103c4_B6D0/image_thumb.png}}
Źródło: https://www.hanselman.com/blog/
===== Cofanie zmian =====
{{https://www.visualstudio.com/en-us/docs/git/tutorial/_img/vs_reset_branch.png}}
===== Pull request ====
Po wysłaniu zmian umieszczonych w osobnej gałęzi możemy poprosić członków zespołu o weryfikację kodu i dodanie do głównej gałęzi
{{https://www.visualstudio.com/en-us/docs/git/_shared/_img/newvspullrequest.png}}
Źródło: https://www.visualstudio.com/en-us/docs/git/gitquickstart
===== Typowy workflow =====
- tworzymy nową gałąź
- zmieniamy zawartość nowej gałęzi i zatwierdzamy zmiany
- gdy praca skończona wysyłamy gałąź do zdalnego repozytorium
- składamy prośbę (//pull request//) o weryfikację kodu i integrację z główną gałęzią
- aktualizujemy lokalną kopię ze zmianami, które mogli nanieść inni użytkownicy, rozwiązujemy konflikty
{{https://www.visualstudio.com/en-us/docs/git/tutorial/_img/gitworkflow.png}}
Źródło: https://www.visualstudio.com/en-us/docs/git/tutorial/gitworkflow
===== A successful Git workflow =====
{{http://nvie.com/img/git-model@2x.png?450}}
Źródło: http://nvie.com/
===== Więcej informacji =====
* [[https://www.visualstudio.com/pl-pl/docs/git/overview|Git and Team Services]]
* [[http://git-scm.com/|git - fast version control]]