Overview / Install¶
GitPython is a python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing.
It provides abstractions of git objects for easy access of repository data, and additionally allows you to access the git repository more directly using either a pure python implementation, or the faster, but more resource intensive git command implementation.
The object database implementation is optimized for handling large quantities of objects and large datasets, which is achieved by using low-level structures and data streaming.
Requirements¶
- Python >= 3.7
- Git 1.7.0 or newer It should also work with older versions, but it may be that some operations involving remotes will not work as expected.
- GitDB — a pure python git database implementation
- typing_extensions >= 3.7.3.4 (if python < 3.10)
Installing GitPython¶
Installing GitPython is easily done using pip. Assuming it is installed, just run the following from the command-line:
# pip install GitPython
This command will download the latest version of GitPython from the Python Package Index and install it to your system. More information about pip and pypi can be found here:
Alternatively, you can install from the distribution using the setup.py script:
# python setup.py install
In this case, you have to manually install GitDB as well. It would be recommended to use the git source repository in that case.
Limitations¶
Leakage of System Resources¶
GitPython is not suited for long-running processes (like daemons) as it tends to leak system resources. It was written in a time where destructors (as implemented in the __del__ method) still ran deterministically.
In case you still want to use it in such a context, you will want to search the codebase for __del__ implementations and call these yourself when you see fit.
Another way assure proper cleanup of resources is to factor out GitPython into a separate process which can be dropped periodically.
Getting Started¶
- GitPython Tutorial — This tutorial provides a walk-through of some of the basic functionality and concepts used in GitPython. It, however, is not exhaustive so you are encouraged to spend some time in the API Reference .
API Reference¶
An organized section of the GitPython API is at API Reference .
Source Code¶
GitPython’s git repo is available on GitHub, which can be browsed at:
and cloned using:
$ git clone https://github.com/gitpython-developers/GitPython git-python
Initialize all submodules to obtain the required dependencies with:
$ cd git-python $ git submodule update --init --recursive
Finally verify the installation by running unit tests:
$ python -m unittest
Questions and Answers¶
Please use stackoverflow for questions, and don’t forget to tag it with gitpython to assure the right people see the question in a timely manner.
Issue Tracker¶
The issue tracker is hosted by GitHub:
License Information¶
GitPython is licensed under the New BSD License. See the LICENSE file for more information.
© Copyright Copyright (C) 2008, 2009 Michael Trier and contributors, 2010-2015 Sebastian Thiel Revision b27a89f6 .
Настройка рабочей среды
Скачайте установочный файл Git for Windows со страницы загрузок и запустите его. На момент написания этого текста актуальной версией является 2.28.0. В процессе установки Вам будут заданы вопросы по конфигурации. В большинстве случаев подойдут рекомендуемые варианты.
Если в системе уже установлен редактор VS Code, то его можно выбрать в качестве редактора по умолчанию для Git:
Важным моментом является настройка обработки конца строки в файлах. Чтобы с этим не возникало проблем, необходимо выбрать вариант, который уже отмечен по умолчанию:

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

