Команда Open project
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Открывает существующий проект или решение.
Синтаксис
File.OpenProject filename
Аргументы
Обязательно. Полный путь и имя файла открываемого проекта или решения.
В соответствии с требованиями синтаксиса для аргумента filename путь, содержащий пробелы, должен заключаться в кавычки.
Замечания
Функция автозавершения пытается определить правильный путь и правильное имя файла во время их ввода.
Эта команда недоступна при отладке.
Пример
В следующем примере открывается проект Visual Basic Test1:
>File.OpenProject "C:\My Projects\Test1\Test1.vbproj"
См. также
- Команды Visual Studio
- Командное окно
- Поле «Поиск/команда»
- Псевдонимы команд Visual Studio
Краткое руководство. Создание функции Java в Azure с помощью Visual Studio Code
Из этой статьи вы узнаете, как создать функцию Java, которая отвечает на HTTP-запросы, используя Visual Studio Code. После тестирования кода в локальной среде его необходимо развернуть в бессерверной среде Функций Azure.
Если вы не хотите использовать Visual Studio Code в качестве средства разработки, ознакомьтесь с аналогичными руководствами для разработчиков Java:
Выполнение этого краткого руководства предполагает небольшую дополнительную плату в несколько центов США в учетной записи Azure.
Настройка среды
Перед началом работы убедитесь, что выполнены следующие предварительные требования.
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно.
- Пакет средств разработки Java версии 11 или 8.
- Apache Maven 3.0 или более поздней версии.
- Visual Studio Code на одной из поддерживаемых платформ.
- Пакет расширения Java
- Расширение «Функции Azure» для Visual Studio Code.
Установка или обновление Core Tools
Расширение Функции Azure для Visual Studio Code интегрируется с Функции Azure Core Tools, что позволяет выполнять и отлаживать функции локально в Visual Studio Code с помощью среды выполнения Функции Azure. Перед началом работы рекомендуется установить Core Tools локально или обновить существующую установку, чтобы использовать последнюю версию.
В Visual Studio Code выберите F1, чтобы открыть палитру команд, а затем найдите и выполните команду Функции Azure: Установка или обновление основных средств.
Эта команда запускает установку последней версии Core Tools на основе пакета.
Создание локального проекта
В этом разделе показано, как использовать Visual Studio Code, чтобы создать локальный проект Функций Azure на Java. Далее в этой статье вы опубликуете код функции в Azure.
- Щелкните значок Azure на панели действий. Затем в области Рабочая область (локальная) нажмите кнопку + и выберите пункт Создать функцию в раскрывающемся списке. В ответ на запрос выберите вариант Создать проект.

- Выберите расположение каталога для рабочей области проекта и нажмите кнопку Выбрать. Нужно либо создать новую папку, либо выбрать пустую папку для рабочей области проекта. Не выбирайте папку проекта, которая является частью рабочей области.
- Введите следующие сведения по соответствующим запросам:
prompt Выбор Выбор языка Выберите Java . Выберите версию Java Выберите Java 11 или Java 8 в зависимости от того, какая из версий Java нужна для запуска функций в Azure. Выберите версию Java, которую вы проверили локально. Укажите идентификатор группы Выберите com.function . Укажите идентификатор артефакта Выберите myFunction . Укажите версию Выберите 1.0-SNAPSHOT . Укажите имя пакета Выберите com.function . Укажите имя приложения Выберите myFunction-12345 . Выбор шаблона для первой функции проекта Выберите HTTP trigger . Выберите средство сборки для проекта Java Выберите Maven . Provide a function name (Укажите имя функции) Введите HttpExample . Уровень авторизации Выберите Anonymous , что позволит любому пользователю вызывать конечную точку функции. Дополнительные сведения об уровне авторизации см. в разделе Ключи авторизации. Выбор способа открытия проекта Выберите Open in current window . - Используя эти сведения, Visual Studio Code создает проект функций Azure с триггером HTTP. Файлы локального проекта можно просмотреть в Explorer. Дополнительные сведения о созданных файлах см. в разделе Созданные файлы проекта.
Локальное выполнение функции
Visual Studio Code интегрируется с Azure Functions Core Tools, чтобы перед публикацией в Azure можно было запустить этот проект на локальном компьютере разработки.
- Чтобы запустить функцию локально, нажмите клавишу F5 или значок Выполнить и отладка на панели действий слева. На панели Терминал отобразятся выходные данные из Core Tools. Ваше приложение запускается в панели Терминал. Отобразится URL-адрес конечной точки активируемой HTTP-запросом функции, которая выполняется локально.
При возникновении проблем с запуском в Windows убедитесь, что в качестве терминала по умолчанию для Visual Studio Code не используется оболочка WSL. - Во время выполнения Core Tools в Терминале щелкните значок Azure на панели действий. В области Рабочая область разверните узел Локальный проект>Функции. Щелкните правой кнопкой мыши (Windows) или CTRL— щелкните (macOS) новую функцию и выберите команду Выполнить функцию сейчас. .

- В поле Ввести текст запроса вы увидите значение текста запроса < "name": "Azure" >. Нажмите клавишу ВВОД, чтобы отправить это сообщение запроса в свою функцию.
- При выполнении функции локально и возврате ответа в Visual Studio Code отобразится уведомление. Сведения о выполнении функции отображаются на панели Терминал.
- Откройте панель терминала и нажмите клавиши CTRL+C , чтобы остановить основные инструменты и отключить отладчик.
Убедившись, что функция выполняется правильно на локальном компьютере, опубликуйте проект в Azure с помощью Visual Studio Code.
Вход в Azure
Прежде чем публиковать приложение, необходимо войти в Azure.

