1.5 Введение — Установка Git
Прежде чем использовать Git, вы должны установить его на своём компьютере. Даже если он уже установлен, наверное, это хороший повод, чтобы обновиться до последней версии. Вы можете установить Git из собранного пакета или другого установщика, либо скачать исходный код и скомпилировать его самостоятельно.
Примечание
В этой книге используется Git версии 2.8.0. Хотя большинство используемых нами команд должны работать даже в старых версиях Git, некоторые из них могут не работать или действовать немного иначе, если вы используете старую версию. Поскольку Git отлично справляется с сохранением обратной совместимости, любая версия после 2.8 должна работать нормально.
Установка в Linux
Если вы хотите установить Git под Linux как бинарный пакет, это можно сделать, используя обычный менеджер пакетов вашего дистрибутива. Если у вас Fedora (или другой похожий дистрибутив, такой как RHEL или CentOS), можно воспользоваться dnf :
$ sudo dnf install git-all
Если же у вас дистрибутив, основанный на Debian, например, Ubuntu, попробуйте apt :
$ sudo apt install git
Чтобы воспользоваться дополнительными возможностями, посмотрите инструкцию по установке для нескольких различных разновидностей Unix на сайте Git https://git-scm.com/download/linux.
Установка на Mac
Существует несколько способов установки Git на Mac. Самый простой — установить Xcode Command Line Tools. В версии Mavericks (10.9) и выше вы можете добиться этого просто первый раз выполнив ‘git’ в терминале.
$ git --version
Если Git не установлен, вам будет предложено его установить.
Если Вы хотите получить более актуальную версию, то можете воспользоваться бинарным установщиком. Установщик Git для OS X доступен для скачивания с сайта Git https://git-scm.com/download/mac.
Рисунок 7. OS X инсталлятор Git
Установка в Windows
Для установки Git в Windows также имеется несколько способов. Официальная сборка доступна для скачивания на официальном сайте Git. Просто перейдите на страницу https://git-scm.com/download/win, и загрузка запустится автоматически. Обратите внимание, что это отдельный проект, называемый Git для Windows; для получения дополнительной информации о нём перейдите на https://gitforwindows.org.
Для автоматической установки вы можете использовать пакет Git Chocolatey. Обратите внимание, что пакет Chocolatey поддерживается сообществом.
Установка из исходников
Многие предпочитают устанавливать Git из исходников, поскольку такой способ позволяет получить самую свежую версию. Обновление бинарных инсталляторов, как правило, немного отстаёт, хотя в последнее время разница не столь существенна.
Если вы действительно хотите установить Git из исходников, у вас должны быть установлены следующие библиотеки, от которых он зависит: autotools, curl, zlib, openssl, expat и libiconv. Например, если в вашей системе используется dnf (Fedora) или apt-get (системы на базе Debian), вы можете использовать одну из следующих команд для установки всех зависимостей, используемых для сборки и установки бинарных файлов Git:
$ sudo dnf install dh-autoreconf curl-devel expat-devel gettext-devel \ openssl-devel perl-devel zlib-devel $ sudo apt-get install dh-autoreconf libcurl4-gnutls-dev libexpat1-dev \ gettext libz-dev libssl-dev
Для того, чтобы собрать документацию в различных форматах (doc, html, info), понадобится установить дополнительные зависимости:
$ sudo dnf install asciidoc xmlto docbook2X $ sudo apt-get install asciidoc xmlto docbook2x
Примечание
Пользователи RHEL и производных от неё (таких как CentOS или Scientific Linux) должны подключить репозиторий EPEL для корректной установки пакета docbook2X
Если вы используете систему на базе Debian (Debian/Ubuntu/Ubuntu-производные), вам так же понадобится установить пакет install-info :
$ sudo apt-get install install-info
Если вы используете систему на базе RPM (Fedora/RHEL/RHEL-производные), вам так же понадобится установить пакет getopt , который уже установлен в системах на базе Debian:
$ sudo dnf install getopt
К тому же из-за различий имён бинарных файлов вам понадобится сделать следующее:
$ sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
Когда все необходимые зависимости установлены, вы можете пойти дальше и скачать самый свежий архив с исходниками из следующих мест: с сайта Kernel.org https://www.kernel.org/pub/software/scm/git, или зеркала на сайте GitHub https://github.com/git/git/releases. Конечно, немного проще скачать последнюю версию с сайта GitHub, но на странице kernel.org релизы имеют подписи, если вы хотите проверить, что скачиваете.
Затем скомпилируйте и установите:
$ tar -zxf git-2.8.0.tar.gz $ cd git-2.8.0 $ make configure $ ./configure --prefix=/usr $ make all doc info $ sudo make install install-doc install-html install-info
После этого вы можете получать обновления Git посредством самого Git:
$ git clone git://git.kernel.org/pub/scm/git/git.git
Просто про Git
Git — распределенная система контроля версий, она облегчает работы с исходными кодами. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, работать с этими изменениями, обеднять, добавлять, отменять.
Распределенная системы позволяет делиться своими изменениями с другими участниками проекта, и дает возможно вместе работать над одним проектом.
Системы контроля изменений встроена почти в каждый текстовый редактор. Когда в «Word» или в «sublime text», «VScode», нажимаем комбинацию из клавиш: `ctrl + z` — тогда в последние изменения в файле отменяются, а если мы нажмем: `ctrl + shift + z` — в таком случае отмененные изменения вновь применяться.*
* "ctrl + z" - в ОС windows для OC linux или macOS - "cmd + z" "ctrl+shift+z"-в ОС windows для OC linux или macOS - "cmd+shift+z"
Другими словами, отменяя изменения мы делаем «шаг назад», вновь применяя отмененные изменения мы делаем «шаг вперед» по уже протоптанной нами дорожке. Но само собой это работает только в том случае если мы «ходим» по «протоптанной дорожке».
Вернемся к git, если работая с классическими редакторами мы имеем только «одну тропинку», то git позволяет нам создавать много таких тропинок и по необходимости перепрыгивать с одной на другую, мы можем создавать новую тропинку из старой а потом совмещать их в одну. С git мы можем жестко фиксировать каждый шажок — изменение, и как-будто используя ‘ctrl+z’ откатываться на предыдущий шаг и т.д. Но довольно аналогии, надеюсь вы поняли общую концепцию git. В любом случае хочу посоветовать следующие материалы:
- https://git-scm.com/doc — документция по git (есть на русском)
- Version Control with Git: Powerful tools and techniques for collaborative software development
- Git Internals Peepcode PDF
- Pro Git
В целом, git — набор консольных утилит, безусловно у него есть надстройки в виде GUI, но вернемся к ним чуть позже, пока сосредоточимся на работе git в cli.
Работа с git репозиторием может строиться по нескольким сценариями:
- Нет локального репозитория ни удаленного
- Есть удалленный репозиторий но нет локального
- Есть локальный репозиторий и удаленный — классическая работа
Для начала рассмотрим вариант когда у нас нет ни какого репозитория, есть только папка нашего проекта, проект может состоять из одного файла.
Нам необходимо в консоле нашей ОС зайти в папку проекта, и первым делом инициализировать в папке наш репозиторий — объявить что данная папка это репозиторий, инициализация происходи одной командой:
git init
* Внимание: инициализировать репозиторий необходимо один раз на одной компьютере, и только в корневой папке проекта
После создания репозитория, нам необходимо сообщить git в каких файлах ему необходимо отслеживать изменения, но проект новый и количество файлов может быть огромным, для экономии временни мы добавим все файлы и все папки находящиеся в корневой директории, для этого используем команду:
git add .
* Внимание: данная команда добавит для отслеживания все объекты в директории, иногда это может быть не желательно т.к. директория проекта может содержать объекты которые не надо добавлять в git и в репозиторий, например: файл БД, конфигурационные файлы с паролями, медиа файлы (картинки, видео, аудио файлы)
После указания гиту файлов для отслеживания, мы должны зафиксировать (закомитить — от слова комит, commit) изменения в выше указанных файлах, сделаем это командой:
git commit -m "first commit"
* примечание: данную команду всегда используем с флагом «-m» и аргументом, который является комментарием
Далее нам необходимо указать адрес удаленного сервера, где будет храниться «главная копия» нашего репозитория.
git remote add origin git@github.com:username/name_project.git
* примечание: адрес можно получить при создании репозитория, через интерфейс
После фиксирования всех изменений, нам необходимо отправить изменения на сервер (сделать первый push), делать мы это будем с указанием новой ветки т.к. на сервере нет нечего и не создано пока ни одной ветки.
git push -u origin master
Готово! Мы создали репозитория и сохранили (запушили) его на сервере.
Рассмотрим сценарий, когда нас пригласили работать над новым для нас, проектом, но проект уже существует в удаленном репозитории, и нам нужно клонировать репозиторий к себе локально. Клонирование репозитория происходи следующей командой:
git clone git@github.com:username/name_project.git
* примечание: адресы репозитория нам должен сообщить хозяин репозитория
После клонирования репозитория мы получаем полностью готовы и настроенный проект. Мы можем начинать работать над проектом, вносить изменения и т.д. если работать в master ветке считается приемлемым в вашем проекте.
После того как вы внесли изменения в проект, нам необходимо сообщить git в каких файлах ему необходимо отслеживать изменения, но проект новый и количество файлов может быть огромным, для экономии временни мы добавим все файлы и все папки находящиеся в корневой директории, для этого используем команду:
git add name_file.py
* примечание: также можно указывать список файлов через пробел, например: «git add file1.py file2.py file3.py»
Создаем комит — фиксируем все изменения из файлах которые мы добавили предыдущей командой ‘добавить’.
git commit -m "first commit"
* Обратите внимание, что вводить комментарий необходимо каждый раз, в ваших же интересах писать как можно более осмысленны message 🙂
Работая в ветке которая уже есть на удаленном сервере, необходимо помнить что её могут изменить, и ваша локальная версия ветки может устареть, для этого необходимо скачать последние версию с сервера, что можно сделать командой:
git pull
* примечание: При работе с данной командой может возникнуть конфликт — двух версий (между вашей локальной копией и копией на сервере), требующего решения
Пройдя весь путь, нам теперь необходимо сохранить наши изменения на сервере, возвращаясь к началу напоминаю что git — распределенная система, чтобы все кто работает над проектом вместе с вами увидели ваши изменения, и просто чтобы сделать резервную копию на удаленном сервере, мы должны послать (в дословном переводе «толкнуть») наши изменения, командой:
git push
* Надо помнить, при работе с веткой внося изменения, мы создаем новую версию, но тем временем кто-то тоже может работать с вашей веткой и обновлять версию на сервере быстрее и чаще чем вы, поэтому не забывайте делать «git pull»
Мы прошли сценарий от начала и до конца, теперь такой путь нам надо будет повторять раз за разом, вы быстро привыкните и освоитесь. А когда начнете пользоваться git через gui интерфейс, весь этот путь вы будете пробивать менее чем за минуту.
Некоторые другие другие команды git.
Работа с git предполагает наличие нескольких веток
Чтобы посмотреть список всех локальных «веток», воспользуемся командой:
git branch
* примечание: команда ‘git branch’ выведет список лишь тех веток которые вы создали на локальной машине, они отличаются от тех что хранятся на сервере
Переключение между ветками
git checkout
* примечание: в качестве аргумента, куда переключаться, можно указывать не только имя ветки но и hash commit
Работая с несколькими ветками и переключаясь между ними может появляться
git checkout .
* примечание: будте осторожны используя данную команду, она удалит все не за комментируемые (зафиксированные) измененния
Для просмотра не зафиксированных изменений, используем команду:
git status
Более краткую версию можно прочитать здесь.
Новости
16 ноября 2019
Учимся использовать API сервиса Yandex SpeechKit
8 ноября 2019
Learn Python в Пензе
PIP Install Git – A quick read
Try a faster and easier way to work with Python packages like Exchangelib. Use Python 3.9 by ActiveState and build your own runtime with the packages and dependencies you need. Get started for free by creating an account on the ActiveState Platform or logging in with your GitHub account.
Pip/pip3 is the official package manager for Python, and is the tool recommended by the Python Packing Authority (PyPA) for installing Python packages. The term ‘pip’ is used interchangeably with ‘pip3’ in this Quick Guide.
By default, pip installs packages and all their required dependencies from the Python Package Index (PyPI), using the command:
pip install .
However, pip doesn’t currently support dependency resolution, which can lead to corrupted environments. To avoid this, you may want to try the ActiveState Platform, which is the only Python package management solution that automatically resolves dependencies, flags conflicts, and will even suggest a manual workaround to resolve the conflict. Get started with the ActiveState Platform by signing up for a free account.
Git Version Control
Git is a Version Control System (VCS) for managing changes in source code, as well as other types of files (eg. html) and file structures in Git repositories. It allows developers to collaborate on projects without conflict.