Проверьте, что установка завершилась успешно, открыв терминал и исполнив команду git . Результат должен выглядеть так:
> git usage: git [--version] [--help] [-C ] [-c =] [--exec-path[=]] [--html-path] [--man-path] [--info-path] [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] [--git-dir=] [--work-tree=] [--namespace=] []
В качестве терминала в Windows 10 мы рекомендуем использовать PowerShell.
Теперь необходимо задать имя пользователя и адрес электронной почты:
> git config --global user.name "Ivan Petrov" > git config --global user.email i.petrov@nsu.ru
Git хранит настройки в файле ~\.gitconfig . У автора этот файл выглядит следующим образом:
[user] email = vit.vorobiev@gmail.com name = Vitaly Vorobyev [core] editor = \"[path-to-vscode]" --wait
На этом первоначальная конфигурация инструментов git завершена. Навык работы с git приходит с практикой. Действия с git, необходимые для выполнения заданий курса, всегда будут подробно описаны. Тем не менее, мы рекомендуем обращаться к документации, чтобы прояснять непонятные моменты.
Источники
- First-Time Git Setup
- Введение
- Настройка рабочей среды
- Установка и настройка VS Code
- Что такое Git?
- Установка Git for Windows
- Установка компилятора
- Установка CMake
- Установка Miniconda3
- Установка библиотеки GoogleTest
- Как отправлять решение задач
Git и введение в Python
Два конспекта о том, как начать пользоваться гитом и гитхабом:
- ancatmara.gitbooks.io
- github.com/ElizavetaKuzmenko
Установка Python
Обращайте внимание на версию питона! Мы пишем на Python 3, предпочтительно версии 3.5 и новее.
Windows
macOS
https://brew.sh/ — установка через менеджер пакетов Homebrew, требует использования командной строки. После установки самого Homebrew выполните brew install python
Linux
Если вы используете современный популярный дистрибутив, то, скорее всего, у вас уже есть Python 3. Проверьте версию python3 —version
iOS
Pythonista — платное приложение (749₽) с полнофункциональным Python 3, но с ограниченной поддержкой сторонних модулей
Android
Pydroid 3 — приложение с полнофункциональным Python 3 (но с рекламой). Требует Android 4.4
Основы языка Python
Арифметика
Все действия этого раздела выполняйте прямо в интерпретаторе Python, используя idle или набрав python3 в терминале (выйти можно командой exit() ).