- Если вы не выполнили вход, щелкните значок Azure на панели действий. Затем в области Ресурсы выберите Вход в Azure. . Если вы уже выполнили вход и видите существующие подписки, перейдите к следующему разделу. Если у вас еще нет учетной записи Azure, выберите Создать учетную запись Azure. . Учащиеся могут выбрать Создать учетную запись Azure для учащихся. .
- При появлении запроса в браузере выберите учетную запись Azure и войдите в нее с помощью учетных данных. Если вы создаете новую учетную запись, вы можете выполнить вход после ее создания.
- Выполнив вход, можно закрыть новое окно браузера. Подписки, принадлежащие учетной записи Azure, отображаются на боковой панели.
Создание приложения-функции в Azure
В этом разделе показано, как создать приложение-функцию и связанные ресурсы в подписке Azure.
- Щелкните значок Azure на панели действий. Затем в области Ресурсы щелкните значок + и выберите вариант Создать приложение-функцию в Azure.

- Введите следующие сведения по соответствующим запросам:
prompt Выбор Выбор подписки Выберите подписку, которую нужно использовать. Эта подсказка не отобразится, если в области Ресурсы отображается только одна подписка. Ввод глобально уникального имени для приложения-функции Введите имя, допустимое в пути URL-адреса. Имя, которое вы вводите, проверяется, чтобы убедиться, что оно уникально в функциях Azure. Выбор стека среды выполнения Выберите версию языка, которая запускалась локально. Выбор расположения для новых ресурсов Для повышения производительности выберите регион рядом с вами. Расширение показывает на панели Azure: журнал действий состояние отдельных ресурсов по мере их создания в Azure.

- После завершения создания в вашей подписке будут созданы приведенные ниже ресурсы Azure. Имена ресурсов основаны на имени приложения-функции.
- Группа ресурсов — логический контейнер связанных ресурсов.
- Учетная запись хранения Azure уровня «Стандартный» для сохранения состояния и других сведений о проектах.
- приложение-функцию — среду для выполнения кода функции. Приложение-функция позволяет группировать функции в логические единицы и упростить развертывание, масштабирование и совместное использование ресурсов, а также управление ими в рамках единого плана размещения.
- План службы приложений, который определяет базовый узел для приложения-функции.
- Экземпляр Application Insights, подключенный к приложению-функции, который отслеживает использование функций в приложении.
После создания приложения-функции и применения пакета развертывания отобразится уведомление.
По умолчанию ресурсы Azure, необходимые для приложения функции, создаются на основе указанного имени приложения функции. По умолчанию они также создаются в той же новой группе ресурсов, что и приложение-функция. Если необходимо настроить имена этих ресурсов или повторно использовать существующие ресурсы, вам нужно опубликовать проект с дополнительными параметрами создания.
Развертывание проекта в Azure
Развертывание в существующем приложении-функции всегда перезаписывает содержимое этого приложения в Azure.
- Щелкните значок Azure на панели действий, а затем в области Рабочая область выберите папку проекта и нажмите кнопку Развернуть. .

- Выберите Развернуть в приложении-функции. , выберите только что созданное приложение-функцию и нажмите Развернуть.
- После завершения развертывания выберите Просмотреть выходные данные, чтобы просмотреть результаты создания и развертывания, включая созданные ресурсы Azure. Если вы пропустили уведомление, щелкните значок колокольчика в правом нижнем углу, чтобы снова просмотреть его.

Запуск функции в Azure

- Вернувшись в область Ресурсы на боковой панели, разверните узел подписки, узел нового приложения-функции и узел Функции. Щелкните правой кнопкой мыши (в Windows) или используйте Ctrl- щелчок (в macOS) на функции HttpExample и выберите Выполнить функцию. .
- В поле Ввести текст запроса вы увидите значение текста запроса < "name": "Azure" >. Нажмите клавишу ВВОД, чтобы отправить это сообщение запроса в свою функцию.
- При выполнении функции в Azure и возврате ответа в Visual Studio Code отобразится уведомление.
Очистка ресурсов
При переходе к следующему шагу и добавлении привязки очереди службы хранилища Azure к функции, вам потребуется сохранить все ресурсы, чтобы использовать их в будущем.
В противном случае выполните следующие действия, чтобы удалить приложение-функцию и связанные с ним ресурсы и избежать дополнительных расходов.

