Использование Git в Python-проектах для начинающих: базовые операции и советы

Читать в полной версии →

Git — система контроля версий для отслеживания изменений проекта. Она дает возможность работать над проектами в команде и делиться внесенными изменениями с другими участниками для синхронизации работы над кодом.

Как работает Git в Python-проектах

  1. Пользователи сохраняют файлы проекта в любой момент и могут продолжать редактировать проект. Процесс похож на сохранение резервной копии проекта и называется фиксацией.
  2. Через фиксацию состояния проекта в модуле Git пользователь оставляет сообщение о сделанных на этом этапе изменениях.
  3. Модуль Git отображает историю изменений и коммитов в проекте, а также фиксирует ошибки в журнале git log.
  4. Модуль Git позволяет сопоставлять файлы проектов, в которых были реализованы разные коммиты, и возвращать их в более ранние версии.

Как установить модуль Git

Шаг 1. Скачайте Git с официального сайта и установите на компьютер.

Шаг 2. Создайте репозиторий с помощью команды конфигурации Git.

$ git config -- global user.name "username"

$ git config -- global user.email "username@forexample.com"

После установки имени пользователя используйте команду инициализации Git в каталоге для создания репозитория:

$ git init

Репозиторий располагается в модуле Git. Cамая популярная команда — вызов статуса Git с информацией о состоянии проекта:

$ git status

Шаг 3. Создайте файл .gitignore в корне проекта и внесите имена папок и файлов, которые не нужно помещать в репозитории. Например:

__pycache__/
*.pyc
*.pyo
*.pyd
*.egg-info/
dist/
build/

Шаг 4. Создайте в репозитории новый файл и поместите его в модуль Git, чтобы пользователи могли его зафиксировать.

#sample.py 
print( 'Adding a New File !' )
$ git add sample.py

При фиксации изменений пользователь каждый раз должен сообщать модулю Git о необходимости сохранить текущее состояние файла в репозитории. Сделать это можно с помощью команды commit и параметра -m.

$ git commit -m " creating sample.py "

Не игнорируйте шорткат -m: он необходим для ввода сообщения в строке c командой commit. Без -m откроется редактор для ввода.

На любом этапе работы в модуле Git доступны три версии файла:

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

Шаг 5. Настройте текстовый редактор для ввода сообщений фиксации в репозиторий с помощью команды:

$ git config --global core.editor "code --wait"

Эта команда назначит редактор VS Code для ввода через Git сообщений фиксации и их обработки.

Также полезно: Эффективная разработка на Python с PyCharm: советы и трюки

Базовые правила работы с репозиторием Git на Python-проектах

  1. В репозиторий git можно добавлять только исходные файлы — любые файлы, созданные при вводе текста в редакторе.
  2. Минимизируйте случаи фиксации файлов большого размера и двоичных файлов для оптимизации хранилища.
  3. Модуль Git сохраняет неполную копию каждого файла проекта. Он определяет различия в версиях, чтобы сократить количество файлов в репозитории. Алгоритм неприменим к двоичным файлам, например MP3 или JPG, так как их сложно сравнить. И в этом случае модуль сохраняет полный двоичный файл при каждой фиксации.
  4. При работе с модулем Git не рекомендуется хранить в репозитории конфиденциальную информацию.
  5. Для сохранения прогресса в работе над проектом и упрощения возврата к предыдущим версиям кода коммиты необходимо делать регулярно.

Базовые операции в работе с git на Python-проектах

Для управления репозиторием модуль Мit использует «ветки» — копии папки проекта на определенный момент цикла разработки:

Список всех локальных веток можно посмотреть с помощью команды git branch — она перечислит ветки, которые пользователь создал на своем компьютере. Эти ветки будут отличаться от тех, что размещены на сервере.

Для переключения между ветками используется команда:

git switch <name_branch>

При работе с несколькими ветками команда git switch поможет проверить коммиты и вернуться к более ранним версиям.

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

git status позволит просмотреть незафиксированные изменения.

Объединить коммиты, сделанные в разных ветках, можно через механизм слияния. Например, для объединения коммитов в ветке new с коммитами ветки main необходимо переключиться на main, запустить команду git merge и использовать new в качестве аргумента.

$ git checkout main
Already on 'main'

$ git merge new
Updating 2f33f7e..be62476
Fast-forward
main.py | 1 +
1 file changed, 1 insertion(+)

Для удаления неиспользуемых ветвей по окончании работы в них используйте команду git branch с параметром --delete. Обязательно переключитесь на другую ветку перед запуском этой команды.

$ git checkout main
Already on 'main'

$ git branch --delete new
Deleted branch new (was be62476).

$ git branch --list
* main

Читайте также: Ликбез по пакетам и шпаргалка по модулям в Python

Советы по использованию Git в Python-проектах

  1. Обращайте внимание на папку, из которой вы вызываете команды. При выборе неверной папки вы превратите в репозиторий рабочий стол или другие папки.

  2. Не создавайте новый репозиторий внутри другого репозитория. Вызовите команду git status, чтобы убедиться, что вы находитесь вне репозитория.

Ошибка fatal: not a git repository (or any of the parent directories): .git показывает, что вы находитесь в папке и можете создавать новый репозиторий.

Чтобы исправить это, найдите созданный по ошибке репозиторий и снова сделайте его папкой. Для этого необходимо:

  1. Включить режим демонстрации скрытых файлов и папок, чтобы увидеть скрытую папку .git.
  2. Найти и удалить папку .git.
  3. Еще раз запустить команду git status.

Слушатели курса «Python-разработчик» изучают особенности функционирования git-репозиториев, самостоятельно создают и обновляют их в рамках учебных проектов.