Базовые математические операции в Python делаются очень просто. Сложение и вычитание:
>>> 2 + 3 5 >>> 5 - 4 1Можно указывать несколько операций подряд:
>>> 4 - 5 + 3 2Умножение и деление совершается с помощью операторов * и / , а порядок действий привычный: сначала совершаются операции умножения и деления, а потом сложения и вычитания. Другой порядок действий указывается с помощью круглый скобок () .
>>> # Какой будет результат следующих вычислений? >>> ((6 - 7) * 2 + 3 * 5) / 2Обратите внимание, что здесь первая строка начинается с # . Такие строки не исполняются интерпретатором и называются комментариями.
До этого мы работали с целыми числами, пора перейти к десятичным дробным числам. Дробный разделитель в Python стандартен для англоязычного мира — это точка.
>>> 3.14 * 2.62 8.2268Указанные операторы, в целом, работают так как мы от них ожидаем. Более интересные операторы — это остаток от деления % и целая часть // :
>>> 3 // 2 1 >>> 3 % 2 1 >>> -3 // 2 -2 >>> -3 % 2 1 >>> 3.1 // 2 1.0 >>> 3.1 % 2 1.1 >>> 3.14 % 1.57 0.0Символ # можно использовать и для комментариев, идущих после кода. Заметьте, что все выражения отделены друг от друга началом новой строки, обычно Python считывает код построчно.
И еще один важный оператор — это возведение в степень:
>>> 2**3 8 >>> 2**-3 0.125Скипты и функция print
Для того, чтобы сохранить результат нашего программистского труда, понадобиться создать файл сценария (или, проще говоря, скрипт). Файлы со скриптами для Python обычно имеют расширение .py , а их имена лучше составлять из латинских букв, цифр и симоволов подчеркивания _ . Создадим файл arithmetic.py со следующим содержимым:
5 + 4 # ничего не напечатает print(3 + 2) # напечатает «5»
В IDLE создайте новый файл File -> New File. Этот файл можно запустить с помощью пункта меню Run -> Run Module или нажатием клавиши F5. Попутно вам предложат куда-нибудь сохранить ваш новый скрипт.
print() — это одна из встроенных функций языка Python. Конечно, с её помощью можно печатать не только числа.
>>> print('Hello world') # Напечатает Hello worldЗдесь мы впервые сталкиваемся со строками. Пока что нам достаточно знать, что в Python строки задаются любым выражением внутри одинарных или двойных кавычек.
Переменные
Пока что все наши программы выполняли каждую строку по отдельности. Чтобы создавать более сложные программы нам понадобяться переменные.
Создадим переменную number , содержащую целое число 1 и распечатаем её
number = 1 print(number) # напечатает «1» print('number') # напечатает «number» print('number =', number) # напечатает «number = 1»Ещё один пример:
>>> pi = 3.1415 >>> radius = 2.5 >>> length = 2 * pi * radius >>> area = pi * radius**2 >>> print('Круг с радиусом ', radius, 'имеет длину', length, 'и площадь', area) Круг с радиусом 2.5 имеет длину 15.707500000000001 и площадь 19.634375000000002К этому моменту мы познакомились с тремя типами переменных: целыми числами, дробными десятичными числами (а точнее с числами с плавающей точкой) и со строками. Между всеми этими типами переменных можно делать преобразования с помощью функций int() (от integer number), float() (от floating-point number) и str() (от string), соответственно. Простой пример:
>>> pi_string = '3.1415' >>> pi = float(pi_string) >>> three = int(pi) >>> print(three) 3Как установить Git на Windows
В этой инструкции покажем, как установить Git на Windows, и поможем выбрать правильные параметры при установке.
Эта инструкция — часть курса «Введение в Git».
Смотреть весь курс
Введение
В этой инструкции покажем, как установить Git на Windows, и поможем выбрать правильные параметры при установке. Затем создадим репозиторий и зафиксируем в нем изменения. Все это поможет вам сделать первые шаги в освоении Git.
Что такое Git и зачем он нужен
Git — это одна из самых популярных систем контроля версий (VCS). Такие системы помогают разработчикам хранить и версионировать исходный код приложений, настройки систем и другие текстовые файлы. И хотя ничего не мешает использовать VCS в других областях, чаще всего они применяются именно в IT.
Каждое состояние файлов в Git можно зафиксировать (сделать коммит), причем это навсегда останется в истории репозитория. Поэтому можно в любой момент посмотреть историю изменений файлов, сравнить различные версии и отменить отдельные изменения.
Также Git упрощает ведение параллельной разработки несколькими членами команды. Для этого используется ветвление. Условно можно сказать, что в Git-репозитории есть одна основная ветка, в которой хранится текущая стабильная версия исходного кода. Когда разработчик хочет изменить этот код, он «откалывает» себе отдельную ветку от основной и работает в ней. Когда работа закончена, он «вливает» изменения в основную ветку, чтобы его доработками смогли воспользоваться другие члены команды.
На самом деле все это описание довольно грубое, и по работе с Git можно написать не одну статью. На официальном сайте Git есть бесплатная электронная книга, в том числе она переведена на русский язык. А в этой статье мы сосредоточимся на установке Git в Windows и его первоначальной настройке.
Установка Git в Windows
Переходим на официальный сайт Git, в раздел загрузок. Мы увидим несколько вариантов установки: разные разрядности, портативная версия и даже установка из исходников. Мы выберем Standalone-версию, для этого проще всего нажать ссылку Click here to download, она всегда ведет на самую актуальную версию. Запускаем скачанный файл.
Выбор компонентов. Первый экран — выбор компонентов для установки. Если вам нужны дополнительные иконки на рабочем столе, или если вы хотите, чтобы Git ежедневно проверял наличие новой версии, — отметьте соответствующие опции. Остальные параметры лучше оставить по умолчанию.

Текстовый редактор по умолчанию. Необходимо выбрать редактор, который будет использовать Git — например, когда вы будете писать сообщение для коммита. Это не обязательно должен быть редактор, в котором вы планируете писать исходный код.
По умолчанию в установщике выбран Vim — консольный текстовый редактор, который для многих может показаться сложным в освоении. Если вы не знакомы с Vim и при этом хотите именно консольный редактор — выберите nano. Если у вас уже установлен какой-нибудь текстовый редактор — выбирайте его. Мы для примера будем использовать VSCode.

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