- В Visual Studio Code нажмите клавишу F1 , чтобы открыть палитру команд. В палитре команд найдите и щелкните Azure: Open in portal .
- Выберите приложение-функцию и нажмите клавишу ВВОД . Страница приложения-функции откроется на портале Azure.
- На вкладке Обзор выберите именованную ссылку рядом с полем Группа ресурсов.
- На странице Группа ресурсов просмотрите список включенных ресурсов и убедитесь, что именно их нужно удалить.
- Выберите Удалить группу ресурсов и следуйте инструкциям. Удаление может занять несколько минут. После этого на несколько секунд появится уведомление. Кроме того, можно выбрать значок колокольчика в верхней части страницы, чтобы просмотреть уведомление.
Дополнительные сведения о затратах на использование Функций см. в статье Оценка затрат на план потребления.
Дальнейшие действия
С помощью Visual Studio Code вы создали приложение-функцию с простой функцией, активируемой HTTP-запросом. В следующей статье показано, как расширить эту функцию путем подключения к службе хранилища Azure. Дополнительные сведения о подключении к другим службам Azure см. в статье Подключение функций к службам Azure с помощью привязок.
Клонирование существующего репозитория Git
Вы можете создать локальную копию удаленного репозитория Git, клонировав ее в локальную папку на компьютере. При клонировании удаленного репозитория скачиваются все фиксации во всех ветвях репозитория, если не используется —single-branch параметр клонирования. Клонирование связывает каждую ветвь в новом локальном репозитории с соответствующей ветвью в удаленном репозитории. Таким образом, при отправке, чтобы поделиться изменениями локальной ветви с вашей командой, соответствующая удаленная ветвь обновляется. Аналогичным образом при извлечении для обновления локальной ветви с изменениями, внесенными вашей командой, извлекаются обновления из соответствующей удаленной ветви. Удаленный репозиторий может быть Azure Repos репозиторием Git, репозиторием GitHub или другим размещенным репозиторием Git.
В этой статье приведены процедуры для выполнения следующих задач:
- Получение URL-адреса клона для репозитория Azure Repos Git
- Получение URL-адреса клона для репозитория GitHub
- Клонирование репозитория Azure Repos Git
- Клонирование репозитория GitHub
- Клонирование любого репозитория Git
- Открытие решения Visual Studio из клонированного репозитория
Общие сведения о рабочем процессе Git см. в руководстве по Azure Repos Git.
Необходимые условия для доступа к Azure Repos
- Репозитории должны быть включены в параметрах проекта Azure DevOps. Если центр Repos и связанные страницы не отображаются, см. статью Включение или отключение службы Azure DevOps для повторного включения Репозиториев.
- Для просмотра кода в частных проектах необходимо быть участником проекта Azure DevOps с уровнем доступа «Базовый» или выше. Для общедоступных проектов каждый может просмотреть код.
- Если у вас нет проекта, создайте его или зарегистрируйтесь бесплатно.
- Если вы не участник проекта, добавьте его.
Примечание Для общедоступных проектов пользователи, которым предоставлен доступ заинтересованных лиц, имеют полный доступ к Azure Repos.
- Репозитории должны быть включены в параметрах проекта Azure DevOps. Если центр Repos и связанные страницы не отображаются, см. статью Включение или отключение службы Azure DevOps для повторного включения Репозиториев.
- Чтобы просмотреть код, необходимо быть участником проекта Azure DevOps с доступом уровня «Базовый» или выше. Если вы не участник проекта, добавьте его.
- Для клонирования или участия в коде необходимо быть членом группы безопасности «Участники» или иметь соответствующие разрешения в проекте, который требуется изменить.
- Для просмотра кода необходимо быть участником проекта Azure DevOps с доступом уровня «Базовый» или выше. Если вы не участник проекта, добавьте его.
- Чтобы клонировать код или внести свой вклад в него, необходимо быть членом группы безопасности «Участники» или иметь соответствующие разрешения.
Получение URL-адреса клона репозитория Azure Repos Git
Как правило, необходимо знать URL-адрес клонирования удаленного репозитория, который требуется клонировать. URL-адрес клонирования однозначно идентифицирует удаленный репозиторий.
Когда вы вошли в проект Azure DevOps, Visual Studio поддерживает поиск и клонирование репозиториев проектов без необходимости знать URL-адрес клонирования.
- В веб-браузере откройте командный проект для организации Azure DevOps, а затем выберите Файлы репозитория>, чтобы открыть представление Файлы.

- В представлении Файлы выберите Клонировать , чтобы открыть всплывающее окно Клонировать репозиторий .

- Скопируйте URL-адрес клонирования из всплывающего окна Клонировать репозиторий .

При использовании Azure DevOps Services URL-адрес проекта имеет dev.azure.com// формат . Однако предыдущий формат, ссылающийся на этот формат, по-прежнему visualstudio.com поддерживается. Дополнительные сведения см. в статье Знакомство с Azure DevOps. Переключение существующих организаций на использование нового URL-адреса доменного имени.
Получение URL-адреса клона репозитория GitHub
Как правило, необходимо знать URL-адрес клонирования удаленного репозитория, который требуется клонировать. URL-адрес клонирования однозначно идентифицирует удаленный репозиторий.
Когда вы вошли в GitHub, Visual Studio поддерживает поиск и клонирование репозиториев GitHub без необходимости знать URL-адрес клонирования.
- Откройте браузер и перейдите к своей учетной записи GitHub , перейдите на вкладку Репозитории и выберите репозиторий для клонирования.

- На странице репозитория GitHub выберите Код , чтобы открыть всплывающее окно Клонировать . Скопируйте URL-адрес клона из всплывающего окна Клонировать .

Клонирование репозитория Azure Repos Git
Выполнив вход в качестве участника проекта Azure DevOps, вы можете клонировать частные репозитории, доступные вам, и общедоступные репозитории. Visual Studio поддерживает операции поиска, клонирования и синхронизации в репозиториях, доступных через проверку подлинности.
Вы можете клонировать общедоступный репозиторий Azure Repos Git без входа в качестве участника родительского проекта Azure DevOps. Чтобы клонировать общедоступный репозиторий Git без входа, см. статью Клонирование любого репозитория Git и подключение к проекту в Azure DevOps.
- Visual Studio 2022
- Visual Studio 2019 — меню Git
- Visual Studio 2019 — командная Обозреватель
- Командная строка Git
Visual Studio 2022 предоставляет возможности управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений. Visual Studio 2019 версии 16.8 также предлагает пользовательский интерфейс Git для команды Обозреватель. Дополнительные сведения см. на вкладке Visual Studio 2019 — team Обозреватель.
- В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий .

- В окне Клонирование репозитория выберите Azure DevOps в разделе Обзор репозитория , чтобы открыть окно Подключение к проекту .

- В окне Подключение к проекту войдите в Azure DevOps и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Если удаленный репозиторий не отображается, выберите Добавить Azure DevOps Server, чтобы добавить сервер, на котором размещен репозиторий. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и выберите Клонировать.

После клонирования удаленного репозитория Git Visual Studio обнаружит локальный клон и добавит его в список локальных репозиториев в меню Git .
Visual Studio 2019 предоставляет возможности управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений.
- В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий .

- В окне Клонирование репозитория выберите Azure DevOps в разделе Обзор репозитория , чтобы открыть окно Подключение к проекту .

- В окне Подключение к проекту войдите в Azure DevOps и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Если удаленный репозиторий не отображается, выберите Добавить Azure DevOps Server, чтобы добавить сервер, на котором размещен репозиторий. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и выберите Клонировать.

После клонирования удаленного репозитория Git Visual Studio обнаружит локальный клон и добавит его в список локальных репозиториев в меню Git .
Visual Studio 2019 версии 16.8 и более поздних версий предоставляет возможности управления версиями Git при сохранении пользовательского интерфейса Team Обозреватель Git. Чтобы использовать командную Обозреватель, снимитефлажокСервис> Параметры >Предварительный просмотр функций>Новый пользовательский интерфейс Git в строке меню. Функции Git можно использовать из любого интерфейса взаимозаменяемо.
- В командной Обозреватель выберите Подключить, чтобы открыть страницу Подключение, а затем выберите Управление подключениями>Подключиться к проекту.

- В окне Подключение к проекту войдите в Azure DevOps и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Если удаленный репозиторий не отображается, выберите Добавить Azure DevOps Server, чтобы добавить сервер, на котором размещен репозиторий. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и выберите Клонировать.

После клонирования удаленного репозитория Git Visual Studio обнаружит локальный клон и добавит его в список локальных репозиториев в меню Git .
Сведения о клонировании репозитория Azure Repos Git из командной строки см. в статье Клонирование любого репозитория Git.
Клонирование репозитория GitHub
Войдя в GitHub или используя проверку подлинности SSH, вы можете клонировать частные репозитории, доступные вам, и общедоступные репозитории. Visual Studio поддерживает операции поиска, клонирования и синхронизации в репозиториях, доступных через проверку подлинности.
Вы можете клонировать общедоступный репозиторий GitHub без входа в GitHub или проверки подлинности иным образом. Чтобы клонировать общедоступный репозиторий Git без входа, см. статью Клонирование любого репозитория Git.
- Visual Studio 2022
- Visual Studio 2019 — меню Git
- Visual Studio 2019 — командная Обозреватель
- Командная строка Git
- В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий .

- В окне Клонирование репозитория выберите GitHub в разделе Обзор репозитория , чтобы открыть окно Открыть из GitHub .

- В окне Открыть из GitHub войдите в GitHub и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и нажмите кнопку Клонировать.

После клонирования удаленного репозитория Git Visual Studio обнаружит локальный клон и добавит его в список локальных репозиториев в меню Git .
- В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий .

- В окне Клонирование репозитория выберите GitHub в разделе Обзор репозитория , чтобы открыть окно Открыть из GitHub .

- В окне Открыть из GitHub войдите в GitHub и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и нажмите кнопку Клонировать.

После клонирования удаленного репозитория Git Visual Studio обнаружит локальный клон и добавит его в список локальных репозиториев в меню Git .
Сведения о клонировании репозитория GitHub с помощью team Обозреватель см. в статье Клонирование любого репозитория Git.
Чтобы клонировать репозиторий GitHub из командной строки, см. статью Клонирование любого репозитория Git.
Вы также можете клонировать репозиторий GitHub из командной строки с помощью GitHub CLI.
Клонирование любого репозитория Git
Вы можете клонировать любой доступный репозиторий Git, используя URL-адрес клонирования репозитория.
- Visual Studio 2022
- Visual Studio 2019 — меню Git
- Visual Studio 2019 — командная Обозреватель
- Командная строка Git
- В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий .

- В окне Клонировать репозиторий введите URL-адрес клонирования удаленного репозитория Git, который требуется клонировать, проверьте путь к локальной папке, в которой нужно создать локальный клон, а затем выберите Клонировать.

После клонирования удаленного репозитория Git Visual Studio обнаружит локальный клон и добавит его в список локальных репозиториев в меню Git .
- В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий .

- В окне Клонировать репозиторий введите URL-адрес клонирования удаленного репозитория Git, который требуется клонировать, проверьте путь к локальной папке, в которой нужно создать локальный клон, а затем выберите Клонировать.

После клонирования удаленного репозитория Git Visual Studio обнаружит локальный клон и добавит его в список локальных репозиториев в меню Git .
- В командной Обозреватель выберите Подключиться, чтобы открыть страницу Подключение, а затем выберите Клонировать в разделе Локальные репозитории Git.

