Открытие репозитория Github в Visual Studio Code: подробная инструкция
Узнайте, как открыть репозиторий github в Visual Studio Code с помощью наглядной инструкции. Подробные шаги и полезные советы для удобной работы с вашим проектом.
GitHub — это один из самых популярных сервисов онлайн-хранилища для проектов на базе Git. Каждый день тысячи разработчиков используют его для совместной работы над проектами. Большинство из них предпочитает работать в своих любимых IDE, поэтому появилась возможность открыть репозиторий GitHub напрямую в Visual Studio Code.
Visual Studio Code (VS Code) — это бесплатный редактор кода, с открытым исходным кодом, который создан Microsoft. Он поддерживает работу со многими языками программирования и имеет множество полезных расширений. Открытие репозитория GitHub в VS Code позволяет разработчикам легко редактировать файлы проекта и выполнять операции Git, не выходя из редактора кода.
В этой статье мы расскажем, как открыть репозиторий GitHub в Visual Studio Code шаг за шагом. Также мы рассмотрим, как использовать различные функции, которые доступны разработчикам при работе с репозиториями GitHub в VS Code. Вы узнаете, как клонировать репозиторий, изменять файлы, создавать коммиты и многое другое.
Установка Visual Studio Code
Прежде чем открыть репозиторий GitHub в Visual Studio Code, необходимо установить саму среду разработки.
Visual Studio Code можно скачать бесплатно на официальном сайте https://code.visualstudio.com/. При установке необходимо выбрать версию программы, соответствующую операционной системе на компьютере.
Для операционной системы Windows доступны две версии: 32-битная и 64-битная. Если не уверены в возможности установки 64-битной версии, рекомендуется выбрать 32-битную версию.
Читать далее«Знак больше и меньше в математике: картинки и уроки для понимания направления» — Научитесь правильно использовать знаки больше и меньше в математике с помощью понятных картинок и подробных уроков. Узнайте, в какую сторону обращается каждый из этих знаков и как это влияет на решение уравнений и неравенств.
Для пользователей Mac и Linux также доступны соответствующие версии программы.
После установки Visual Studio Code можно приступать к открытию репозитория GitHub и работе с ним.
Регистрация на GitHub
GitHub — это онлайн-платформа для хранения, совместной работы и публикации кода. Чтобы получить доступ к репозиториям и создавать свои проекты, необходима регистрация на сайте.
- Перейдите на официальный сайт GitHub.
- Нажмите на кнопку «Sign up» на верхней правой части экрана.
- Введите свое имя, адрес электронной почты и пароль в соответствующие поля.
- Нажмите на кнопку «Create an account».
- Проверьте свой почтовый ящик и подтвердите свою учетную запись, следуя ссылке в письме от GitHub.
После подтверждения вашей учетной записи вы сможете создавать свои проекты, форкать и клонировать чужие проекты, а также вносить свои изменения и делать запросы на их включение в основной репозиторий.
Создание репозитория в GitHub
GitHub – это платформа для хранения, управления и совместной работы над проектами с использованием системы контроля версий Git. Для того чтобы начать работать с GitHub, необходимо создать репозиторий.
Для создания репозитория на сайте GitHub нужно выполнить следующие шаги:
- 1. Зайти на свой аккаунт на сайте GitHub.
- 2. Нажать кнопку «New» в верхнем левом углу.
- 3. В поле «Repository name» ввести название репозитория.
- 4. Опционально: добавить краткое описание репозитория.
- 5. Выбрать видимость репозитория (публичный или приватный).
- 6. Выбрать лицензию для проекта, если необходимо.
- 7. Нажать кнопку «Create repository».
После выполнения этих шагов, репозиторий будет создан и готов к использованию. Репозиторий можно использовать для хранения кода, документации, изображений и других файлов. Также, репозиторий можно редактировать, удалять или делать его доступным для других пользователей.
Установка Git на компьютер
Git – это популярная распределенная система контроля версий, которая позволяет отслеживать изменения в исходных кодах и работать с ними. Прежде чем начать работу с Git в Visual Studio Code, необходимо установить Git на компьютер.
Читать далее«Как центрировать заголовок на сайте: правила установки в HTML» — в формате Как центрировать заголовок на сайте: правила установки в HTML.
Шаг 1. Перейдите на официальный сайт Git (https://git-scm.com/) и скачайте установочный файл подходящей версии для вашей операционной системы. Для Windows можно использовать установщик Git for Windows.
Шаг 2. Запустите установочный файл и следуйте указаниям мастера установки. Выберите опции по умолчанию или настройте Git по своему усмотрению.
Шаг 3. После завершения установки запустите командную строку или терминал и введите команду git —version. Если Git установлен правильно, то вы увидите сообщение с версией Git.
Теперь у вас установлена последняя версия Git, и вы готовы работать с ней в Visual Studio Code.
Подключение GitHub к Visual Studio Code

Чтобы начать работать с GitHub в Visual Studio Code, нужно сначала подключить свой аккаунт. Для этого нужно выполнить несколько простых шагов.
Первым делом необходимо зарегистрироваться на сайте github.com, если это еще не сделано. Затем нужно зайти в свой аккаунт и создать новый репозиторий, в котором будет сохраняться работа.
Далее в Visual Studio Code нужно открыть панель управления при помощи комбинации клавиш ctrl+shift+P (или cmd+shift+P на Mac), и ввести в поисковую строку «Git: Clone». Выбрать эту опцию из списка и ввести URL репозитория — это может быть ссылка на репозиторий, который вы создали на сайте GitHub.
Visual Studio Code попросит вас ввести свои учетные данные GitHub, если вы этого еще не сделали. Затем вы сможете работать с вашим репозиторием, коммитить изменения и делать push.
Также в Visual Studio Code есть возможность создать новый репозиторий прямо из программы. Для этого нужно открыть папку, в которой вы хотите создать новый репозиторий, и затем выбрать «Git: Initialize Repository» в панели команд.
После этого нужно ввести название репозитория и сохранить его. Затем вы сможете добавлять файлы и коммитить изменения прямо в Visual Studio Code и делать push на GitHub.
Клонирование репозитория в Visual Studio Code

Шаг 1: Откройте Visual Studio Code и нажмите на кнопку «Клонировать репозиторий» на стартовом экране программы или выберите команду «Клонировать репозиторий» из меню «Файл».
Шаг 2: Введите URL адрес репозитория в поле «URL репозитория», выберите путь расположения клонированного репозитория на вашем компьютере и нажмите на кнопку «Клонировать».
Шаг 3: Если репозиторий находится в защищенном режиме, вам может понадобиться ввести свои учетные данные GitHub.
Шаг 4: После успешного клонирования репозитория в Visual Studio Code откроется панель «Исследователь», где вы можете просмотреть файлы и папки в вашем репозитории.
Шаг 5: Для работы с клонированным репозиторием в Visual Studio Code вы можете использовать функции управления версиями, а также создавать и редактировать файлы.
Шаг 6: Если вы хотите получить обновления из репозитория, вы можете выбрать команду «Извлечь» из меню «Файл» или используйте соответствующую команду в панели управления версиями.
Шаг 7: Все изменения в репозитории, сделанные через Visual Studio Code, будут сохранены в Git и могут быть отправлены обратно в репозиторий с помощью команды «Зафиксировать и опубликовать» в панели управления версиями.
Вывод

Клонирование репозитория в Visual Studio Code дает вам возможность работать с Git-репозиторием непосредственно из вашего любимого редактора кода. Это удобно и просто в использовании, а также позволяет управлять версиями вашего кода и сотрудничать с другими программистами.
Создание и отслеживание изменений в файле
Когда вы создаете новый файл в своем проекте, вы можете добавить его в репозиторий, чтобы отслеживать изменения в файле. Также можно отслеживать изменения в уже существующих файлах.
Для начала добавления нового файла в репозиторий откройте панель «Explorer» в Visual Studio Code и выберите папку проекта, в которой хотите создать файл. Нажмите правой кнопкой мыши на папке и выберите «New File». Введите название файла и начните его заполнение.
Чтобы отслеживать изменения в файле, вы должны добавить его в Git. Для этого откройте панель «Source Control» и выберите «Git». После этого нажмите на значок «Плюс» и выберите созданный вами файл.
Теперь вы можете сохранить файл и сделать коммит. Для этого нажмите на значок «Галочки» на панели «Source Control». Вы увидите всплывающее окно «Сообщение коммита». Введите описание изменений, внесенных в файл, и нажмите «Галочку» для сохранения изменений и создания коммита.
Когда вы вносите новые изменения в файл, Visual Studio Code автоматически отслеживает их и вы можете коммитить изменения на систему контроля версий Git. Для этого перейдите к вкладке «Source Control», выберите изменения, которые вы хотите добавить в коммит, и нажмите на значок «Галочки».
Чтобы отменить изменения в файле, которые вы не хотите коммитить, выберите файл в «Explorer», правой кнопкой мыши нажмите на файл и выберите «Discard Changes».
Также можно отслеживать изменения в файлах, которые уже существуют в репозитории. Для этого в «Explorer» выберите файл, щелкните правой кнопкой мыши и выберите «Add to Git». Затем выполните необходимые действия, чтобы сохранить изменения в файле.
Загрузка изменений на GitHub
После внесения изменений в проект необходимо загрузить их на GitHub, чтобы они были доступны другим пользователям. Для этого можно использовать команду push, которая отправляет все коммиты на удаленный репозиторий на GitHub.
Чтобы загрузить изменения, нужно выполнить следующие шаги:
- Открыть терминал в Visual Studio Code;
- Перейти в директорию проекта;
- Выполнить команду git add для добавления изменений в индекс;
- Выполнить команду git commit для создания нового коммита.
- Выполнить команду git push origin master, чтобы отправить изменения на GitHub.
Если изменения в проекте уже были отправлены на GitHub, то при повторном выполнении команды push возможны конфликты с удаленным репозиторием. В таком случае нужно выполнить команду pull, чтобы получить изменения с GitHub и решить конфликты.
Загрузка изменений на GitHub очень важна, так как позволяет хранить информацию о версиях проекта и делиться с другими пользователями. Поэтому не забывайте выполнять команду push после каждого изменения в проекте.
Внесение изменений в удаленный репозиторий на GitHub

После того, как вы создали ветку и внесли изменения, необходимо отправить их в удаленный репозиторий на GitHub. Чтобы сделать это, необходимо выполнить несколько простых шагов.
- Откройте терминал и введите команду git add ., чтобы добавить все изменения в staging area.
- Введите команду git commit -m «Описание изменений», чтобы закоммитить изменения.
- Введите команду git push origin название_ветки, чтобы отправить изменения в удаленный репозиторий. Если вы работаете с master веткой, то вместо названия ветки нужно указать master.
После того, как вы успешно отправили изменения в удаленный репозиторий, вы можете увидеть их в соответствующей ветке на GitHub. Если вы работаете в команде, не забудьте предупредить своих коллег о том, что вы внесли изменения, и они смогут получить обновленную версию репозитория.
Работа с ветками в Visual Studio Code

В терминале Visual Studio Code можно создать, переключаться, склонировать и удалять ветки. Для этого нужно открыть терминал, перейти в нужную директорию с помощью команды «cd», а затем использовать одну из следующих команд:
- git branch — команда показывает список локальных веток и текущую ветку, которая окрашена звездочкой.
- git branch name_of_branch — команда создает новую ветку с указанным именем.
- git checkout name_of_branch — команда переключает текущую ветку на указанную.
- git clone -b name_of_branch url_of_repository — команда клонирует репозиторий с указанной веткой.
- git branch -d name_of_branch — команда удаляет указанную ветку.
В Visual Studio Code также есть встроенный инструмент для работы с ветками. Для этого нужно нажать кнопку «Source Control» в левой панели и выбрать вкладку «Branches». Здесь можно увидеть список доступных веток, создать новую ветку, переключить текущую и удалить ненужные ветки.
Работая с ветками, нужно помнить об их основной функции — изоляции изменений. Также важно не забывать сливать ветки с помощью команды «git merge» для сохранения всех изменений.
Вопрос-ответ:
Что такое репозиторий GitHub?
GitHub — это хостинговый сервис, который позволяет создавать репозитории для хранения кода. В этих репозиториях вы можете создавать, редактировать, комментировать и делиться своим кодом с другими участниками проекта.
Какие языки программирования поддерживает GitHub?
GitHub поддерживает множество языков программирования, включая Java, JavaScript, Python, Ruby, PHP, C++, C#, Objective C, Swift и многие другие.
Что такое Visual Studio Code?
Visual Studio Code — это бесплатный и открытый исходный код редактор кода (IDE) от Microsoft. Он поддерживает множество языков программирования и позволяет работать с различными платформами.
Можно ли работать с репозиторием GitHub без Visual Studio Code?
Да, можно. GitHub предоставляет свой собственный веб-интерфейс, который позволяет просматривать, редактировать и загружать файлы на репозиторий. Также вы можете использовать другие IDE или редакторы кода для работы с вашим репозиторием.
Работа с конфликтами в Git
Конфликты в Git возникают тогда, когда несколько разработчиков изменяют один и тот же файл. Также конфликты могут возникать, когда один и тот же разработчик вносит изменения в разные ветки одну и ту же строку кода.
Чтобы разрешить конфликт, необходимо пройти следующие шаги:
- Вывести список файлов, которые содержат конфликты: git status.
- Открыть файл, содержащий конфликт, в редакторе кода.
- Найти места, где ошибка возникает. Изменить код на правильную версию.
- Сохранить изменения.
- Добавить изменения в индекс: git add [имя файла].
- Сделать коммит: git commit -m «Сообщение коммита».
Если конфликты возникают при слиянии веток, можно воспользоваться командой git merge. Git автоматически попытается произвести слияние файлов, а если конфликты все же возникнут, необходимо вручную их решить с помощью описанной выше процедуры.
Важно понимать, что дисциплинированность в работе с Git и правильная работа с конфликтами — это ключевые компоненты успешного управления проектом с помощью Git.
Начало работы с Git в Azure Repos
Приступите к разработке кода с помощью репозиториев Azure Repos и Git. Команды Visual Studio или Git можно использовать для клонирования репозитория, определения локальных ветвей, фиксации и отправки изменений, а также синхронизации с другими пользователями. Если вам нужно создать или импортировать репозиторий, см. статью Создание репозитория Git в проекте или Импорт репозитория Git.
В этой статье описывается, как использовать Visual Studio для управления репозиториями Azure Repos Git. С помощью аналогичных процедур можно использовать Visual Studio для управления репозиториями GitHub. Чтобы клонировать репозиторий GitHub, получите URL-адрес, как описано в разделе Клонирование репозитория.
Общие сведения о рабочем процессе Git см. в руководстве по Azure Repos Git.
Visual Studio 2019 версии 16.8 и более поздних версий предоставляет новое меню Git для управления рабочим процессом Git с меньшим переключением контекста, чем команда Обозреватель. Процедуры, приведенные в этой статье на вкладке Visual Studio, предоставляют сведения об использовании интерфейса Git, а также Обозреватель команды. Дополнительные сведения см. в статье Параллельное сравнение Git и Обозреватель команды.
Предварительные требования
- Репозитории должны быть включены в параметрах проекта Azure DevOps. Если центр Repos и связанные страницы не отображаются, см. статью Включение или отключение службы Azure DevOps для повторного включения Репозиториев.
- Для просмотра кода в частных проектах необходимо быть участником проекта Azure DevOps с уровнем доступа «Базовый» или выше. Для общедоступных проектов каждый может просмотреть код.
- Если у вас нет проекта, создайте его или зарегистрируйтесь бесплатно.
- Если вы не участник проекта, добавьте его.
Примечание Для общедоступных проектов пользователи, которым предоставлен доступ заинтересованных лиц, имеют полный доступ к Azure Repos.
- Репозитории должны быть включены в параметрах проекта Azure DevOps. Если центр Repos и связанные страницы не отображаются, см. статью Включение или отключение службы Azure DevOps для повторного включения Репозиториев.
- Чтобы просмотреть код, необходимо быть участником проекта Azure DevOps с доступом уровня «Базовый» или выше. Если вы не участник проекта, добавьте его.
- Для клонирования или участия в коде необходимо быть членом группы безопасности «Участники» или иметь соответствующие разрешения в проекте, который требуется изменить.
- Для просмотра кода необходимо быть участником проекта Azure DevOps с доступом уровня «Базовый» или выше. Если вы не участник проекта, добавьте его.
- Чтобы клонировать код или внести свой вклад в него, необходимо быть членом группы безопасности «Участники» или иметь соответствующие разрешения.
Дополнительные сведения о разрешениях и доступе см. в разделах Разрешения репозитория и ветви Git по умолчанию и Сведения об уровнях доступа.
Получение кода
Вы можете клонировать удаленный репозиторий Git, чтобы создать его локальную копию. При клонировании создается как копия исходного кода, с которым можно работать, так и сведения об управлении версиями, чтобы Git могли управлять исходным кодом.
Если вы предпочитаете создавать локальный репозиторий без клонирования, см. статью Создание репозитория Git. После создания локального репозитория можно приступить к фиксации, совместному доступу и синхронизации работы.
- 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 в разделе Обзор параметров репозитория .

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

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

- В окне Клонирование репозитория введите расположение удаленного репозитория и путь к папке клонированного репозитория. Если вы не знаете расположение удаленного репозитория, выберите Azure DevOps в разделе Обзор параметров репозитория .

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

При использовании Azure DevOps Services URL-адрес проекта имеет dev.azure.com// формат . Однако предыдущий формат, ссылающийся на этот формат, по-прежнему visualstudio.com поддерживается. Дополнительные сведения см. в статье Знакомство с Azure DevOps. Переключение существующих организаций на использование нового URL-адреса доменного имени.
Visual Studio 2019 версии 16.8 и более поздних версий предоставляет возможности управления версиями Git при сохранении пользовательского интерфейса Team Обозреватель Git. Вы можете использовать функции Git из любого интерфейса взаимозаменяемо.
Одним из преимуществ подключения к проекту через Team Обозреватель является доступ к центру «Рабочие элементы». Общие сведения о функциях team Обозреватель см. в статье Навигация в Visual Studio Team Обозреватель.
- В командной Обозреватель выберите Подключить, чтобы открыть страницу Подключение, а затем выберите Управление подключениями>Подключиться к проекту.

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

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

- Скачайте и установите Git и диспетчер учетных данных Git для своей платформы.
- Откройте веб-портал Azure DevOps Services в браузере, перейдя по адресу https://.visualstudio.com .
- Откройте веб-портал Azure DevOps Services в браузере, перейдя к https://.visualstudio.com репозиторию Git и найдя его. Скопируйте URL-адрес клона из всплывающего окна Клонировать .
Примечание При использовании Azure DevOps Services URL-адрес проекта имеет dev.azure.com/
/ формат . Однако предыдущий формат, ссылающийся на этот формат, по-прежнему visualstudio.com поддерживается. Дополнительные сведения см. в статье Знакомство с Azure DevOps. Переключение существующих организаций на использование нового URL-адреса доменного имени. > git clone https://dev.azure.com/fabrikam-fiber/_git/FabrikamFiberФиксация работы
Ветви Git изолируют изменения от других работ в проекте. Рекомендуемый рабочий процесс Git — использовать новую ветвь для каждой функции или исправления, над чем вы работаете. Вы делаете фиксации в локальном репозитории Git, чтобы сохранить изменения в этой ветви.
- Visual Studio 2022
- Visual Studio 2019 — меню Git
- Visual Studio 2019 — Обозреватель команды
- Командная строка Git
- В меню Git в строке меню выберите Создать ветвь. , чтобы открыть окно Создание новой ветви .

- В окне Создать новую ветвь введите описательное имя ветви, чтобы сообщить другим пользователям, какую работу содержит ветвь. По умолчанию Visual Studio создает новую ветвь из текущей ветви. Если флажок Извлечь ветвь установлен, вы автоматически переключитесь на новую ветвь после ее создания. Нажмите кнопку создания.

- Добавьте файл README.md в клонированные репозитории. В Обозреватель решений можно просматривать содержимое репозитория с помощью представления папок или открывать решения Visual Studio в репозитории. Git отслеживает изменения, внесенные как внутри, так и за пределами Visual Studio.
- Если изменения удовлетворены, сохраните их в Git с помощью фиксации. В окне Изменения Git введите сообщение с описанием изменений, а затем выберите Зафиксировать все. Commit All фиксирует несегированные изменения и пропускает промежуточную область. Перед фиксацией можно выбрать этап для всех файлов, нажав кнопку Этап все + (плюс) в верхней части раздела Изменения в окне Изменений Git .
Щелкните ссылку сведения о фиксации, чтобы получить дополнительные сведения о фиксации. 
Если у вас несколько файлов и вы не хотите фиксировать их все, можно щелкнуть каждый файл правой кнопкой мыши и выбрать Этап. После промежуточной подготовки всех файлов, которые вы хотите зафиксировать, выберите Зафиксировать поэтапно. Commit Staged заменяет Commit All при подготовке изменений вручную.
- В меню Git в строке меню выберите Создать ветвь. , чтобы открыть окно Создание новой ветви .

- В окне Создать новую ветвь введите описательное имя ветви, чтобы сообщить другим пользователям, какую работу содержит ветвь. По умолчанию Visual Studio создает новую ветвь из текущей ветви. Если флажок Извлечь ветвь установлен, вы автоматически переключитесь на новую ветвь после ее создания. Нажмите кнопку создания.

- Добавьте файл README.md в клонированные репозитории. В Обозреватель решений можно просматривать содержимое репозитория с помощью представления папок или открывать решения Visual Studio в репозитории. Git отслеживает изменения, внесенные как внутри, так и за пределами Visual Studio.
- Если изменения удовлетворены, сохраните их в Git с помощью фиксации. В окне Изменения Git введите сообщение с описанием изменений, а затем выберите Зафиксировать все. Commit All фиксирует несегированные изменения и пропускает промежуточную область. Перед фиксацией можно выбрать этап для всех файлов, нажав кнопку Этап все + (плюс) в верхней части раздела Изменения в окне Изменений Git .
Щелкните ссылку сведения о фиксации, чтобы получить дополнительные сведения о фиксации. 
Если у вас несколько файлов и вы не хотите фиксировать их все, можно щелкнуть каждый файл правой кнопкой мыши и выбрать Этап. После промежуточной подготовки всех файлов, которые вы хотите зафиксировать, выберите Зафиксировать поэтапно. Commit Staged заменяет Commit All при подготовке изменений вручную.
- В командной Обозреватель нажмите кнопку Домой и выберите Ветви.

- Щелкните правой кнопкой мыши ветвь по умолчанию ( часто именованный main ) и выберите Создать локальную ветвь из.

- Введите описательное имя ветви, чтобы другие знали, какую работу содержит ветвь. Выберите Создать ветвь.

- Добавьте файл README.md в клонированные репозитории. В представлении «Главная» команды Обозреватель можно просматривать содержимое репозитория с помощью команды Показать представление папок или открыть решения Visual Studio в репозитории. Git отслеживает изменения, внесенные как внутри, так и за пределами Visual Studio.
- Если изменения удовлетворены, сохраните их в Git с помощью фиксации. Откройте представление Изменениякоманды Обозреватель, нажав кнопку Домой и выбрав Изменения.

- Введите сообщение с описанием фиксации, а затем выберите Зафиксировать все.

Если у вас несколько файлов и вы не хотите фиксировать их все, можно щелкнуть каждый файл правой кнопкой мыши и выбрать Этап. После промежуточной подготовки всех файлов, которые вы хотите зафиксировать, выберите Зафиксировать поэтапно. Commit Staged заменяет Commit All при подготовке изменений вручную.
- Создайте ветвь, в которой вы вносите изменения в код. Если вы сотрудничаете с кем-то с помощью созданной ими ветви, можно перейти к следующему git checkout шагу.
> git branch ReadMeFix> git checkout ReadMeFix> git commit -a -m "Descriptive message"предоставьте к изменениям общий доступ;
После добавления одной или нескольких фиксаций в ветвь и готовности поделиться этими изменениями с другими пользователями, отправьте фиксации, чтобы другие могли их видеть.
После отправки фиксаций можно создать запрос на вытягивание. Запрос на вытягивание сообщает другим пользователям, что вы хотите проверить изменения. После утверждения запрос на вытягивание обычно добавляет изменения в ветвь по умолчанию удаленный репозиторий.
- Visual Studio 2022
- Visual Studio 2019 — меню Git
- Visual Studio 2019 — Обозреватель команды
- Командная строка Git
- В окне Изменения Git нажмите кнопку со стрелкой вверх, чтобы отправить фиксацию.
Кроме того, вы можете отправить изменения из окна репозитория Git . Чтобы открыть окно Репозиторий Git , в окне Изменения Git выберите исходящую или входящую ссылку.
Вы также можете отправить изменения из меню Git в строке меню. 
- Создайте запрос на вытягивание, чтобы другие пользователи могли просмотреть ваши изменения. Если вы только что добавили изменения из окна Изменения Git, щелкните ссылку Создать запрос на вытягивание, чтобы открыть веб-браузер, где можно создать новый запрос на вытягивание на веб-портале Azure Repos.
Или, если вы только что добавили изменения из окна репозитория Git , можно щелкнуть ссылку Создать запрос на вытягивание в верхней части этого окна.
Вы также можете щелкнуть правой кнопкой мыши любую ветвь в окне Репозиторий Git и выбрать Создать запрос на вытягивание. 
Когда запрос на вытягивание откроется на веб-портале Azure Repos, проверьте исходную и целевую ветви. В этом примере мы хотим объединить фиксации из ветви в add-readme-file ветвь main . Введите заголовок и необязательное описание, укажите всех рецензентов, при необходимости свяжите все рабочие элементы и нажмите кнопку Создать.

Дополнительные сведения о запросах на вытягивание см. в руководстве по запросам на вытягивание .
- В окне Изменения Git нажмите кнопку со стрелкой вверх, чтобы отправить фиксацию.
Вы также можете отправить изменения из окна репозитория Git . Чтобы открыть окно Репозиторий Git , в окне Изменения Git выберите ссылку исходящие и входящие.
Вы также можете отправить изменения из меню Git в строке меню. 
- Создайте запрос на вытягивание, чтобы другие пользователи могли просмотреть ваши изменения. Если вы только что добавили изменения из окна Изменения Git, щелкните ссылку Создать запрос на вытягивание, чтобы открыть веб-браузер, где можно создать новый запрос на вытягивание на веб-портале Azure Repos.
Или, если вы только что добавили изменения из окна репозитория Git , можно щелкнуть ссылку Создать запрос на вытягивание в верхней части этого окна.
Вы также можете щелкнуть правой кнопкой мыши любую ветвь в окне Репозиторий Git и выбрать Создать запрос на вытягивание. 
Когда запрос на вытягивание откроется на веб-портале Azure Repos, проверьте исходную и целевую ветви. В этом примере мы хотим объединить фиксации из ветви в add-readme-file ветвь main . Введите заголовок и необязательное описание, укажите всех рецензентов, при необходимости свяжите все рабочие элементы и нажмите кнопку Создать.

Дополнительные сведения о запросах на вытягивание см. в руководстве по запросам на вытягивание .
- В командной Обозреватель выберите Главная, а затем Синхронизировать, чтобы открыть синхронизацию.
Вы также можете перейти в представление Синхронизация из раздела Изменения , выбрав Синхронизировать сразу после фиксации. 
- В представлении Синхронизация выберите Отправить , чтобы отправить фиксацию в удаленный репозиторий. Если это ваша первая отправка в репозиторий, вы увидите сообщение : The current branch does not track a remote branch. , которое сообщает, что фиксация была отправлена в новую ветвь в удаленном репозитории и что будущие фиксации, отправленные из текущей ветви, будут отправлены в эту удаленную ветвь.

- Создайте запрос на вытягивание, чтобы другие пользователи могли просмотреть ваши изменения. Откройте запросы на вытягивание в командной Обозреватель, выбрав Главная и выбрав Запросы на вытягивание.

- В разделе Запросы на вытягивание можно просматривать запросы на вытягивание, открытые вами, назначенные вам, и создавать новые запросы на вытягивание. Выберите Создать запрос на вытягивание, чтобы открыть веб-браузер, где можно создать новый запрос на вытягивание на веб-портале Azure Repos.

Когда запрос на вытягивание откроется на веб-портале Azure Repos, проверьте исходную и целевую ветви. В этом примере мы хотим объединить фиксации из ветви в add-readme-file ветвь main . Введите заголовок и необязательное описание, укажите всех рецензентов, при необходимости свяжите все рабочие элементы и нажмите кнопку Создать.

Дополнительные сведения о запросах на вытягивание см. в руководстве по запросам на вытягивание .
-
Отправьте ветвь, чтобы другие пользователи могли видеть сохраненные вами изменения.
> git push -u origin ReadMeFix - Откройте проект на веб-портале и перейдите к репозиторию на вкладке Код . Выберите Создать запрос на вытягивание , чтобы создать запрос на вытягивание для отправленной ветви.

- Проверьте ветви. В этом примере мы хотим объединить фиксации из ReadMeFix ветви в ветвь main . Введите заголовок и необязательное описание, укажите всех рецензентов, при необходимости свяжите все рабочие элементы и нажмите кнопку Создать.

- После утверждения изменений заполните запрос на вытягивание. Полный запрос на вытягивание добавляет изменения из ветви в ветвь main кода. Дополнительные сведения о запросах на вытягивание см. в руководстве по запросам на вытягивание .
- Visual Studio 2022
- Visual Studio 2019 — меню Git
- Visual Studio 2019 — командная Обозреватель
- Командная строка Git
- Fetch скачивает удаленные фиксации, которые не в вашей локальной ветви, но не объединяют их.
- Pull выполняет выборку, а затем объединяет загруженные фиксации в локальную ветвь.
- Принудительная отправка неотложенных фиксаций в удаленный репозиторий, которая добавляет их в соответствующую удаленную ветвь.
- Синхронизация выполняет вытягивание , а затем отправку.
- Fetch скачивает удаленные фиксации, которые не в вашей локальной ветви, но не объединяют их.
- Pull выполняет выборку, а затем объединяет загруженные фиксации в локальную ветвь.
- Принудительная отправка неотложенных фиксаций в удаленный репозиторий, которая добавляет их в соответствующую удаленную ветвь.
- Синхронизация выполняет вытягивание , а затем отправку.
- В командной Обозреватель выберите Главная и нажмите кнопку Синхронизировать, чтобы открыть синхронизацию.

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

- Перейдите в ветвь, в которую вы хотите скачать изменения, внесенные другими пользователями.
> git checkout ReadMeFix> git pullПохожие статьи
- Часто задаваемые вопросы по Git
- Интерфейс GIT в Visual Studio
- Параллельное сравнение Git и Team Explorer
Git — сравнение Visual Studio 2022 с MeGit/EGit и SourceTree

В этой статье мы сравним функциональность Git в IDE Visual Studio 2022 и в других клиентах Git с GUI. Git внутри VS2022 имеет упрощённый интерфейс по сравнению с некоторыми другими GUI-клиентами наподобие MeGit/EGit и SourceTree. Это привлекает многих разработчиков к платформе VS2022/Git, однако опытным пользователям дополнительно потребуются и другие инструменты.
1. Введение
Git интегрирован в IDE Visual Studio, начиная с версии 2019, а в версии 2022 он получил ещё больше возможностей и постепенно становится любимым инструментом для контроля версий в Visual Studio/Microsoft. В этой статье мы планируем рассмотреть базовые функции GUI-инструментов Git в VS2022.
▍ 1.1. GUI-клиент Git MeGit/EGit для сравнения
Я считаю, что автономный GUI-клиент Git MeGit/EGit [1] — это «правильный Git». Это GUI-инструмент Git, но из всех виденных мной GUI-инструментов Git он ближе всего к «философии и терминологии Git», а ещё мне нравится его поведение и внешний вид. Поэтому я буду использовать его как пример, чтобы лучше показать, как могут выглядеть GUI-опции по сравнению с GUI VS2022. Разумеется, настоящим примером должен быть интерфейс командной строки Git, но мне кажется, что в рамках этой статьи сравнивать с ним было бы слишком сложно. Правда в том, что ни один GUI-инструмент Git не может предоставить всех опций, имеющихся у интерфейса командной строки Git. Но справедливо и то, что пользователю, вероятно не потребуются все эти опции для повседневной работы. Например, я уже много лет работаю с TFS и делаю всё из GUI; при этом мне ни разу не приходилось использовать командную строку TFS [2] .

▍ 1.2. Философия Git в VS2022
Изучив GUI-интерфейс Git в VS2022, я пришёл к выводу, что его разработчики имели собственное мнение о том, как должен выглядеть Git. Похоже, они не хотели следовать философии Git во всех подробностях как, например, разработчики MeGit/EGit. Кажется, они думали, что все грязные подробности Git следует максимально скрыть от разработчиков; интерфейс пользователя упростился настолько, чтобы разработчики без знаний Git, имеющие лишь базовые знания концепции контроля версий, могли пользоваться им и коммитить свою работу локально и на сервер контроля версий. Возможно, это был умный подход, благодаря простоте изучения быстро привлёкший к платформе VS2022/Git множество пользователей/разработчиков. Однако некоторым опытным пользователям Git может не хватать некоторых инструментов/опций или может показаться, что Git реализован неправильно.

▍ 1.3 GUI-клиент Git SourceTree для сравнения
Приложение Atlassian SourceTree [3] — это ещё один популярный GUI-клиент Git. Мы покажем, как его панели выглядят по сравнению с VS2022 в одних и тех же операциях. Мы считаем, что MeGit/EGit чуть более мощен и больше соответствует «философии работы Git». Разработчики SourceTree, аналогично разработчикам VS2022, решили сокрыть часть «внутренностей Git», например, информацию HEAD и Refs. Тем не менее, приложение отображает больше информации, чем VS2022.

▍ 1.4 Git не интуитивен для обучения
Я уверен, что многие разработчики попробуют «проложить себе дорогу к Git», просто осваивая GUI-опции Git в VS2022, особенно те, кто пришли с других систем контроля версий, например TFS. И до определённого уровня это сработает, поскольку VS2022 намеренно скрывает некоторые концепции Git, например, staging файлов (обычно пользователи TFS задаются вопросом: что такое staging и зачем он нужен?). Но я считаю, что рано или поздно вам придётся прочитать какую-нибудь книгу по Git, потому что он имеет собственную терминологию и философию, и если у вас когда-нибудь возникнет нерешаемая проблема с Git, то вам нужно будет точно знать, что делать и как правильно решить её. Если вы учитесь при помощи освоения GUI-инструментов, то для изучения Git я рекомендую поэкспериментировать с MeGit/EGit, поскольку так вы увидите больше подробностей, которые намеренно скрывает от вас VS2022.
Это не туториал по Git
Статья не задумывалась как туториал по Git. Она предназначена для разработчиков, имеющих некоторые познания в Git и желающих увидеть, как Git выглядит сегодня в IDE VS2022.2. VS2022 против MeGit
▍ 2.1. Методология тестирования
Мы рассмотрим один и тот же репозиторий Git из четырёх инструментов: VS2022, MeGIt, SourceTree и GitBash.
Мы локально создали проект простого приложения на C# и выбрали в качестве удалённого репозитория GitHub.

Тестирование выполнялось со следующей версией Visual Studio:

▍ 2.2. Просмотр истории коммитов в репозиторий
Одна из базовых и важных функций: просмотр пользователями содержимого их репозитория.
❒ 2.2.1. История из GitBash
Команда Git git log отображает лог всех коммитов.
Вот все коммиты текущей ветки master .

Вот коммиты всех веток с текущей веткой master .

Вот «граф», который может создавать GitBash — все коммиты всех веток с текущей веткой master .

❒ 2.2.2. История из MeGit
Вот соответствующий граф, создаваемый MeGit. Это красивая графическая визуализация.

Она выглядит аналогично «графу», создаваемому GitBash. Обратите внимание, что в графе GitBash содержалась дополнительная информация — местоположение создания «хранилища» (stash), коммит ac95254. MeGit может показать это местоположение, но только по запросу (при нажатии на конкретный stash).
❒ 2.2.3. История из VS2022
Я нашёл в VS2022 три графа истории, и все они были хуже, чем даже граф Git командной строки. Похоже, разработчики не особо беспокоились о его реализации. Панель History VS2022 фильтрует и отображает коммиты, только относящиеся к текущей выбранной ветке.
Первый граф для той же структуры репозитория с текущей веткой master выглядит так:

Есть и ещё более простая версия, без других веток:

Также существует ещё одна версия, с показанными ссылками на ветки:

Я считаю, что графы истории VS2022 хуже, чем граф истории MeGit, но опытному пользователю они могут оказаться полезными. В них можно удобно просмотреть изменения в репозитории.
Часто люди в Интернете задают вопрос: зачем вообще нужен красивый граф? Для меня ответ прост: интерфейс пользователя называется графическим, поэтому здорово иметь качественный граф, сравнимый, например, с графом истории MeGit.
К сожалению, стоит заметить, что VS2022 не показывает в графе местоположение ссылки HEAD, хотя и GitBash, и MeGit чётко отображают ссылку HEAD. Похоже, разработчики VS решили, что терминология Git наподобие ссылок HEAD должна быть скрыта от пользователей. Не уверен, что на самом деле возможно компетентно использовать Git в течение длительного времени, не зная, что такое ссылка HEAD.
❒ 2.2.2. История из SourceTree
Вот соответствующий граф, создаваемый SourceTree . Он имеет красивый графический вид.

Но разработчики SourceTree тоже решили скрыть от пользователя концепции наподобие HEAD и ссылок.
▍ 2.3. Просмотр веток, тегов, ссылок
❒ 2.3.1. Ветки, теги, ссылки в MeGit
Ветки, теги и ссылки в проекте/репозитории заметить очень легко:

Обратите внимание, что помечена текущая checkout-ветка master . Также вы видите, что ссылка HEAD ref указывает на последний локальный коммит ec56b90 ветки master .
Чтобы выполнить checkout ветки Feature1 , нужно нажать на нужную ветку правой клавишей мыши и выбрать в контекстном меню опцию.

❒ 2.3.2. Ветки, теги, ссылки в VS2022
В VS2022 отображается более скромная информация:

Насколько я понимаю, список тегов недоступен сам по себе, а применённые теги видны только в графе истории. Список ссылок также недоступен, разработчики решили, что он слишком низкоуровневый и не нужен, поэтому скрыли эту информацию.
Обратите внимание, что текущая checkout-ветка master выделена жирным шрифтом. Кроме того, текущую checkout-ветку можно увидеть в правом нижнем углу.

Чтобы выполнить checkout ветки Feature1 , нужно нажать на нужной ветке правую клавишу мыши и выбрать в контекстном меню опцию.

Кроме того, вы можете выполнить checkout ветки во всплывающем меню в правом нижнем углу:

❒ 2.3.3. Ветки, теги, ссылки в SourceTree
Ветки и теги проекта/репозитория легко заметны, однако ссылки в GUI не отображаются. Разработчики тоже решили скрыть подробности Git от пользователя.

Обратите внимание, что текущая checkout-ветка master выделена жирным шрифтом.
Чтобы выполнить checkout ветки Feature1 , нужно нажать на нужную ветку правой клавишей мыши и выбрать в контекстном меню опцию.

▍ 2.4. Просмотр состояния Detached HEAD
Просмотреть состояние «Detached HEAD» легко. Достаточно выполнить checkout коммита, не находящегося на конце ветки, а затем закоммитить новые изменения. Давайте посмотрим, как отображается такое состояние.
❒ 2.4.1. Detached HEAD в MeGit
Вот как выглядит состояние Detached HEAD в панели History:

Как видите, HEAD указывает на коммит 40c21ff, а не на конец какой-то ветки. В терминологии Git этот коммит находится в состоянии Detached HEAD . В панели просмотра веток это представлено в следующем виде:

Обратите внимание, что ни одна ветка не отмечена как выбранная, а ссылка HEAD содержит значение id этого коммита 40c21ff.
❒ 2.4.2. Detached HEAD в VS2022
Теперь взглянем на ту же ситуацию с репозиторием в VS2022. Вот как она выглядит в панели Branches:

Обратите внимание, что ни одна ветка не выделена жирным шрифтом. то есть ни одна не является checkout-веткой.
Кроме того, состояние Detached HEAD отмечено в правом нижнем углу:

Как мы видим, все упоминания ссылки HEAD в VS2022 избегаются, хотя интуитивно непонятно, что происходит с репозиторием и как устранить состояние Detached HEAD. Именно поэтому я считаю, что пользователь должен обладать реальными познаниями Git, а инструменты, скрывая от него концепции Git, не помогают ему в этом.
❒ 2.4.3. Detached HEAD в SourceTree
Вот как выглядит состояние Detached HEAD в панели History:

Как видите, HEAD указывает на последний коммит, а не на конец какой-то ветки. Хэш коммита можно увидеть в нижней панели, он равен 40c21ff. В терминологии Git этот коммит находится в состоянии Detached HEAD . Любопытно, что разработчики внезапно отображают нечто под названием HEAD , хотя до этого скрывали эту концепцию в приложении.
В панели просмотра веток это представлено в следующем виде:

Обратите внимание, что ни одна ветка не помечена как выбранная.
❒ 2.4.4. Намеренное создание «висячего коммита»
Допустим, мы решили устранить состояние Detached HEAD, выполнив checkout ветки master и оставив новый коммит 40c21ff висячим. Доступ к такому коммиту невозможно получить ни по какой из ссылок и он не будет больше отображаться в History.
❒ 2.4.5. Восстановление висячего коммита/Detached HEAD в MeGit
Теперь в истории и ветках отображается checkout-ветка master , а упоминания коммита 40c21ff отсутствуют.


Что, если мы совершили ошибку и теперь хотим восстановить висячий коммит 40c21ff? Это возможно, мы можем найти его в панели Reflog:

Можно нажать на него правой клавишей мыши и выбрать опции меню для его восстановления:

И мы снова оказались в ситуации, когда этот коммит 40c21ff является checkout и мы можем делать всё, что угодно.

❒ 2.4.6. Восстановление висячего коммита/Detached HEAD в VS2022
Вот как та же ситуация выглядит в VS2022:

Теперь в истории и ветках отображается checkout-ветка master , а упоминания коммита 40c21ff отсутствуют. Можем ли мы выполнить восстановление коммита 40c21ff? Проблема в том, что в VS2022 нет панели Reflog.
Этот коммит 40c21ff по-прежнему находится в репозитории, однако через GUI VS2022 доступ к нему получить невозможно.
Для опытного пользователя это может быть проблемой и ему может понадобиться использовать другой инструмент для выполнения нужных действий. Разработчики VS2022 посчитали, что такие ситуации настолько редки, что среднестатистическому пользователю никогда не доведётся с ними сталкиваться.
❒ 2.4.7 Восстановление висячего коммита/Detached HEAD в SourceTree
А вот как выглядит теперь ситуация в SourceTree . Теперь в истории и ветках отображается checkout-ветка master , а упоминания коммита 40c21ff отсутствуют.

Как нам восстановить коммит 40c21ff? Проблема в том, что в SourceTree нет панели Reflog. Но в нём есть значок для запуска GitBash, поэтому из командной строки мы можем получить нужную нам информацию, а именно хэш коммита:

Итак, мы можем выполнить в командной строке git reflog и получить нужный хэш:

Получив хэш висячего коммита, мы обходными путями можем восстановить этот коммит. Мы создадим новую ветку, содержащую этот коммит.



После выполнения checkout этого коммита 40c21ff, на этот раз как части новой ветки, мы можем делать всё, что угодно.
▍ 2.5. Просмотр панели Unstaged-файлов/Staged-файлов/коммитов
Одна из основных функций GUI Git — выполнение коммитов работы в репозиторий.
❒ 2.5.1. Панель Unstaged-файлов/Staged-файлов/коммитов в MeGit
MeGit, в соответствии с философией Git, имеет отдельные формы Unstaged- и Staged-файлов.
Здесь вы видите, что были внесены изменения в файл ClassA.cs, а Git указывает изменения в форме Unstaged-файлов («Working directory changes»):

Но чтобы выполнить коммит (обратите внимание, что кнопка Commit недоступна), необходимо использовать значок «плюс» и добавить изменения в форму Staged-файлов, после чего можно будет выполнить коммит изменений в репозиторий.

❒ 2.5.2. Панель Unstaged-/Staged-файлов/коммитов в VS2022
VS2022 в качестве диалогового окна коммитов по умолчанию отображает опцию выполнения коммитов файлов непосредственно из «Working directory changes» (Unstaged-файлов):

На самом деле, это соответствует правилам Git, поскольку такая команда существует в командной строке Git. Это схоже с выполнением git commit -am » .
Если вы хотите просмотреть форму «Staged files» и выбрать, для каких файлов нужно выполнить stage и коммит, нужно использовать значок «плюс» и добавить в Staged те файлы, коммит которых нужно выполнить:

Теперь диалоговое окно коммитов выглядит как диалоговое окно MeGit.
Разработчики VS2022 решили «срезать углы», отображая непосредственный коммит в форме «Working directory changes».
Обычно пользователи задаются таким вопросом: зачем мне нужно сначала выполнять Stage файлов? Ответ прост: это необязательно, это только опция для ситуаций, когда, например, вы изменили пять файлов, а хотите закоммитить только три из них. Такую ситуацию можно разрешить, выполнив Staging этих трёх файлов и закоммитив только staged-файлы.
❒ 2.5.3. Панель Unstaged-файлов/Staged-файлов/коммитов в SourceTree
SourceTree, в соответствии с философией Git, имеет отдельные формы для Unstaged- и Staged-файлов.
Здесь вы видите, что были внесены изменения в файл ClassA.cs, а Git указывает изменения в форме Unstaged-файлов («Working directory changes»):

Однако для выполнения коммита (обратите внимание, что кнопка Commit недоступна) нужно использовать кнопку Stage Selected и добавить изменения в форму Staged-файлов, после чего можно будет закоммитить изменения в репозиторий.

2.6. Просмотр Stash
В обоих инструментах есть удобные панели для просмотра «хранилищ» (stash).
❒ 2.6.1. Stash в MeGit
Список всех stash в репозитории:

Выберем один stash, Stash с индексом [0]. Тогда мы сможем просмотреть подробности об этом stash:
Местоположение в истории, когда был сделан stash:

Подробная информация об этом stash:

Разница в файлах, демонстрирующая изменения по stash:

❒ 2.6.2. Stash в VS2022
Список всех stash в репозитории:

Выберем один stash, Stash с индексом [0]. Тогда мы сможем просмотреть подробности об этом stash:
Подробная информация об этом stash:

Разница в файлах, демонстрирующая изменения по stash:

VS2022 не содержит опции отображения позиции в графе истории, где был сделан stash. Похоже, кто-то из разработчиков VS2022 ненавидит графы истории Git.
Вы можете задаться вопросом: зачем вообще нужно видеть эту информацию в графе? Для меня ответ прост: он называется графическим интерфейсом пользователя, поэтому было бы здорово видеть эту информацию в графе.
❒ 2.6.3. Stash в SourceTree
Список всех stash в репозитории:

Выберем один stash, Stash с индексом [0].
Разница в файлах, демонстрирующая изменения по stash:

2.7. Просмотр Blame
▍ 2.7.1. Blame в MeGit
Найти функциональность Blame немного сложно, потому что на этот раз MeGit использует не термин Git «Blame», а «Revision information». Всё выглядит хорошо:

Как вы видите, мы смотрим на файл Program.cs и на строку 12. Последний раз её изменял автор MarkPelf в коммите cef7440, а ниже показана подробная информация об этом коммите, в том числе и граф истории.
Также мы видим diff файла для этого коммита cef7440.

▍ 2.7.2. Blame в VS2022
Для того же сценария (файл Program.cs и строка 12) VS2022 изначально показывает меньше информации, но можно нажать правой клавишей мыши, чтобы получить больше информации о том, кто и в каком коммите в последний раз менял эту строку:

Нажмём правой клавишей мыши на интересующей нас строке кода:

Подробности коммита cef7440:

Граф истории для коммита cef7440:

▍ 2.7.3 Blame в SourceTree
Для того же сценария (файл Program.cs и строка 12), SourceTree изначально показывает меньше информации, но можно нажать правой клавишей мыши, чтобы получить больше информации.

Нажмём правой клавишей мыши на интересующей нас строке кода:

Подробности коммита cef7440:

3. Заключение
В этой статье я привёл краткий обзор GUI-интеграции Git в IDE VS2022 и сравнил её с GUI-клиентами Git MeGit/EGit и SourceTree. Мы показали, что UI клиента MeGit более подробен и ближе соответствует «философии и терминологии Git». Мы показали, что разработчики VS2022 решили пойти по пути упрощения UI Git для пользователя и что многие внутренности Git спрятаны от пользователя.
Это хорошо тем, что привлекает к платформе Git множество новых разработчиков и стимулирует их переходить на Git благодаря простоте UI и удобству обучения. Плохо это тем, что некоторые важные концепции Git наподобие ссылок HEAD скрыты от пользователя, а некоторые опции Git намеренно ограничены. Опытным пользователям Git могут понадобиться другие инструменты Git, например, GitBash или какой-то другой GUI-клиент Git (MeGit/EGit [1] , Sourcetree [3] ), чтобы лучше понимать свои репозитории и выполнять сложные операции, не поддерживаемые GUI Git в VS2022.
Ясно одно — интеграция Git в IDE VS2022 определённо повысит популярность системы контроля версий Git.
4. Ссылки

- [1] https://github.com/eclipsesource/megit
- [2] https://docs.microsoft.com/en-us/azure/devops/repos/tfvc/use-team-foundation-version-control-commands?view=azure-devops
- [3] https://sourcetreeapp.com/
- git
- visual studio
- системы контроля версий
- version control systems
- sourcetree
- egit
- git bash
- ruvds_перевод
Отмена изменений
Если вы хотите отменить изменения в репозитории Git, сначала определите, какой тип изменений вы хотите отменить. Например, можно сделать следующее:
- Отмените незафиксированные изменения в файле, вернув файл к последней зафиксированной версии. Вы также можете отменить изменения файл в любую зафиксированную версию.
- Возврат ветви к предыдущему состоянию путем сброса ее до предыдущей фиксации.
- Отмените изменения, внесенные общей фиксацией, создав новую фиксацию, которая отменяет изменения. Так как этот подход не перезаписывает существующий журнал фиксаций, он подходит для отмены изменений, внесенных фиксациями, которые были отправлены и используются другими пользователями.
- Измените последнюю фиксацию, чтобы изменить ее содержимое или сообщение. Дополнительные сведения см. в статье Обновление последней фиксации.
- Устраните проблему, возникшую в предыдущей фиксации, создав новую фиксацию , которая включает исправление. Дополнительные сведения см. в статье Создание фиксации.
В этой статье раскрываются следующие темы:
- Отмена незафиксированных изменений в файле
- Возврат ветви к предыдущему состоянию
- Отмена изменений, внесенных общей фиксацией
Отмена незафиксированных изменений в файле
Если вы внесли изменения в файл, но не зафиксировали их, можно использовать извлечение Git, чтобы быстро отменить изменения и отменить изменения файл до последней зафиксированной версии.
Git checkout также может отменить изменения файл в любую зафиксированную версию при указании ИД фиксации.
Если есть вероятность, что вы захотите повторно применить изменения, которые Git checkout отменит, рассмотрите возможность их спрягать .
- 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 Обозреватель.
Visual Studio поддерживает отмену незафиксированных изменений в файле путем восстановления файла до последней зафиксированной версии.
В окне Изменения Git определите файл с изменениями, которые требуется отменить. Если файл находится в разделе Промежуточные изменения , щелкните его правой кнопкой мыши и выберите отменить этап. Неподготовленные файлы отображаются в разделе Изменения .
Если файл находится в разделе Изменения , щелкните его правой кнопкой мыши и выберите отменить изменения , чтобы отменить все изменения в файле с момента последней фиксации.
Visual Studio 2019 предоставляет возможности управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений.
Visual Studio поддерживает отмену незафиксированных изменений в файле путем восстановления файла до последней зафиксированной версии.
В окне Изменения Git определите файл с изменениями, которые требуется отменить. Если файл находится в разделе Промежуточные изменения , щелкните его правой кнопкой мыши и выберите отменить этап. Неподготовленные файлы отображаются в разделе Изменения .
Если файл находится в разделе Изменения , щелкните его правой кнопкой мыши и выберите отменить изменения , чтобы отменить все изменения в файле с момента последней фиксации.
Visual Studio поддерживает отмену незафиксированных изменений в файле путем восстановления файла до последней зафиксированной версии.
В представлении ИзмененияОбозреватель команды укажите файл с изменениями, которые требуется отменить. Если файл находится в разделе Промежуточные изменения , щелкните его правой кнопкой мыши и выберите отменить этап. Неподготовленные файлы отображаются в разделе «Изменения «
Если файл находится в разделе Изменения , щелкните его правой кнопкой мыши и выберите отменить изменения , чтобы отменить все изменения в файле с момента последней фиксации.
С помощью команды Git checkout можно отменить незафиксированные изменения в файле, вернув файл к последней зафиксированной версии:
git checkout
Например, git checkout README.md отменяет незафиксированные изменения в README.md файле.
Git checkout также поддерживает возврат файла к ранее зафиксированной версии при указании частичной или полной ИД фиксации, которая однозначно идентифицирует фиксацию:
git checkout
Дополнительные сведения о поиске ИД фиксации см. в разделе Поиск ИД фиксации.
Использование команды Git checkout для отменить изменения файла отличается от обычного использования, которое заключается в переключении между ветвями. В checkout выходных данных команды показано, выполняется ли переключение между ветвями или обновление файла, и выводится предупреждение, если неясно, какую из них вы пытаетесь сделать.
Возврат ветви к предыдущему состоянию
Вы можете отменить изменения ветвь в предыдущее состояние с помощью сброса Git для сброса ветви до предыдущей фиксации. Git reset влияет на все файлы во всех папках ветви.
В Git reset есть несколько вариантов. Параметр по умолчанию — отменить изменения ветвь к предыдущей фиксации, но сохранить все последующие изменения как незафиксированные изменения. Другой вариант — отменить изменения ветвь к предыдущей фиксации путем отмены всех изменений во всех файлах ветвей с момента фиксации.
Не сбрасывайте ветвь до фиксации до последней фиксации, если последняя фиксация была отправлена и предоставлена другим пользователям. Это приведет к тому, что журнал локальной ветви больше не будет соответствовать журналу удаленной ветви. Сведения об общих ветвях см. в разделе Отмена изменений, внесенных общей фиксацией.
- Visual Studio 2022
- Visual Studio 2019 — меню Git
- Visual Studio 2019 — командная Обозреватель
- Командная строка Git
- В строке меню выберите Git View Branch History (Просмотреть журнал ветви Git>), чтобы открыть вкладку Журнал для текущей ветви.

- На вкладке Журнал для текущей ветви щелкните правой кнопкой мыши фиксацию, которую вы хотите сбросить, а затем выберите Сбросить > Удалить изменения (-hard), чтобы сбросить ветвь к выбранной фиксации и удалить все изменения во всех файлах ветви с момента фиксации. Или нажмите кнопку Сбросить > сохранить изменения (—mixed), чтобы сбросить ветвь к выбранной фиксации и сохранить все последующие изменения как незамеченные изменения.

- В строке меню выберите Git View Branch History (Просмотреть журнал ветви Git>), чтобы открыть вкладку Журнал для текущей ветви.

- На вкладке Журнал для текущей ветви щелкните правой кнопкой мыши фиксацию, которую вы хотите сбросить, а затем выберите Сбросить > Удалить изменения (-hard), чтобы сбросить ветвь к выбранной фиксации и удалить все изменения во всех файлах ветви с момента фиксации. Или нажмите кнопку Сбросить > сохранить изменения (—mixed), чтобы сбросить ветвь к выбранной фиксации и сохранить все последующие изменения как незамеченные изменения.

- В представлении ИзмененияОбозреватель команды выберите Действия > Просмотр журнала, чтобы открыть вкладку Журнал для текущей ветви.

- На вкладке Журнал для текущей ветви щелкните правой кнопкой мыши фиксацию, которую вы хотите сбросить, а затем выберите Сбросить > Удалить изменения (-hard), чтобы сбросить ветвь к выбранной фиксации и удалить все изменения во всех файлах ветви с момента фиксации. Или нажмите кнопку Сбросить > сохранить изменения (—mixed), чтобы сбросить ветвь к выбранной фиксации и сохранить все последующие изменения как незамеченные изменения.

С помощью Git reset можно отменить изменения ветвь в ее состояние в предыдущей фиксации. Команду Git reset можно использовать с различными флагами:
- Флаг —hard указывает Git, что нужно сбросить ветвь до указанной фиксации и отменить все последующие изменения. Будьте осторожны с этим параметром, так как вы можете потерять работу с ним.
- Флаг —mixed указывает Git, что нужно сбросить ветвь до указанной фиксации, но сохранить все последующие изменения как незамеченные изменения. Этот параметр выбирается по умолчанию.
- Флаг —soft предписывает Git сбросить ветвь до указанной фиксации, но сохранить все последующие изменения как промежуточные и незамеченные изменения в соответствии с их предыдущим состоянием.
Git reset часто используется с —hard возможностью отмены всех незафиксированных изменений во всех файлах с момента последней фиксации:
git reset --hardЧтобы сбросить ветвь к фиксации, отличной от последней фиксации, укажите ИД фиксации или частичную ИД фиксации, которая однозначно идентифицирует фиксацию:
git reset --hard
Дополнительные сведения о поиске ИД фиксации см. в разделе Поиск ИД фиксации.
Отмена изменений, внесенных общей фиксацией
Вы можете отменить изменения, внесенные фиксацией, с помощью отменить изменения Git, чтобы создать новую фиксацию, которая отменяет эти изменения. Git revert не удаляет исходную фиксацию. Этот подход подходит для отмены изменений, внесенных общей фиксацией, так как Git revert не изменяет предыдущий журнал фиксаций, поэтому журналы локальных и удаленных ветвей продолжают совпадать.
- Visual Studio 2022
- Visual Studio 2019 — меню Git
- Visual Studio 2019 — командная Обозреватель
- Командная строка Git
- В строке меню выберите Git View Branch History (Просмотреть журнал ветви Git>), чтобы открыть вкладку Журнал для текущей ветви.

- На вкладке Журнал для текущей ветви щелкните правой кнопкой мыши фиксацию, которую вы хотите отменить изменения, и выберите Вернуть, чтобы создать новую фиксацию, которая отменяет изменения, внесенные выбранной фиксацией.

- В строке меню выберите Git View Branch History (Просмотреть журнал ветви Git>), чтобы открыть вкладку Журнал для текущей ветви.

- На вкладке Журнал для текущей ветви щелкните правой кнопкой мыши фиксацию, которую вы хотите отменить изменения, и выберите Вернуть, чтобы создать новую фиксацию, которая отменяет изменения, внесенные выбранной фиксацией.

- В представлении ИзмененияОбозреватель команды выберите Действия > Просмотр журнала, чтобы открыть вкладку Журнал для текущей ветви.

- На вкладке Журнал для текущей ветви щелкните правой кнопкой мыши фиксацию, которую вы хотите отменить изменения, и выберите Вернуть, чтобы создать новую фиксацию, которая отменяет изменения, внесенные выбранной фиксацией.

С помощью команды Git revert можно отменить изменения, внесенные фиксацией, и создать новую фиксацию с обратными изменениями. Фиксация, изменения которой были отменены, остается в журнале Git.
git revert
Если операция отменить изменения прошла успешно, Git откроет окно редактора с запросом на ввод сообщения о фиксации для новой фиксации.
Git уведомит вас о конфликтах во время операции отменить изменения. Можно либо разрешить конфликты, а затем запустить git revert —continue , либо выполнить команду git revert —abort , чтобы отменить операцию отменить изменения.
Поиск ИД фиксации
Для получения идентификатора фиксации можно использовать команду Git log . Флаг —oneline сокращает выходные данные.
git log --oneline
Команда Git log сначала перечисляет последние фиксации, начиная с фиксации на кончике указанной ветви (текущая ветвь, если она не указана), а затем выполняет итерацию назад по фиксациям предков. Каждая ИД фиксации в сокращенных выходных данных является частичной контрольной суммой SHA-1, которая однозначно идентифицирует фиксацию. Например, git log —oneline main может вывести:
e745d06 (HEAD -> main) Add a test initialization class 31da50b Add network switch test 0c14391 Add readme file 32e3946 Add project files.Дальнейшие действия
Похожие статьи
- Не знакомы с репозиториями Git? Подробнее
- Сохранение работы с фиксациями
Синхронизация с другими пользователями
Вы можете поддерживать синхронизацию локальных ветвей с удаленными аналогами, извлекая фиксации, созданные другими пользователями. Хотя Git хорошо помогает объединять входящие изменения с изменениями, иногда может потребоваться устранить конфликт слияния. Во время работы над ветвь компонента рекомендуется периодически переключаться на ветвь main и извлекать новые фиксации, чтобы поддерживать ее актуальность в удаленной main ветви.
В окне Изменения Git можно поддерживать актуальность локальной ветви с ее удаленным аналогом с помощью кнопок Выборка, Вытягивание, Отправка и Синхронизация .
Слева направо на предыдущем снимке экрана элементы управления кнопками:
В меню Git также можно выбрать Выборка, Вытягивание, Отправка и Синхронизация .
В окне Изменения Git можно поддерживать актуальность локальной ветви с ее удаленным аналогом с помощью кнопок Выборка, Вытягивание, Отправка и Синхронизация .
Слева направо на предыдущем снимке экрана элементы управления кнопками:
В меню Git также можно выбрать Выборка, Вытягивание, Отправка и Синхронизация .