Способ использования Git. Первая опция сделает Git доступным только из командной строки Git Bash. Это не очень удобно, потому что не позволит пользоваться Git-ом из других оболочек или интегрировать его с редактором кода. Вторая опция самая оптимальная (ее мы и выберем) — она позволяет работать с Git-ом из разных оболочек и интегрировать его с другими приложениями. Третья опция кроме установки Git также «перезапишет» некоторые системные команды Windows аналогами из Unix, и эту опцию нужно выбирать только если вы точно понимаете, что делаете.

Выбор SSH-клиента. Изначально Git поставлялся со встроенным SSH-клиентом, но недавно появилась опция, где можно использовать внешний клиент. Если у вас уже что-то установлено на компьютере — можете выбрать вторую опцию. Мы же остановимся на первой, так как предварительно ничего не устанавливали.

Выбор SSL/TLS библиотеки. По умолчанию Git будет использовать свою OpenSSL библиотеку с заранее определенным списком корневых сертификатов. Обычно этого достаточно, но если вам нужно работать со внутренними репозиториям внутри компании, которые используют самоподписанные сертификаты, выберите вторую опцию. Тогда Git будет использовать библиотеку и сертификаты из вашей операционной системы.

Символы перевода строки. Существует два основных способа формирования конца строки в файлах — CRLF и LF. Первый используется в Windows, второй — в Unix-like системах. Первая опция позволяет извлекать файлы из репозитория в Windows-стиле, при этом отправлять файлы в репозиторий в Unix-стиле. Мы рекомендуем использовать этот вариант, потому что он лучше всего подходит для кросс-платформенной команды, когда над одним кодом могут работать разработчики на разных ОС.

Эмулятор терминала. Эмулятор, который будет использоваться в командной строке Git Bash. MinTTY — удобный вариант, поэтому он выбран по умолчанию. Встроенный эмулятор CMD не очень удобен, у него есть некоторые ограничения, поэтому выбирайте его, только если делаете это осознанно.

Стратегия git pull. Первая опция будет пытаться обновить историю коммитов без создания коммитов слияния. Это самый оптимальный и часто используемый вариант, оставим его.

Credential Manager. Установка этого параметра позволит Git запоминать логины и пароли для подключения к удаленным репозиториям (например, GitHub, GitLab или корпоративное хранилище) и не вводить их постоянно.

Дополнительные настройки. Кэширование позволит ускорить работу Git, эту опцию рекомендуем оставить. А вот символические ссылки нам не нужны.

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

Git установлен и готов к работе.
Установка в различные дистрибутивы Linux
Также коротко покажем, как можно установить Git в различные дистрибутивы Linux. Как правило, самостоятельно скачивать ничего не нужно, достаточно воспользоваться встроенным в дистрибутив пакетным менеджером.
Debian
pt-get install gitUbuntu
add-apt-repository ppa:git-core/ppa # apt update; apt install gitFedora 21
yum install gitFedora 22+
dnf install gitGentoo
emerge --ask --verbose dev-vcs/gitArch Linux
man -S gitOpenSUSE
ypper install gitMageia
rpmi gitFreeBSD
pkg install gitOpenBSD
g_add gitRHEL, CentOS, Oracle Linux и др.
Как правило, пакетный установит довольно старую версию Git, поэтому рекомендуется собирать Git из исходных кодов, или воспользоваться сторонним репозиторием IUS Community.
Первоначальная настройка и создание репозитория
Перед началом работы с Git нужно указать свое имя и email, которые в дальнейшем будут записываться в историю изменений при каждом коммите. В будущем это позволит понять, кто именно внес те или иные изменения.
Откроем любое из приложений — Git Bash или Git CMD. Первое — это командная строка в стиле Linux, второе — командная строка в стиле Windows. Выбирайте то, что вам ближе. Мы выберем Git Bash и выполним две команды:
git config --global user.email "git-user@selectel.ru" git config --global user.name "Selectel Git User"Теперь Git полностью готов к работе. Давайте создадим репозиторий и зафиксируем в нем первое изменение (сделаем коммит). Для начала создадим каталог для будущего репозитория и сразу перейдем в него:
mkdir first-repo && cd first-repoСоздаем новый репозиторий в этом каталоге:
git initInitialized empty Git repository in C:/Users/git_user/first-repo/.git/.Это означает, что в директории создан новый репозиторий. Далее создадим текстовый файл, назовем его README.md, и напишем в нем любой текст. Но сам по себе этот файл не попадет в следующий коммит. Мы должны проиндексировать изменения, то есть явно сказать Git-у, что этот файл нужно учитывать в следующем коммите:
git add README.mdДалее введем команду:
git commitОткроется текстовый редактор, который мы выбирали на этапе установки Git. Тут нам нужно ввести комментарий для коммита, то есть кратко описать изменение, которое мы сделали. Мы напишем такой комментарий:

Обратите внимание, что Git автоматически добавил небольшую подсказку в это окно. При этом она не войдет в коммит, потому что в начале строки стоит символ решетки, и Git проигнорирует ее. Но она может быть полезна для дополнительной проверки: мы видим название текущей ветки и список файлов, которые войдут в коммит.
Сохраним файл и закроем редактор. Увидим примерно следующее сообщение:
[master (root-commit) 2b8f7a5] Add readme file 1 file changed, 3 insertions(+) create mode 100644 README.mdМы успешно сделали первый коммит.
Работа с Git в визуальном интерфейсе
Сам по себе Git — это утилита командной строки. Но не всем может быть удобно запоминать и писать команды в терминале, поэтому часто разработчики пользуются графическим интерфейсом. Есть несколько вариантов:
- Встроенный GUI. В базовой установке Git есть две простые утилиты: gitk и git gui. Но у них довольно старый интерфейс и пользоваться ими не всегда удобно.
- Отдельные графические утилиты. Они могут быть понятны и красивы, но неудобны тем, что код нужно писать в одной программе, а для работы с Git нужно переключаться в другую. Примеры таких программ: GitKraken, Sourcetree, GitAtomic. Большой список таких клиентов есть на официальном сайте Git.
- Встроенные в IDE или текстовый редактор. В большинстве популярных редакторов кода или IDE уже есть поддержка Git. Как правило, ничего дополнительно настраивать не нужно. Мы рассмотрим именно такой вариант на примере редактора VSCode.
Откроем директорию с репозиторием в редакторе VSCode. Внесите любое изменение в файл README.md и сохраните изменения. Обратите внимание, что в левой части редактора кое-что изменилось:

- Файл README.md подсветился желтым цветом, а рядом с ним появилась буква M (означает Modified — изменен).
- На панели Source Code появилась цифра 1, означающая, что есть одно изменение, которое можно зафиксировать.
Перейдем на панель Source Code. Слева находится список файлов, которые были изменены. Если кликнем на файл, то увидим какие именно изменения мы внесли: в этом случае добавили новую строчку This is the second commit.

Теперь давайте зафиксируем наши изменения. Рядом с названием файла нажмем на «плюс», чтобы проиндексировать его. Это аналогично команде git add, которую мы выполняли ранее. Затем в поле Message внесем комментарий и нажмем кнопку Commit. Это аналогично команде git commit.
Поздравляем, вы сделали уже два коммита в свой репозиторий!
Заключение
Итак, мы рассмотрели процесс установки Git под Windows, рассказали об основных параметрах установки и последующей настройки. Увидели, как репозиторий и внести в него первый коммит. Познакомились с работой в командной строке и с помощью графического интерфейса.
Введение в Git: настройка и основные команды