- Введите URL-адрес клонирования удаленного репозитория Git, который вы хотите клонировать, проверьте путь к локальной папке, в которой вы хотите создать локальный клон, и нажмите кнопку Клонировать. Чтобы клонировать удаленный репозиторий Git и вложенные в него репозитории Git, оставьте флажок Рекурсивно клонировать подмодули .

После клонирования удаленного репозитория Git Visual Studio обнаружит локальный клон и добавит его в список локальных репозиториев в меню Git .
- Если вы еще этого не сделали, скачайте и установите Git. Включите диспетчер учетных данных Git при появлении запроса во время установки или настройте проверку подлинности SSH.
- В командной строке выполните команду Git clone с URL-адресом клонирования удаленного репозитория. Эта команда создаст локальный репозиторий клонирования в текущей папке.
git clone
Команда Git clone также позволяет указать путь к папке после URL-адреса клонирования, чтобы создать репозиторий в определенном расположении. Например:
git clone https://fiber-teams@dev.azure.com/fiber-teams/FiberTests/_git/FiberTests C:\Repos\FiberTestsКоманда Git clone также позволяет клонировать только одну ветвь. Этот параметр полезен, если вам интересна только одна ветвь большого репозитория.
git clone --branch --single-branchПри клонировании удаленный репозиторий Git назначает псевдоним origin в качестве сокращенного url-адреса клонированного удаленного репозитория. Этот псевдоним часто используется в командах Git.
Открытие решения Visual Studio из клонированного репозитория
- Visual Studio 2022
- Visual Studio 2019 — меню Git
- Visual Studio 2019 — командная Обозреватель
- Командная строка Git
- Выберите Файл > Открыть > проект или решение в строке меню и выберите файл решения для открытия.

- Выбранное решение Visual Studio теперь открыто в Обозреватель решений.

- Выберите Файл > Открыть > проект или решение в строке меню и выберите файл решения для открытия.

- Выбранное решение Visual Studio теперь открыто в Обозреватель решений.

- Щелкните правой кнопкой мыши репозиторий в представлении Подключиться Обозреватель команды и выберите открыть.

- В представлении Главнаяteam Обозреватель дважды щелкните файл решения в разделе Решения.

- Выбранное решение Visual Studio теперь открыто в Обозреватель решений.

В командной строке выполните следующую команду, чтобы открыть решение Visual Studio из клонированного репозитория. Эта команда не является командой Git.
start
start C:\Repos\FiberTests\FiberTests.sln6.3 GitHub — Сопровождение проекта
Теперь, когда вы комфортно себя чувствуете при участии в проекте, давайте посмотрим на другую сторону вопроса: создание, сопровождение и администрирование вашего собственного проекта.
Создание нового репозитория
Давайте создадим новый репозиторий для распространения кода нашего проекта. В панели управления справа нажмите кнопку «New repository» или воспользуйтесь кнопкой + на панели инструментов, рядом с вашим именем пользователя как показано на рисунке Выпадающее меню «New repository».

Рисунок 109. Раздел «Your repositories»

Рисунок 110. Выпадающее меню «New repository»
Это приведёт к открытию формы «New repository»:

Рисунок 111. Форма «new repository»
Всё, что в действительности нужно сделать, так это указать название проекта, все остальные поля опциональны. Сейчас, просто нажмите кнопку «Create Repository» и ваш новый репозиторий с названием / готов.
Так как в репозитории ещё нет кода, GitHub отобразит инструкции о том, как создать совершенно новый репозиторий или подключить существующий Git проект. Здесь мы не будем этого делать; если вам нужно освежить память, смотрите главу Основы Git.
Теперь ваш проект хостится на GitHub и вы можете предоставить ссылку на него любому желающему. Все проекты на GitHub доступны как по HTTP https://github.com// , так по SSH git@github.com:/ . Git может получать и отправлять изменения по обоим указанным ссылкам, при этом производится контроль доступа на основании учётных данных пользователя, осуществляющего подключение.
Примечание
Обычно, для общедоступного проекта предпочтительнее использовать HTTPS ссылки, так как это не требует наличия GitHub аккаунта для клонирования репозитория. При этом, для использования SSH ссылки у пользователя должен быть GitHub аккаунт и его SSH ключ должен быть добавлен в ваш проект. Так же HTTPS ссылка полностью совпадает с URL адресом, который пользователи могут вставить в браузер для просмотра вашего репозитория.
Добавление участников
Если вы работаете с другими людьми, которым вы хотите предоставить доступ для отправки коммитов, то вам следует добавить их как «участников». Если Бен, Джефф и Льюис зарегистрировались на GitHub и вы хотите разрешить им делать «push» в ваш репозиторий, то добавьте их в свой проект. Это предоставит им «push» доступ; это означает, что они будут иметь права доступа как на чтение, так и на запись в проект и Git репозиторий.
Перейдите по ссылке «Settings» в нижней части панели справа.

Рисунок 112. Ссылка на настройки репозитория
Затем выберите «Collaborators» в меню слева. Напишите имя пользователя в поле для ввода и нажмите кнопку «Add collaborator». Так вы можете добавить неограниченное количество пользователей. Чтобы отозвать доступ, просто нажмите «X» справа от имени пользователя.

