[Документация Yandex Cloud](../../../index.md) > [Yandex DataSphere](../../index.md) > [Пошаговые инструкции](../index.md) > DataSphere Notebook > Работа с Git

# Работа с Git

## Перед началом работы {#before-begin}

Откройте проект DataSphere:

1. Выберите нужный проект в своем сообществе или на [главной странице](https://datasphere.yandex.cloud) DataSphere во вкладке **Недавние проекты**.
1. Нажмите кнопку **Открыть проект в JupyterLab** и дождитесь окончания загрузки.
1. Откройте вкладку с ноутбуком.

## Клонировать публичный репозиторий GitHub {#clone-public}

Чтобы клонировать существующий публичный репозиторий:

1. В левом навигационном меню в разделе ![folder](../../../_assets/datasphere/jupyterlab/folder.svg) **File Browser** создайте или выберите папку, в которой вы хотите создать клон репозитория, и перейдите в нее.
1. В верхнем меню нажмите **Git** и выберите **Clone a Repository**.
1. В открывшемся окне введите URI репозитория и нажмите кнопку **Clone**.

Папка клонированного репозитория появится в разделе ![folder](../../../_assets/datasphere/jupyterlab/folder.svg) **File Browser**.

## Клонировать приватный репозиторий GitHub {#clone-private}

Для работы с приватным репозиторием вам потребуется [персональный токен доступа](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-token) к [GitHub](https://github.com/).

Клонируйте существующий приватный репозиторий:

1. В левом навигационном меню, в разделе ![folder](../../../_assets/datasphere/jupyterlab/folder.svg) **File Browser**, создайте или выберите папку, в которой вы хотите создать клон репозитория, и перейдите в нее.
1. В верхнем меню нажмите **Git** и выберите **Clone a Repository**.
1. В открывшемся окне введите URI репозитория и нажмите кнопку **Clone**.
1. В новом окне введите имя пользователя и токен доступа к GitHub. Нажмите **Submit**.

Папка клонированного репозитория появится в разделе ![folder](../../../_assets/datasphere/jupyterlab/folder.svg) **File Browser**.

## Создать локальный репозиторий {#init}

Чтобы начать работу с локальным репозиторием:

1. В левом навигационном меню, в разделе ![folder](../../../_assets/datasphere/jupyterlab/folder.svg) **File Browser**, создайте или выберите папку, в которой вы хотите создать клон репозитория, и перейдите в нее.
1. В верхнем меню нажмите **Git** и выберите **Initialize a Repository**.
1. В открывшемся окне нажмите кнопку **Yes**.
1. Создайте в папке репозитория файл ноутбука.
1. Добавьте файл ноутбука под версионный контроль:

    1. Перейдите в блок ![git](../../../_assets/datasphere/jupyterlab/git.svg) **Git**.
    1. На вкладке **Change** в выпадающем списке **Untracked** найдите файл проекта.
    1. Справа от имени файла нажмите ![add](../../../_assets/datasphere/jupyterlab/add.svg).

1. Сделайте начальный коммит:

    1. В поле **Summary** введите имя коммита.
    1. В поле **Description** введите описание коммита.
    1. Нажмите кнопку **Commit**.
    1. В открывшемся окне введите имя и адрес электронной почты автора коммита.
    1. Нажмите кнопку **Ok**.

Локальный репозиторий готов к работе.

## Создать новую ветку {#new-branch}

1. В левом навигационном меню, в разделе ![folder](../../../_assets/datasphere/jupyterlab/folder.svg) **File Browser**, создайте или выберите папку, в которой вы хотите создать клон репозитория, и перейдите в нее.
1. В разделе ![git](../../../_assets/datasphere/jupyterlab/git.svg) **Git** раскройте выпадающий список **Current Branch**.
1. Нажмите кнопку **New Branch**.
1. В открывшемся окне:

    1. В поле **Name** введите имя новой ветки.
    1. В списке выберите ветку, на основе которой будет создана новая. Для быстрого поиска нужной ветки воспользуйтесь фильтром.
    1. Нажмите кнопку **Create branch**.

Созданная ветка отобразится в списке и станет текущей.

## Записать изменения в локальный репозиторий {#commit}

Чтобы отредактировать данные и записать изменения в репозиторий:

1. Измените файлы, находящиеся под версионным контролем.
1. В верхнем меню нажмите **File** и выберите **Save All**, чтобы сохранить изменения.
1. В левом навигационном меню перейдите в раздел ![git](../../../_assets/datasphere/jupyterlab/git.svg) **Git**.
1. На вкладке **Changes**, в списке **Changes**, отобразятся отредактированные файлы. Буква **M** справа от имени файла указывает на то, что в файле есть изменения.
1. Справа от имени файла нажмите ![add](../../../_assets/datasphere/jupyterlab/add.svg). Изменения проиндексируются, файл переместится в список **Staged**.

1. Чтобы зафиксировать изменения:

    1. В поле **Summary** введите имя коммита.
    1. В поле **Description** введите описание коммита.
    1. Нажмите кнопку **Commit**.
    1. В открывшемся окне введите имя и адрес электронной почты автора коммита.
    1. Нажмите кнопку **Ok**.

Изменения записаны в репозиторий.

## Отправить изменения в удаленный репозиторий на GitHub {#push}

Для работы с приватным репозиторием вам потребуется [персональный токен доступа](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-token) к [GitHub](https://github.com/).

Чтобы отправить в удаленный репозиторий сохраненные изменения:

1. В левом навигационном меню перейдите в раздел ![git](../../../_assets/datasphere/jupyterlab/git.svg) **Git**.
1. Нажмите кнопку ![git](../../../_assets/datasphere/jupyterlab/push.svg) **Push committed changes**.
1. В открывшемся окне:

    1. Введите имя пользователя с правом записи в удаленный репозиторий.
    1. Введите персональный токен доступа к GitHub.

1. Нажмите кнопку **Ok**.
1. Дождитесь появления надписи **Successfully pushed**.

   Изменения отправлены в удаленный репозиторий.

## Получить изменения из удаленного репозитория {#pull}

1. Перейдите в блок ![git](../../../_assets/datasphere/jupyterlab/git.svg) **Git**.
1. Нажмите кнопку ![git](../../../_assets/datasphere/jupyterlab/pull.svg) **Pull latest changes**.
1. Дождитесь появления надписи **Successfully pulled**.

   Изменения из удаленного репозитория получены.

## Сохранить результаты в GitHub {#local-to-github}

Для работы с приватным репозиторием вам потребуется [персональный токен доступа](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-token) к [GitHub](https://github.com/).

Чтобы сохранить код проекта в новый репозиторий на GitHub:

1. [Создайте](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository) новый пустой репозиторий на GitHub. Вы сможете добавить файлы README, license и gitignore позднее.
1. В проекте DataSphere создайте локальный репозиторий:

   1. В левом навигационном меню, в разделе ![folder](../../../_assets/datasphere/jupyterlab/folder.svg) **File Browser**, создайте или выберите папку, в которой вы хотите создать клон репозитория, и перейдите в нее.
   1. В верхнем меню нажмите **Git** и выберите **Initialize a Repository**.
   1. В открывшемся окне нажмите кнопку **Yes**.

1. Сопоставьте локальный репозиторий с удаленным репозиторием GitHub:

   1. В верхнем меню нажмите **Git** и выберите **Manage Remote Repositories**.
   1. В открывшемся окне введите имя и адрес удаленного репозитория и нажмите **Add**.
   1. Закройте окно добавления удаленных репозиториев.

1. Добавьте все нужные файлы под версионный контроль:

   1. Перейдите в блок ![git](../../../_assets/datasphere/jupyterlab/git.svg) **Git**.
   1. На вкладке **Change**, в выпадающем списке **Untracked**, найдите файл проекта.
   1. Справа от имени файла нажмите ![add](../../../_assets/datasphere/jupyterlab/add.svg).

1. Сделайте начальный коммит:

   1. В поле **Summary** введите имя коммита.
   1. В поле **Description** введите описание коммита.
   1. Нажмите кнопку **Commit**.
   1. В открывшемся окне введите имя и адрес электронной почты автора коммита.
   1. Нажмите кнопку **Ok**.

1. Отправьте изменения в удаленный репозиторий:

   1. В верхнем меню нажмите **Git** и выберите **Push to Remote**.
   1. В открывшемся окне введите логин пользователя GitHub, от имени которого вы будете работать, и токен доступа к GitHub.

В репозитории на GitHub появятся файлы, которые вы добавили под версионный контроль.