A Git repository is a .git/ folder inside a software development project. You can deploy Git locally, or use it via a hosted service, such as Github, Gitlab or Bitbucket.
One of the advantages of using pip together with Git is to install the latest commits of unreleased Python packages as branches from Github. Some examples of this are provided below.
Git Installation Prerequisites
First determine whether you have up-to-date versions of Python, pip, and Git. You can check which version of Python (if any) is installed, by entering the following command in a terminal or command window:
python --version
Output should be similar to:
Python 3.8.2
You can check if pip is already installed and up-to-date by entering the following command:
pip --version
Output should be similar to:
pip 20.0.2 from C:\Python38\lib\site-packages\pip (python 3.8)
If either Python or pip is not installed or up-to-date, the simplest way to get an up-to-date Python version with pip for either Linux, MacOS or Windows, is to install Python 3.9 from ActiveState.
Git Installation
Before installing Git, you should first determine whether you have it installed by running the following git command:
git --version
Output should be similar to:
git version 2.32.0.windows.2
For Linux:
Most Linux platforms already have a basic Git installation by default, but they are generally not up-to-date. Git installation commands for various Linux platforms are listed here:
- Debian-based installation, such as Ubuntu:
sudo apt install git-all
apt-get install git
- RHEL and CentOS:
sudo dnf install git-all
# Up to Fedora 21:
yum install git
# Fedora 22 and later:
dnf install git
- openSUSE:
zypper install git
For macOS:
Although MacOS comes with a command line tools installer that includes Git, Homebrew is the recommended option for macOS Git installation.
To install Homebrew, run the following script in your terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Once Homebrew is installed, you can install Git with the following command:
brew install git
For Windows:
To install Git for Windows, point your browser at https://git-scm.com/download/win. A download of the Windows Git installer will begin automatically. Once complete, you can double-click the installer and follow the steps.
First-Time Git Setup
Once Git is installed, your Git environment and configuration variables need to be customized with git config.
You can view your default Git configuration options with the following command:
git config -h
Output should be similar to:
usage: git config [] .
Set Your Git Identity
Set your user name and email address. This is important because every Git commit uses this information:
git config --global user.name "John Doe" git config --global user.email johndoe@example.com
This only needs to be done once on each computer, if you include the –global option.
After you have set your user name and email address, you can check your settings with the following command:
git config --list
Git Usage
Once your Git identity has been configured, you can begin using Git to install Github branches.
Pip Install Git Syntax
The following command syntax can be used to install the default branch of a github project:
pip install git+https://github.com// .git
Pip Install Git Branch – Example
To install the latest commit of the Exchangelib package, run:
pip install git+https://github.com/ecederstrand/exchangelib
Pip Install Git Subdirectory
This feature is not yet available.
Pip Install Git Version
To pip install a specific version of a repository branch, enter:
pip install https://git+github.com// .git.@
Pip Install Git Requirements.txt
To include Git dependencies and submodules dependencies, located at:
in a requirements.txt file:
# requirements.txt should include:
packageA== -e https://github.com// .git@ #egg=
# Install requirements.txt file with -r flag:
pip install -r requirements.txt
Git Clone – Syntax
The Git clone command is used in cloning or downloading a Git project without installing it.
First navigate to the directory where you to locate the cloned repository, then enter:
git clone https://github.com//
Github Desktop – Clone with SSH Option
Github Desktop is a Windows Github Git client for cloning. It has an SSH authentication option that requires a public SSH key. A link with directions is included.