Рисунок 113. Участники проекта
Управление запросами на слияние
Сейчас у вас есть проект с некоторым кодом и, возможно, несколько участников с «push» доступом, давайте рассмотрим ситуацию, когда вы получаете запрос на слияние.
Запрос на слияние может быть как из ветки вашего репозитория, так и из ветки форка вашего проекта. Отличаются они тем, что вы не можете отправлять изменения в ветки ответвлённого проекта, а его владельцы не могут отправлять в ваши, при этом для внутренних запросов на слияние характерно наличие доступа к ветке у обоих пользователей.
Для последующих примеров предположим, что вы «tonychacon» и создали новый проект для Arduino с названием «fade».
Email уведомления
Кто-то вносит изменения в ваш код и отправляет вам запрос на слияние. Вы должны получить письмо с уведомлением о новом запросе слияния, которое выглядит как на Email уведомление о новом запросе слияния.

Рисунок 114. Email уведомление о новом запросе слияния
Следует сказать о некоторых особенностях этого уведомления. В нём содержится краткая статистика отличий — количество изменений и список файлов, которые были изменены в этом запросе слияния, ссылка на страницу запроса слияния на GitHub, а так же несколько ссылок, которые вы можете использовать в командной строке.
Если вы видите строку с текстом git pull patch-1 , то это самый простой способ слить удалённую ветку без добавления удалённого репозитория. Это кратко описывалось в Извлечение удалённых веток. Если хотите, то можно сначала переключиться в тематическую ветку и только потом выполнить эту команду для изменений запроса слияния.
Другие ссылки, которые представляют интерес, это .diff и .patch ссылки. Как вы догадались, они указывают на версии унифицированной разницы и патча запроса слияния. Технически, вы можете слить изменения из запроса слияния командой:
$ curl https://github.com/tonychacon/fade/pull/1.patch | git amВзаимодействие по запросу слияния
Как описано в разделе Рабочий процесс с использованием GitHub главы 6, вы можете общаться с тем, кто открыл запрос на слияние. Вы можете добавлять комментарии к отдельным строкам кода, коммитам или ко всему запросу целиком, используя усовершенствованную разметку GitHub где угодно.
Каждый раз, когда кто-то другой оставляет комментарий к запросу слияния, вы будете получать email уведомления по каждому событию. Каждое уведомление будет содержать ссылку на страницу запроса слияния где была зафиксирована активность и, чтобы оставить комментарий в основной ветке запроса на слияние, вы можете просто ответить на это письмо.

Рисунок 115. Ответы на письма включены в диалог
Когда вы готовы слить код, вы можете стянуть его себе и слить локально, слить используя команду git pull , которую мы видели ранее, или добавив ответвлённый репозиторий как удалённый получить и слить изменения.
Если слияние тривиально, то можно просто нажать кнопку «Merge» на сайте GitHub. Это всегда приводит с созданию коммита слияния, даже если доступно слияние перемоткой вперёд. Это значит, что в любом случае создаётся коммит слияния, как только вы нажимаете кнопку «Merge». Как можно увидеть на Кнопка Merge и инструкции по ручному слиянию запроса, GitHub отображает информацию об этом при вызове подсказки.

