# Начало работы с Git

Ознакомьтесь с основами Git, выполнив пример сценария.

Вы когда-нибудь хотели, чтобы у вас был компьютер времени для кода? Ну, Git именно это, и так многое другое!

Если вы не знакомы с Git, это **система управления** версиями, которая помогает отслеживать изменения в коде. Вы можете сохранить моментальный снимок проекта в определенный момент времени, а затем внести экспериментальные изменения, не рискуя работой, так как вы всегда можете вернуться к моментальному снимку.

GitHub — это платформа, созданная вокруг Git, что позволяет сохранять проекты Git в облаке и работать с ними с другими разработчиками.

Хотя Git может быть сложным, это мощный и необходимый инструмент для любого разработчика. В этой статье приведены все инструменты, необходимые для использования Git в повседневном рабочем процессе.

## Необходимые компоненты

Чтобы следовать этому руководству, необходимо [установить Visual Studio Code](https://code.visualstudio.com/download).

## Основы обучения Git с помощью GitHub Desktop

Для стандартных операций Git рекомендуется GitHub Desktop, приложение, которое позволяет визуально взаимодействовать с Git, а не с помощью записанных команд. В этом разделе описано, как использовать GitHub Desktop для быстрого выполнения наиболее распространенных операций Git.

### Настройка GitHub Desktop

Если вы впервые используете GitHub Desktop, необходимо установить его и подключить учетную запись GitHub .

1. [Скачайте GitHub Desktop](https://desktop.github.com/download/).
2. Откройте GitHub Desktop, а затем нажмите кнопку **GitHub.com и авторизовать GitHub Desktop** для доступа к вашей учетной записи.
3. Вернитесь в GitHub Desktop, нажмите кнопку **"Готово**". Это добавит имя и электронную почту из учетной записи GitHub в Git.

### Создание локального репозитория

Теперь вы можете выполнить первые шаги в Git, создав репозиторий\*\*\*\*. Думайте о репозитории как папке проекта, которая отслеживает изменения и сохраняет журнал. Сначала мы создадим локальный\*\* репозиторий\*\*:

1. В GitHub Desktopнажмите кнопку **"Создать репозиторий" на локальном диске**.
2. Присвойте репозиторию `learning-git`имя.
3. Выберите **инициализировать этот репозиторий с помощью README** , чтобы автоматически создать пустой `README.md` файл.

   > \[!TIP] Стандартная практика включения `README.md` файла, также известного как README, в проекты. READMEs обычно содержат сведения, которые помогают другим пользователям понять, настроить и запустить проект.
4. Щелкните **Создать репозиторий**.

### Создание удаленный репозиторий

Локальный репозиторий, который вы только что создали на компьютере. Теперь создадим удаленный\*\* репозиторий \*\*для того же проекта, который будет размещен на GitHub. Связывание удаленный репозиторий упрощает совместную работу и резервное копирование работы.

1. В GitHub Desktopнажмите кнопку **"Опубликовать репозиторий**".
2. В появившемся всплывающем окне нажмите кнопку **"Опубликовать репозиторий** " еще раз.
3. Чтобы просмотреть удаленный репозиторий, щелкните **"Просмотреть" GitHub**.

### Настройка пространства для внесения изменений

Теперь, когда вы создали репозиторий, поговорим о **ветвях**. Ветви по сути копируют проект, где можно протестировать изменения, не рискуя стабильностью существующей работы.

Репозитории автоматически создаются с `main` помощью ветви, которую можно рассматривать как стабильную, основную версию проекта. Например, в репозитории для веб-сайта `main` филиал соответствует сайту, который могут видеть посетители.

При создании новой ветви вы создаете безопасное пространство для работы с новой функцией, не затрагивая основную версию. Вы и ваши сотрудники могут использовать разные ветви для одновременной работы над несколькими функциями.

Создадим ветвь для работы с изменениями в нашем репозитории:

1. В GitHub Desktopвыберите раскрывающееся меню <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg> **Текущее раскрывающееся меню ветви** , а затем нажмите кнопку **"Создать ветвь**".
2. Назовите новую ветвь, а затем нажмите кнопку **"Создать ветвь".`readme-updates`**

### Сохранение моментальных снимков проекта

Чтобы сохранить ход выполнения в ветви, сделайте фиксацию\*\*\*\*. Фиксация — это моментальный снимок проекта в определенный момент времени. Вы уже сделали первую фиксацию: при инициализации проекта с помощью README GitHub Desktop автоматически создали начальную фиксацию для добавления `README.md` файла.

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

1. В GitHub Desktopнажмите кнопку **"Открыть" в Visual Studio Code**.

2. В VS Codeвставьте следующий текст `README.md` и сохраните изменения:

   ```markdown copy
   Hello, World!

   This is a demo project for learning how to use Git.
   ```

3. В GitHub Desktopвы увидите обновления, которые вы только что сделали в README. В левом нижнем углу рядом с изображением профиля GitHub в текстовом поле введите "Update README". Это называется сообщением \*\*\*\* фиксации и помогает отслеживать изменения, внесенные в каждую фиксацию.

4. Чтобы сделать фиксацию, нажмите кнопку **"Зафиксировать" для чтения обновлений**.

### Внесение изменений в основную ветвь

Когда вы удовлетворены изменениями, внесенными в ветвь, вы можете опубликовать ветвь в удаленный репозиторий и создать **запрос** на вытягивание. Запросы на вытягивание позволяют просматривать набор предлагаемых изменений, а затем объединять их из одной ветви в другую. В нашем случае мы создадим запрос на вытягивание, который приводит изменения, внесенные в `readme-updates` исходную ветвь, `main`.

1. Нажмите кнопку `readme-updates` с изменениями в удаленный репозиторий.

2. Чтобы просмотреть предложенные изменения, нажмите кнопку **"Предварительный просмотр запроса** на вытягивание".

3. Щелкните **Создать запрос на вытягивание**.

4. В появившемся окне GitHub измените название запроса на вытягивание на "Добавить сообщение в README", а затем напишите краткое описание изменений в поле комментария.

5. Нажмите **"Создать pull request"**.

6. Чтобы перенести изменения в `main` ветвь, в нижней части страницы нажмите кнопку **"Объединить запрос** на вытягивание".

   > \[!NOTE] Когда вы работаете над проектом с другими разработчиками, это стандартная практика для кого-то другого, чтобы просмотреть запрос на вытягивание, прежде чем он объединен.

7. В нижней части страницы нажмите кнопку **"Удалить ветвь**". Удаление ветвей, которые были объединены в `main` репозиторий, помогает обеспечить чистоту и простоту навигации в репозитории.

### Подготовка к внесению дополнительных изменений

Поздравляем с объединением первого запроса на вытягивание! Теперь, когда вы успешно ввели изменения в `main` ветвь, необходимо выполнить несколько шагов, чтобы подготовиться к следующему раунду изменений:

1. В GitHub Desktop, если вы не используете ветвь `main` , выберите раскрывающееся меню "git-branch" aria-hidden="true" aria-label="git-branch" %} **Текущее раскрывающееся меню "Ветвь** ветвь", а затем щелкните **main**.

   Прежде чем создавать новую ветвь, следует почти всегда переключаться на `main` ветвь, так как новые ветви создаются как копии выбранной ветви.
2. Чтобы проверить, были ли внесенные изменения в удаленную `main` ветвь, щелкните **"Получить источник**".
3. Наконец, чтобы обновить локальную `main` ветвь с изменениями в удаленной `main` ветви, щелкните **"Вытягивание источника**".

Теперь у вас есть все навыки, необходимые для настройки и использования Git в проекте!

## Погружение в Git в командной строке

GitHub Desktop предназначен для решения повседневных потребностей Git. При росте в качестве разработчика, скорее всего, вам придется столкнуться с некоторыми необычными ситуациями, когда требуется больше контроля над операцией Git, или вам нужно использовать более сложные команды. В этих экземплярах необходимо переключиться на использование написанных команд Git в командной строке.

### Настройка командной строки

Прежде чем приступить к работе с командной строкой, необходимо настроить несколько средств.

1. В GitHub Desktopнажмите клавиши \`<kbd></kbd>, чтобы открыть проект в командной строке.
2. Если используете Windows, [install Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git). Для macOS и Linux по умолчанию устанавливается Git.
3. [Установите GitHub CLI](https://github.com/cli/cli?tab=readme-ov-file#installation), что позволяет быстро выполнять действияGitHub, связанные с командной строкой.
4. Чтобы выполнить проверку подлинности в GitHub из GitHub CLI, выполните следующую команду:

   ```shell copy
   gh auth login
   ```

   Выберите проверку подлинности с помощью **GitHub.com**, а затем следуйте инструкциям на экране.
5. Установите интерфейс командной строки GitHub Copilot, чтобы использовать Copilot из командной строки. См [. раздел AUTOTITLE](/ru/copilot/how-tos/set-up/install-copilot-cli).

### Экспериментирование с сложными командами

Теперь, когда вы настроили, давайте узнаем, как найти и понять команды, которые могут потребоваться в будущем. Например, предположим, что вы видели кого-то онлайн упоминания `git blame`, но вы не знаете, что это делает. Попробуйте попросить Copilot объяснить это с помощью следующей команды:

```shell copy
gh copilot explain "git blame"
```

Copilot сообщает нам, что `git blame` предоставляет подробный журнал файла, показывающий автора и фиксацию, которая в последний раз изменила каждую строку в файле. Попробуйте выполнить следующую команду:

```shell copy
git blame README.md
```

Это отличный инструмент, но, как вы можете себе представить, вина за файл может получить очень долго. Предположим, что вы заинтересованы только в последнем обновлении в определенной строке в файле. Вы можете попросить Copilot создать правильную команду:

```shell copy
gh copilot suggest "Show me the blame for line 1 of README.md"
```

Когда Copilot запрашивает нужную команду, используйте клавиши со стрелками для выбора **команды** Git, а затем нажмите клавишу <kbd>ВВОД</kbd>. Затем Copilot предложит следующую команду:

```shell copy
git blame -L 1,1 README.md
```

Используйте клавиши со стрелками, чтобы выбрать **команду** Execute, а затем нажмите клавишу <kbd>ВВОД</kbd>. Вы увидите автора и фиксацию последней измененной строки 1 `README.md`.

## Просмотр и дальнейшие действия

В этой статье мы рассмотрели основы Git с GitHub Desktop, изучая важные термины, такие как:

* **Репозиторий**: папка, которая сохраняет все изменения, внесенные в файлы в проекте.
* **Фиксация**: моментальный снимок проекта в определенный момент времени.
* **Ветвь**: копия проекта, в которой можно работать над набором изменений.
* **Запрос** на вытягивание: запрос на слияние изменений из одной ветви в другую.

Мы также говорили о выполнении более сложных операций Git в командной строке. Мы пытались `gh copilot explain` изучить и `gh copilot suggest` найти новые команды и функциональные возможности.

Теперь попробуйте применить то, что вы узнали в своей работе. Добавьте Git в существующий проект с GitHub Desktop, нажав <kbd>Ctrl</kbd>+<kbd>O</kbd> (Windows/Linux) или <kbd>Command</kbd>+<kbd>O</kbd> (Mac) и испытайте преимущества контроля версий самостоятельно!