Figure 1. Github Desktop > Clone > SSH Option:
Pip Install Git With SSH
The following syntax will use SSH to install a Git repository that is not password protected:
pip install git+ssh://github.com/ /.git@ #egg=
A modern solution to Python package management – Try ActiveState’s Platform
Dependency resolution is at the core of the ActiveState Platform. When you create a project and start adding requirements, the Platforms tell you what dependencies those requirements have.
The ActiveState Platform is a cloud-based build tool for Python. It provides build automation and vulnerability remediation for:
- Python language cores, including Python 2.7 and Python 3.5+
- Python packages and their dependencies, including:
- Transitive dependencies (ie., dependencies of dependencies)
- Linked C and Fortran libraries, so you can build data science packages
- Operating system-level dependencies for Windows, Linux, and macOS
- Shared dependencies (ie., OpenSSL)
- Find, fix and automatically rebuild a secure version of Python packages like Django and environments in minutes

The ActiveState Platform aims to handle every dependency for every language. That means handling libraries down to the C/C++ level, external tools, and all the conditional dependencies that exist. To take things even further, our ultimate goal is to support multi-language projects. That means that you can create a project using both Python and Perl packages, and we’ll make sure that both languages are using the same (up to date) OpenSSL version.
Python Package Management In Action
Get a hands-on appreciation for how the ActiveState Platform can help you manage your dependencies for Python environments. Just run the following command to install Python 3.9 and our package manager, the State Tool:
Windows
powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://platform.activestate.com/dl/cli/install.ps1'))) -activate-default ActiveState-Labs/Python-3.9Beta"
Linux
Now you can run state install . Learn more about how to use the State Tool to manage your Python environment.
Let us know your experience in the ActiveState Community forum.
Watch this video to learn how to use the ActiveState Platform to create a Python 3.9 environment, and then use the Platform’s CLI (State Tool) to install and manage it.
Как добавить Git в Pycharm
В какой-то момент, после долгих мучений с сохранениями и миграцией проектов, любой начинающий программист задается вопросом как добавить git в pycharm для того, что бы этот проект загрузить на GitHub.
Скачать и правильно установить Git
- Скачиваем Git на официальном сайте;
- Устанавливаем на свой рабочий ПК (все можем ставить по умолчанию, только в одном месте изменить, где нам нужно отметить: Override the defaul branch name for new repositories)