Рисунок 116. Кнопка Merge и инструкции по ручному слиянию запроса
Если вы решаете не сливать запрос, то вы можете просто закрыть запрос на слияние, а открывший его участник будет уведомлен.
Ссылки на запрос слияния
Если у вас много запросов слияния и вы не хотите добавлять пачку удалённых репозиториев или постоянно делать однократный «pull», то у GitHub есть хитрый трюк, позволяющий это делать. Этот трюк очень сложный, но полезный и мы рассмотрим его немного позже в Спецификации ссылок.
Фактически, GitHub представляет ветки запросов слияния как псевдоветки на сервере. По умолчанию, они не копируются при клонировании, а существуют в замаскированном виде и вы можете легко получить доступ к ним.
В качестве примера мы используем низкоуровневую команду ls-remote (часто упоминается как «plumbing» команда, более подробно о ней будет рассказано в Сантехника и Фарфор). Обычно, эта команда не используется в повседневных Git операциях, но сейчас поможет нам увидеть какие ссылки присутствуют на сервере.
Если выполнить её относительно использованного ранее репозитория «blink», мы получим список всех веток, тегов и прочих ссылок в репозитории.
$ git ls-remote https://github.com/schacon/blink 10d539600d86723087810ec636870a504f4fee4d HEAD 10d539600d86723087810ec636870a504f4fee4d refs/heads/master 6a83107c62950be9453aac297bb0193fd743cd6e refs/pull/1/head afe83c2d1a70674c9505cc1d8b7d380d5e076ed3 refs/pull/1/merge 3c8d735ee16296c242be7a9742ebfbc2665adec1 refs/pull/2/head 15c9f4f80973a2758462ab2066b6ad9fe8dcf03d refs/pull/2/merge a5a7751a33b7e86c5e9bb07b26001bb17d775d1a refs/pull/4/head 31a45fc257e8433c8d8804e3e848cf61c9d3166c refs/pull/4/mergeАналогично, если вы, находясь в своём репозитории, выполните команду git ls-remote origin или укажете любой другой удалённый репозиторий, то результат будет схожим.
Если репозиторий находится на GitHub и существуют открытые запросы слияния, то эти ссылки будут отображены с префиксами refs/pull/ . По сути это ветки, но так как они находятся не в refs/heads/ , то они не копируются при клонировании или получении изменений с сервера — процесс получения изменений игнорирует их по умолчанию.
Для каждого запроса слияния существует две ссылки, одна из которых записана в /head и указывает на последний коммит в ветке запроса на слияние. Таким образом, если кто-то открывает запрос на слияние в наш репозиторий из своей ветки bug-fix , которая указывает на коммит a5a775 , то в нашем репозитории не будет ветки bug-fix (так как она находится в форке), при этом у нас появится pull//head , которая указывает на a5a775 . Это означает, что мы можем стянуть все ветки запросов слияния одной командой не добавляя набор удалённых репозиториев.
Теперь можно получить ссылки напрямую.
$ git fetch origin refs/pull/958/head From https://github.com/libgit2/libgit2 * branch refs/pull/958/head -> FETCH_HEADЭта команда указывает Git: «Подключись к origin репозиторию и скачай ссылку refs/pull/958/head ». Git с радостью слушается и выкачивает всё необходимое для построения указанной ссылки, а так же устанавливает указатель на коммит в .git/FETCH_HEAD . Далее, вы можете слить изменения в нужную ветку при помощи команды git merge FETCH_HEAD , однако сообщение коммита слияния будет выглядеть немного странно. Так же это становится утомительным, если вы просматриваете много запросов на слияние.
Существует способ получать все запросы слияния и поддерживать их в актуальном состоянии при подключении к удалённому репозиторию. Откройте файл .git/config в текстовом редакторе и обратите внимание на секцию удалённого репозитория origin . Она должна выглядеть как-то так:
[remote "origin"] url = https://github.com/libgit2/libgit2 fetch = +refs/heads/*:refs/remotes/origin/*Строка, начинающаяся с fetch = , является спецификацией ссылок («refspec»). Это способ сопоставить названия в удалённом репозитории с названиями в локальном каталоге .git . Конкретно эта строка говорит Git: «все объекты удалённого репозитория из refs/heads должны сохраняться локально в refs/remotes/origin ». Вы можете изменить это поведение добавив ещё одну строку спецификации:
[remote "origin"] url = https://github.com/libgit2/libgit2.git fetch = +refs/heads/*:refs/remotes/origin/* fetch = +refs/pull/*/head:refs/remotes/origin/pr/*Последняя строка говорит Git: «Все ссылки, похожие на refs/pull/123/head , должны быть сохранены локально как refs/remotes/origin/pr/123 ». Теперь, если сохранить файл и выполнить команду git fetch , вы получите:
$ git fetch # … * [new ref] refs/pull/1/head -> origin/pr/1 * [new ref] refs/pull/2/head -> origin/pr/2 * [new ref] refs/pull/4/head -> origin/pr/4 # …Все запросы слияния из удалённого репозитория представлены в локальном репозитории как ветки слежения; они только для чтения и обновляются каждый раз при выполнении git fetch . Таким образом, локальное тестирование кода запроса слияния становится очень простым:
$ git checkout pr/2 Checking out files: 100% (3769/3769), done. Branch pr/2 set up to track remote branch pr/2 from origin. Switched to a new branch 'pr/2'Особо внимательные из вас заметили head в конце спецификации, относящейся к удалённому репозиторию. Так же на стороне GitHub существует ссылка refs/pull/#/merge , которая представляет коммит, формируемый при нажатии кнопки «merge» на сайте. Это позволяет вам протестировать слияние перед нажатием этой кнопки.
Запросы слияния на запросы слияния
Вы можете открыть запрос слияния не только в ветку master , запросы слияния могут указывать на любую ветку любого репозитория в сети. По сути, вы можете даже открыть запрос слияния, указывающий на другой запрос слияния.
Если вы видите толковый запрос слияния и у вас есть идея как его улучшить или вы не уверены, что это хорошая идея, или у вас просто нет прав записи в целевую ветку, то в таком случае вы можете открыть запрос слияния, указывающий на данный запрос.
При открытии запроса на слияние вверху страницы вы увидите меню для выбора целевой и исходной веток. Если нажать кнопку Edit справа, то станет доступным выбор не только исходной ветки, а ещё и форка.

Рисунок 117. Ручное изменение форка и ветки для запроса слияния
Здесь можно указать вашу новую ветку для слияния с другим запросом слияния или другим форком проекта.
Упоминания и уведомления
GitHub обладает отличной встроенной системой уведомлений, которая может пригодиться для решения вопросов или получения обратной связи от конкретных людей или команд.
В любом комментарии можно написать символ @ , что автоматически вызовет список автодополнения с именами пользователей, которые включены в проект или просто участвуют в нём.

Рисунок 118. Напишите @ для упоминания кого-либо
Так же можно упомянуть пользователя, не указанного в выпадающем списке, но с помощью автодополнения это можно сделать быстрее.
Как только вы оставите комментарий с упоминанием пользователя, ему будет отправлено уведомление. Таким образом, можно более эффективно вовлекать пользователей в обсуждение, не опрашивая их непосредственно. Очень часто в запросах слияния на GitHub пользователи приглашают других людей в свои команды или компании для рецензии проблем или запросов слияния.
Если кто-то будет упомянут в запросе слияния или проблеме, то он автоматически «подписывается» и будет получать уведомления о последующей активности. Вы так же будете подписаны на некоторые уведомления если просто откроете запрос слияния или проблему, станете отслеживать репозиторий или если оставите комментарий. Для прекращения отправки вам уведомлений нажмите кнопку «Unsubscribe».

Рисунок 119. Отказ от подписки на проблему или запрос слияния
Страница уведомлений
Когда мы говорим «уведомления» в контексте GitHub, мы имеем ввиду способ, которым GitHub пытается связаться с вами в случае возникновения каких-либо событий, настроить который можно несколькими способами. Для просмотра настроек уведомлений перейдите на закладку «Notification center» на странице настроек.

