О компании Fabrikam Fiber

advertisement
Лабораторная работа
Введение в использование Git с Team
Foundation Server 2013
Lab version:
12.0.21005.1
Last updated:
12/30/2013
СОДЕРЖАНИЕ
РЕЗЮМЕ ...................................................................................................................................................... 3
УПРАЖНЕНИЕ 1: ВВЕДЕНИЕ В GIT ........................................................................................................ 4
УПРАЖНЕНИЕ 2: ВЕТВЛЕНИЕ И СЛИЯНИЕ В GIT .............................................................................. 21
Резюме
Из этой лабораторной работы вы узнаете о том, как использовать Git с Team Foundation Server
2013 и Visual Studio 2013. Git - распределенная система контроля версий, его репозитории могут
располагаться как локально (например, на машине разработчика), так и на сервере Team
Foundation Server. Вы увидите, как создавать локальный репозиторий, который может быть
синхронизирован с центральным репозиторий на Team Foundation Server, как делать ветвление и
слияние.
Prerequisites
Для выполнения лабораторной работы вам понадобится виртуальная машина с Visual Studio 2013.
Подробнее про то, где загрузить и как ее использовать, здесь.
О компании Fabrikam Fiber
Эти лабораторные работы в качестве основы для сценариев, о которых вы узнаете в процессе,
оперируют несуществующей компанией Fabrikam Fiber. Fabrikam Fiber занимается кабельным
телевидением и сопутствующими сервисами в США. Компания быстро растет и уже начала
использовать Microsoft Azure для того, чтобы масштабировать свой веб-сайт для обслуживания их
запросов и отслеживания деятельности инженеров. Компания использует локальное приложение
ASP.NET MVC для управления заказами клиентов.
В этих лабораторных работах вы изучите сценарии, включенные в рабочий процесс команды
разработки и тестирования Fabrikam Fiber. Команда, состоящая из 8-10 человек, решила
использовать средства управления жизненным циклом проектов Visual Studio 2013 для того, чтобы
контролировать программный код, выполнять сборки, тестировать веб-сайты, планировать и
отслеживать происходящее с проектом.
Упражнения
Эта лабораторная работа включает в себя следующие упражнения:
1. Введение в Git
2. Ветвление и слияние в Git
Примерное время выполнения лабораторной работы: 30 минут.
Упражнение 1: Введение в Git
В этом упражнении вы научитесь создавать, клонировать и делать пуш коммитов в репозиторий
Git с Team Foundation Server 2013.
1. Войдите под аккаунтом Julia Ilyiana (VSALM\Julia). Пароль: P2ssw0rd.
2. Запустите Visual Studio 2013 и откройте Team Explorer. Вы должны быть подключены к
командному проекту FabrikamFiber, если этого не произошло, нажмите Connect to Team
Projects (
) и инициируйте подключение.
Изображение 1
Team Explorer – Home
3. У Fabrikam Fiber есть несколько причин использовать Git в качестве системы контроля
версий с Team Foundation Server: взаимодействие с разработчиками, используя такие
инструменты, как Xcode, который поддерживает протокол Git, и возможность работать
оффлайн – делать коммиты кода локально и отправлять обновления на Team Foundation
Server при подключении. Visual Studio 2013 содержит все необходимое для комфортной
работы с репозиториями Git, будь они на Team Foundation Server, локально или у
стороннего провайдера.
4. Нажмите File | New | Team Project.
5. Назовите новый проект “FabrikamCommunity” и нажмите на Next.
Изображение 2
Создание командного проекта
6. Нажмите на Next.
Изображение 3
Создание командного проекта
7. Отметьте опцию “Do not configure a SharePoint site at this time” и нажмите на Next.
Изображение 4
Создание командного проекта
8. Выберите версию Git и нажмите на Finish.
Изображение 5
Создание командного проекта с Git-репозиторием
9. Нажмите на Close.
10. Нажмите на Clone Repository.
Изображение 6
Клонирование репозитория
11. Нажмите на Clone.
Изображение 7
Клонирование репозитория в локальную папку
12. В Team Explorer – Home нажмите на Settings.
Изображение 8
Настройки проекта
13. Нажмите на Git Settings.
Изображение 9
Настройки Git
14. Введите e-mail (julia.ilyiana@vsalm) и нажмите на Update.
Изображение 10
Настройка e-mail
15. Нажмите на Home.
Изображение 11
Главная страница
16. Создайте новую рабочую задачу в продуктовом бэклоге, нажав Team | New Work Item |
Product Backlog Item в главном меню.
17. Введите “Create new web site” и нажмите на Save Work Item. Обратите внимание на ID
сохраненной задачи.
Изображение 12
Создание новой рабочей задачи в бэклоге
18. В Team Explorer – Home нажмите на New….
Изображение 13
Создание нового решения
19. Выберите шаблон ASP.NET MVC 4 Web Application и нажмите на OK.
Изображение 14
Создание нового веб-сайта
20. Нажмите на OK.
21. В Team Explorer – Home нажмите на Changes.
Изображение 15
Просмотр изменений
22. В проект были автоматически добавлены файлы .gitattributes и .gitignore. Файл
.gitattributes содержит настройки поведения Git, файл .gitignore определяет шаблон, по
которому определяется, что игнорировать при выявлении изменений.
Изображение 16
Изменения в проекте, включенные в коммит
23. Введите комментарий к коммиту “initial MVC site for work item #245”. Если идентификатор
у вашей задачи другой, введите его – использование # с идентификатором позволяет
привязать коммит к рабочей задаче при пуше на сервер.
Изображение 17
24. Выполните коммит, нажав на Commit. Коммит сохранится локально, не уходя на сервер.
Изображение 18
Локальный коммит
25. Изменим содержание сайта. В Solution Explorer откройте файл Views | Shared |
_Layout.cshtml.
Изображение 19
Файл _Layout.cshtml
26. Измените название страницы (с “My ASP.NET Application” на “Community”).
Изображение 20
Изменение названия сайта
27. Введите в Team Explorer – Changes комментарий к коммиту нажмите на Commit.
Сохраните изменения, нажав на Save.
Изображение 21
Комментарий к коммиту
28. Перейдите в раздел коммитов, нажав на Unsynced Commits.
Изображение 22
Раздел коммитов
29. Раздел Team Explorer – Unsynced Commits содержит как входящие, так и исходящие
коммиты. В данный момент мы видим два локальных коммита, которые готовы к пушу на
сервер.
Изображение 23
Исходящие коммиты
30. Нажмите на Sync для того, чтобы сделать пулл и пуш и удостовериться, что мы имеем
перед пушем последнюю версию кода.
Изображение 24
Синхронизация с сервером
Изображение 25
Синхронизация с сервером
31. Посмотрим на то, как эти коммиты выглядят на веб-портале. В Team Explorer – Home
нажмите на Web Portal.
Изображение 26
Запуск веб-портала
32. На портале нажмите на Code.
Изображение 27
Переход к коду
33. Нажмите на Commits. На этой вкладке показаны два коммита, относительный размер
которых (количество измененных файлов) можно определить, посмотрев на размер
сферы слева.
Изображение 28
Обзор коммитов
Примечание: перед появлением индикатора размера может пройти некоторое время.
34. Нажмите на ссылку на первый коммит.
Изображение 29
Выбор первого коммита
35. К этому коммиту привязана задача “Create new web site”. Нажмите на ссылку, чтобы
открыть задачу.
Примечание: прежде чем рабочая задача привяжется к коммиту может пройти
некоторое время.
Изображение 30
Привязанная к коммиту задача
Изображение 31
Привязанная к коммиту задача
Упражнение 2: ветвление и слияние в
Git
В этом упражнении вы увидите, как делать ветвление и слияние в Git с помощью Visual Studio
2013. Ветвление используется для разделения контекстов разработки и снижения рисков.
Ветвление в Git в этом смысле не исключение, и создание ветки в Git – операция простая, так как
создается новая ссылка на существующий коммит. В этом существенное отличие от ветвления в
Team Foundation Version Control (TFVC), где на серверной стороне должно быть дублировано все
дерево. Также мы посмотрим на слияние в Git.
1. Откройте в Visual Studio Team Explorer – Home.
2. Нажмите на Branches.
Изображение 32
Ветки
3. Создадим новую ветку для разработки веб-сайта. Нажмите на выпадающем меню New
Branch, введите “Development” и нажмите на Create Branch. В нашем случае новая ветка
будет отдельно от ветки Master.
Изображение 33
Создание ветки
4. Новая ветка была создана локально и не отправлена на сервер. Локально, без
подключения к Team Foundation Server, можно создавать сколь угодно много веток.
Изображение 34
Создание локальной ветки
5. В Solution Explorer откройте HomeController.cs из папки Controllers.
6. Измените метод About.
Изображение 35
Изменение исходников в новой ветке
7. Нажмите на Changes в Team Explorer - Branches.
Изображение 36
Ссылка на изменения в Team Explorer - Branches
8. Введите комментарий к коммиту “dev version” и нажмите на Commit.
Изображение 37
Выполнение коммита
9. Этот коммит - локальный. В Team Explorer – Changes нажмите на Branch. Нажмите на ветку
master.
Изображение 38
Переход между ветками
10. Обратите внимание, что в ветке Master содержимое HomeController.cs осталось прежним.
Изображение 39
Переход между ветками
11. Если вы хотите работать локально, можно не публиковать ветку на сервер. В Team
Explorer – Branches нажмите правой кнопкой на ветке Development. Нажмите на View
History.
Изображение 40
Просмотр истории для локальной ветки
Изображение 41
История ветки
12. Вы можете удалить ветку, слить ее с веткой Master или сделать пуш на сервер, чтобы дать
доступ к этой ветке другим разработчикам. Опубликуйте ветку, нажав правой кнопкой на
ветке Development и нажав на Publish Branch.
Изображение 42
Публикация ветки
Изображение 43
Публикация прошла успешно
13. Переключиться между ветками можно, нажав два раза на ветке в Team Explorer –
Branches. Переключитесь на ветку Development.
Изображение 44
Переход между ветками
14. Предположим, что другой разработчик внес изменение в HomeController.cs и сделал
коммит в ветку Master перед тем, как Julia слила свои изменения.
15. Войдите в систему под аккаунтом Adam Barr (VSALM\Adam) с паролем P2ssw0rd.
16. Запустите Visual Studio 2013.
17. Нажмите на Connect to Team Projects в Team Explorer – Home.
Изображение 45
Подключение к командному проекту
18. Нажмите на Select Team Projects….
Изображение 46
Подключение к командному проекту
19. Нажмите на FabrikamCommunity. Нажмите на Connect.
Изображение 47
Подключение к командному проекту
20. Нажмите два раза на проекте FabrikamCommunity в Team Explorer - Connect. Обратите
внимание, что проект Git имеет собственную иконку.
Изображение 48
Подключение к командному проекту
21. Клонируйте репозиторий.
22. Откройте Git Settings в Team Explorer – Settings и добавьте e-mail. E-mail в нашем случае не
играет существенной роли.
Изображение 49
Настройка e-mail
23. Нажмите два раза на MvcApplication1.sln в Team Explorer – Home.
Изображение 50
Решение
24. Внесите изменение в HomeController.cs.
Изображение 51
Изменение заголовка страницы
25. В Team Explorer – Changes введите комментарий к коммиту “Adam’s version” и нажмите на
Commit. Обратите внимание – для коммита был установлен Adam и ветка Master.
Изображение 52
Выполнение коммита
26. Нажмите на Sync.
Изображение 53
Синхронизация с сервером
27. Нажмите на Sync.
Изображение 54
Кнопка Sync
28. Войдите в систему под Julia.
29. Julia создала локальную ветку, отличную от Master, внесла изменение в файл и
опубликовала эту ветку. Теперь надо слить ее ветку Development с веткой Master.
30. В Team Explorer – Branches нажмите на Merge.
Изображение 55
Слияние веток в Git
31. Выберите в качестве источника Development, назначения - Master. Нажмите на Merge.
Изображение 56
Слияние веток в Git
32. Сейчас выбран репозиторий Master, и HomeController.cs содержит версию текста из
разработки. Слияние было выполнено локально, ветка Master была обновлена последним
коммитом ветки Development.
Изображение 57
Локальное слияние
33. Нажмите правой кнопкой на ветке Master в Team Explorer – Branches и нажмите на View
History…. Этот раздел должен выглядеть аналогично тому, что видели раньше, за
исключением того, что сейчас ветки Development/Master имеют общий коммит.
Изображение 58
Локальное слияние
34. Julia до сих пор не знает о том, что Adam сделал пуш в основную ветку, поэтому пытается
сделать свой пуш. Нажмите на Unsynced Commits.
Изображение 59
Переход в раздел Unsynced Commits
35. Нажмите на Sync.
Изображение 60
Синхронизация с сервером
36. Visual Studio сообщит, что коммит не может быть запушен из-за имеющегося конфликта.
Изображение 61
Конфликт между двумя коммитами
37. Нажмите на Resolve the Conflicts.
Изображение 62
Разрешение конфликтов
38. В Team Explorer – Resolve Conflicts нажмите на _Layout.cshtml в секции Conflicts.
Изображение 63
Разрешение конфликтов
39. Нажмите на Merge.
Изображение 64
Ручной процесс разрешения конфликта
40. Окно Merge, используемое Git для разрешения конфликтов, похоже на то, что
используется в Team Foundation Version Control. Предположим, что изменение, внесенное
Julia, правильное, и нажмем на правом верхнем углу.
Изображение 65
Окно Merge
41. Нажмите на Accept Merge.
Изображение 66
Окно Merge
42. Нажмите на Commit Merge.
Изображение 67
Коммит после разрешения конфликта слияния
43. В Team Explorer – Changes видно, что конфликты были разрешены, но еще нужно сделать
коммит слияния. Нажмите на Commit.
Изображение 68
Коммит слияния
44. Нажмите на Unsynced Commits.
Изображение 69
Несинхронизированные коммиты
45. Нажмите на Sync для окончания процесса слияния.
Изображение 70
Синхронизация с сервером
46. Нажмите на Web Portal в Team Explorer – Home.
Изображение 71
Веб-портал Fabrikam Fiber
47. Нажмите на Code.
Изображение 72
Переход к коду
48. Нажмите на Commits.
Изображение 73
Обзор коммитов
49. Нажмите на Branches для того, чтобы посмотреть, все ли ветки были опубликованы в
репозиторий.
Изображение 74
Обзор веток
50. Посмотрим на то, как управлять безопасностью и правами Git-репозитория в Team
Foundation Server. Нажмите на FabrikamCommunity. Нажмите на Manage Repositories.
Изображение 75
Управление репозиториями
51. Внутри одного командного проекта вы можете создавать другие Git-репозитории.
Изображение 76
Создание Git-репозитория
52. Нажмите на FabrikamCommunity.
Изображение 77
Переход к обзору репозитория
53. Здесь можно управлять безопасностью репозитория для пользователей и групп.
Изображение 78
Управление безопасностью репозитория
54. Нажмите на ветку Master. Здесь можно выполнить настройку безопасности на уровне
выбранной ветки.
Изображение 79
Управление безопасностью ветки
To give feedback please write to VSKitFdbk@Microsoft.com
Copyright © 2016 by Microsoft Corporation. All rights reserved.
Download