Далее, после установки Git и для корректной его работы, не забываем перегрузить ПК.
Как добавить git в pycharm
На самом деле, здесть тоже все просто, естественно сам Pycharm у вас должен уже быть установлен! Если еще нет, смотрите здесь как это правильно сделать.
- Запускаем PyCharm и создаем проект;
- В меню находим пункт VCS -> Create Git Repository
- В окне с проектами выбираем тот, который нам нужен (если мы открыли с нужного нам проекта, то нажимаем ОК) и нажимаем ОК;

Как создать commit
Итак, после того как мы создали репозиторий, в блоке файлового менеджера файл main.py стал красным, меню VCS пропало, вместо него теперь пункт меню GIT, и справа вверху появилось 2 стрелочки, синяя вниз и зеленая вверх, а между ними зеленая галочка:
Как добавить git в pycharm
Вот как раз цвет имени файла и говорит нам о том, что этот файл не находится под контролем Гита, т.е. не выполнен коммит.
Что бы его выполнить, необходимо нажать на зеленую галочку справа, и откроется дополнительное окно с выбором файлов, которые необходимо отправить в commit, выберите эти файлы, т.е. установите галочки в соответвующие чек-боксы, потом обязательно дайте название вашему коммиту, т.е. впишите информацию о данной версии программы в поле Commit Message и нажмите на кнопку Commit:

Если все сделали правильно, через несколько секунд слева внизу PyCharm будет сообщение о том, что столько-то файлов закомичено, а название файла проекта, т.е. в нашем случае это main.py становится серого цвета:

Подведем краткий итог:
- Cкачали и установили Git;
- Мы разобрались как добавить git в pycharm;
- Как выполнить commit.