Рисунок 120. Настройки центра уведомлений
Доступны два вида уведомлений: посредствам «Email» и «Web». Вы можете выбрать один, ни одного или оба, если активно участвуете в событиях отслеживаемых репозиториев.
Web уведомления
Такие уведомления существуют только на GitHub и посмотреть их можно только на GitHub. Если эта опция включена у вас в настройках и уведомление сработало для вас, то вы увидите небольшую синюю точку на иконке уведомлений вверху экрана, как показано на рисунке Центр уведомлений.

Рисунок 121. Центр уведомлений
Кликнув по иконке, вы увидите список всех уведомлений, сгруппированных по проектам. Вы можете фильтровать уведомления по конкретному проекту, кликнув по его названию на боковой панели слева. Так же вы можете подтверждать получение уведомлений, кликнув по галочке рядом с любым из уведомлений, или подтвердить все уведомления по проекту, кликнув по галочке в шапке группы. После каждой галочки так же есть кнопка отключения, кликнув по которой вы перестанете получать уведомления по данному элементу.
Эти инструменты очень полезны при обработке большого числа уведомлений. Продвинутые пользователи GitHub полностью отключают email уведомления и пользуются этой страницей.
Email уведомления
Email уведомления — это ещё один способ, которым вы можете получать уведомления от GitHub. Если эта опция включена, то вы будете получать по письму на каждое уведомление. Примеры вы видели в разделах Комментарии, отправленные по электронной почте и Email уведомление о новом запросе слияния. Письма объединяются в цепочки, что очень удобно при использовании соответствующего почтового клиента.
GitHub включает много дополнительных метаданных в заголовки каждого письма, что полезно при настройке различных фильтров и правил сортировки.
Например, если взглянуть на заголовки письма, отправленного Тони в примере Email уведомление о новом запросе слияния, то можно увидеть следующее:
To: tonychacon/fade Message-ID: Subject: [fade] Wait longer to see the dimming effect better (#1) X-GitHub-Recipient: tonychacon List-ID: tonychacon/fade List-Archive: https://github.com/tonychacon/fade List-Post: List-Unsubscribe: . X-GitHub-Recipient-Address: tchacon@example.comЗдесь можно увидеть несколько интересных вещей. Если вы хотите выделить или перенаправить письма конкретного проекта или запроса на слияние, то информация, содержащаяся в заголовке Message-ID , предоставляет вам соответствующие сведения в формате /// . Для задачи вместо «pull» будет указано «issues».
Заголовки List-Post и List-Unsubscribe , при наличии у вас почтового клиента, который их понимает, позволяют легко написать в список рассылки или отписаться от неё. Это то же самое, что и нажать кнопку «mute» в веб версии уведомлений или «Unsubscribe» на странице задачи или запроса на слияние.
Если включены оба типа уведомлений и ваш почтовый клиент отображает картинки, то при просмотре email версии уведомления, веб версия так же будет отмечена как прочитанная.
Особенные файлы
Существует несколько особенных файлов, которые GitHub заметит при наличии их в вашем репозитории.
README
Первый — это файл README , он может быть в любом формате, который GitHub в состоянии распознать. Например, это может быть README , README.md , README.asciidoc и так далее. Если GitHub увидит такой файл в вашем исходном коде, то отобразит его на заглавной странице проекта.
Большинство команд используют его для поддержания актуальной информации о проекте для новичков. Как правило, он включает следующее:
- Для чего предназначен проект
- Инструкции по конфигурации и установке
- Примеры использования
- Используемую лицензию
- Правила участия в проекте
В этот файл можно встраивать изображения или ссылки для простоты восприятия информации.
CONTRIBUTING
Следующий файл — это CONTRIBUTING . Если в вашем репозитории будет файл CONTRIBUTING с любым расширением, то GitHub будет показывать ссылку на него при создании любого запроса на слияние.

Рисунок 122. Создание запроса на слияние при наличии файла CONTRIBUTING
Идея состоит в том, что вы можете указать конкретные вещи, которые вы хотите или не хотите видеть в новых запросах на слияние. Таким образом люди могут ознакомится с руководством, перед тем как создавать новый запрос на слияние.
Управление проектом
Для одного проекта не так уж и много администраторских действий, но есть несколько стоящих внимания.
Изменение основной ветки
Если вы используете в качестве основной другую ветку, отличную от «master», и хотите, чтобы пользователи открывали запросы на слияние к ней, то это можно изменить в настройках репозитория на закладке «Options».

Рисунок 123. Изменение основной ветки проекта
Просто выберите нужную ветку из выпадающего меню и она станет основной для большинства операций, включая извлечение кода при клонировании репозитория.
Передача проекта
Если вы хотите передать проект другому пользователю или организации на GitHub, то это можно сделать нажатием кнопки «Transfer ownership» в настройках репозитория на закладке «Options».

Рисунок 124. Передача проекта другому пользователю или организации на GitHub
Эта опция полезна, когда вы хотите отказаться от проекта, а кто-то другой хочет им заниматься, или когда ваш проект растёт и вы хотите передать его какой-нибудь организации.
Это действие приведёт не только к передаче репозитория со всеми его подписчиками и звёздами, но и добавит перенаправление с вашего URL на новый. Кроме этого, изменятся ссылки для клонирования и получения изменений из Git, а не только для веб запросов.
