Установка Git на Debian 13, 12, 11: подробное руководство

Git — это распределённая система контроля версий, которая отслеживает изменения в коде, позволяет работать в команде, откатываться к предыдущим состояниям и управлять несколькими ветками одновременно. Git нужен практически каждому разработчику, независимо от языка программирования. В Debian Git можно установить из стандартных репозиториев (проще, но версия старее) или собрать из исходников (актуальная версия). Главные сложности для новичка: после установки нужно настроить имя и email (иначе Git не даст сделать коммит), а также, при сборке из исходников, правильно настроить PATH, чтобы не было конфликта с системной версией.

💡 В этом руководстве вы установите Git на Debian двумя способами: через APT (рекомендованный для большинства) и сборкой из исходников (если нужна самая свежая версия). Для source-сборки мы будем использовать официальный источник kernel.org с проверкой GPG-подписи, а также покажем альтернативный способ через GitHub API. Вы также узнаете, как настроить Git (имя, email, дефолтную ветку), основные команды и решить типичные проблемы.

В этой статье вы узнаете:

  • Как установить Git через APT (рекомендовано)
  • Как собрать Git из исходников (официальный источник kernel.org с проверкой GPG)
  • Как собрать Git из исходников (альтернативный способ через GitHub API)
  • Как настроить Git: имя, email, дефолтную ветку main
  • Основные команды: init, add, commit, push, pull
  • Как решить типичные проблемы: SSL-сертификаты, ошибки SSH, конфликт версий

Для кого: разработчики, системные администраторы, а также все, кому нужна система контроля версий на Debian 11, 12 или 13.

Оглавление

1. 🔧 Предварительные требования

Перед установкой убедитесь, что:

  • У вас установлена Debian 11, 12 или 13
  • Подключение к интернету стабильно
  • У вас есть права sudo

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.

Зачем: Эта команда проверяет, есть ли у вас права sudo. Без них вы не сможете устанавливать пакеты.

✅ Если выводит root — всё в порядке, можете продолжать.

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.

1.1 Обновление системы

Перед установкой всегда обновляйте список пакетов:

sudo apt update && sudo apt upgrade -y

Что делает:

  • sudo — права суперпользователя
  • apt update — обновляет список доступных пакетов из репозиториев
  • && — выполняет следующую команду только если предыдущая успешна
  • apt upgrade -y — обновляет все установленные пакеты до последних версий

Зачем: Это стандартная практика безопасности перед установкой нового ПО.

2. 📊 Сравнение способов установки Git

В Debian есть два основных способа установки Git. Вот их сравнение:

МетодОткудаВерсияОбновленияПлюсыМинусы
APT
рекомендовано
Репозитории
Debian
Debian 13: 2.47,
Debian 12: 2.39,
Debian 11: 2.30
Автоматически
через
apt upgrade
Простота,
безопасность,
минимум
усилий
Версия может
быть старой,
особенно на
Debian 11
Сборка из
исходников
kernel.org
(официальный)
Последняя
стабильная
ВручнуюМаксимальная
свежесть,
проверка
GPG-подписи
Требует установки
инструментов
сборки, ручное
обновление

💡 Рекомендация: Для большинства пользователей подойдёт APT. Сборку из исходников выбирайте, если вам нужна самая свежая версия Git или специфические опции компиляции.

3. 📦 Способ 1: Установка Git через APT (рекомендованный)

Этот способ подходит для большинства пользователей. Вы получаете стабильную версию, протестированную для вашего выпуска Debian.

3.1 Установка пакета

sudo apt install git -y

Что делает: Устанавливает Git из официальных репозиториев Debian.

3.2 Проверка версии и расположения

git --version
command -v git

Ожидаемый вывод в терминале (Debian 13):

git version 2.47.3
/usr/bin/git

Какие версии в разных Debian:

Версия DebianВерсия Git
Debian 13 (Trixie)2.47.x
Debian 12 (Bookworm)2.39.x
Debian 11 (Bullseye)2.30.x

4. 🔧 Способ 2: Сборка Git из исходников (актуальная версия)

Этот способ подходит, если вам нужна самая свежая версия Git (с новыми функциями). Мы покажем два варианта: официальный (kernel.org) и альтернативный (GitHub API).

4.1 Установка инструментов сборки и зависимостей

sudo apt install build-essential libssl-dev zlib1g-dev libcurl4-gnutls-dev libexpat1-dev gettext curl wget ca-certificates xz-utils gpg -y

Что делает: Устанавливает компилятор, утилиты и библиотеки для поддержки SSL, сжатия, HTTP и других функций.

4.2 Вариант А (основной): Официальный источник kernel.org с проверкой GPG

Этот вариант использует официальный сайт kernel.org и проверяет подпись архива. Рекомендуется для производственных систем.

# Создаём рабочую директорию
mkdir -p ~/git-build
cd ~/git-build

# Определяем последнюю версию
GIT_VERSION=$(curl -fsSL https://www.kernel.org/pub/software/scm/git/ | grep -oE 'git-[0-9]+\.[0-9]+\.[0-9]+\.tar\.xz' | sed 's/git-//; s/\.tar\.xz//' | sort -V | tail -n 1)
echo "Последняя версия Git: $GIT_VERSION"

# Скачиваем архив и подпись
curl -fLO "https://www.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.xz"
curl -fLO "https://www.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.sign"

# Распаковываем .tar из .xz
xz -dkf "git-${GIT_VERSION}.tar.xz"

# Проверяем подпись (требуется предварительно импортировать ключи разработчиков Git)
# Если вы не импортировали ключи, эта команда выдаст предупреждение, но не прервёт сборку
gpg --verify "git-${GIT_VERSION}.tar.sign" "git-${GIT_VERSION}.tar" 2>/dev/null || echo "Предупреждение: проверка GPG-подписи не выполнена (ключ не импортирован)"

# Распаковываем и собираем
tar -xf "git-${GIT_VERSION}.tar.xz"
cd "git-${GIT_VERSION}"
make prefix="/opt/git-${GIT_VERSION}" all
sudo make prefix="/opt/git-${GIT_VERSION}" install

# Создаём симлинк в /usr/local/bin
sudo ln -sfn "/opt/git-${GIT_VERSION}/bin/git" /usr/local/bin/git
hash -r

# Проверяем
command -v git
git --version

💡 Примечание про GPG: Для полной проверки подписи импортируйте публичные ключи разработчиков Git с официального сайта. Если ключи не импортированы, сборка продолжится с предупреждением — архив всё равно проверяется на целостность через SHA256 (косвенно, через подпись).

Где взять ключ, если не знаете:

# Импортировать ключи разработчиков Git можно командой:
# gpg --locate-keys git@kernel.org

4.3 Вариант Б (альтернативный): Использование GitHub API

Этот вариант может быть полезен, если kernel.org недоступен или для быстрой установки в тестовой среде.

# Создаём рабочую директорию
mkdir -p ~/git-build
cd ~/git-build

# Определяем последнюю версию через GitHub API
LATEST_TAG=$(curl -s https://api.github.com/repos/git/git/tags | grep -oP '"name": "v\K[0-9]+\.[0-9]+\.[0-9]+' | head -1)
echo "Последняя версия Git: $LATEST_TAG"

# Скачиваем архив
wget "https://github.com/git/git/archive/refs/tags/v${LATEST_TAG}.tar.gz"
tar -xzf "v${LATEST_TAG}.tar.gz"
cd "git-${LATEST_TAG}"

# Собираем и устанавливаем в версионированную директорию
make prefix="/opt/git-${LATEST_TAG}" all
sudo make prefix="/opt/git-${LATEST_TAG}" install

# Создаём симлинк в /usr/local/bin
sudo ln -sfn "/opt/git-${LATEST_TAG}/bin/git" /usr/local/bin/git
hash -r

# Проверяем
command -v git
git --version

4.4 Версионированная установка: почему это важно

Установка в /opt/git-ВЕРСИЯ (а не прямо в /usr/local) позволяет:

  • Легко откатиться к предыдущей версии
  • Удалить конкретную версию без риска повредить другие программы
  • Понимать, какая версия Git у вас установлена, просто посмотрев на директорию

4.5 Проверка установки

command -v git
git --version

Ожидаемый вывод: /usr/local/bin/git и версия (например, git version 2.54.0).

4.6 Создание скрипта для обновления source-сборки

Скрипт автоматически определяет последнюю версию с kernel.org, проверяет подпись, собирает и устанавливает новую версию рядом со старой, затем обновляет симлинк.

mkdir -p ~/git-build
cat > ~/git-build/update-git.sh << 'EOF'
#!/bin/bash
set -euo pipefail

INSTALL_BASE="/opt"
LINK_PATH="/usr/local/bin/git"
BUILD_DIR="$HOME/git-build"

# Проверка необходимых инструментов
for cmd in curl gpg make tar xz; do
    if ! command -v $cmd &> /dev/null; then
        echo "Ошибка: $cmd не установлен."
        exit 1
    fi
done

# Определение последней версии с kernel.org
GIT_VERSION=$(curl -fsSL https://www.kernel.org/pub/software/scm/git/ | grep -oE 'git-[0-9]+\.[0-9]+\.[0-9]+\.tar\.xz' | sed 's/git-//; s/\.tar\.xz//' | sort -V | tail -n 1)

if [ -z "$GIT_VERSION" ]; then
    echo "Ошибка: не удалось определить последнюю версию Git."
    exit 1
fi

# Определение текущей версии из симлинка
if [ -L "$LINK_PATH" ]; then
    CURRENT_VERSION=$(readlink -f "$LINK_PATH" | grep -oP 'git-\K[0-9]+\.[0-9]+\.[0-9]+' || echo "none")
else
    CURRENT_VERSION="none"
fi

echo "Текущая версия: $CURRENT_VERSION"
echo "Последняя версия: $GIT_VERSION"

if [ "$CURRENT_VERSION" = "$GIT_VERSION" ]; then
    echo "Git уже последней версии."
    exit 0
fi

cd "$BUILD_DIR"

# Скачивание архива и подписи
curl -fLO "https://www.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.xz"
curl -fLO "https://www.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.sign"
xz -dkf "git-${GIT_VERSION}.tar.xz"

# Проверка подписи (опционально)
gpg --verify "git-${GIT_VERSION}.tar.sign" "git-${GIT_VERSION}.tar" 2>/dev/null || echo "Предупреждение: проверка GPG-подписи не выполнена"

# Распаковка и сборка
tar -xf "git-${GIT_VERSION}.tar.xz"
cd "git-${GIT_VERSION}"
make prefix="${INSTALL_BASE}/git-${GIT_VERSION}" all
sudo make prefix="${INSTALL_BASE}/git-${GIT_VERSION}" install

# Обновление симлинка
sudo ln -sfn "${INSTALL_BASE}/git-${GIT_VERSION}/bin/git" "$LINK_PATH"
hash -r

echo "Обновление завершено!"
git --version
EOF

chmod +x ~/git-build/update-git.sh

Запуск обновления:

~/git-build/update-git.sh

Если текущая версия совпадает с последней, скрипт ничего не делает:

Текущая версия: 2.54.0
Последняя версия: 2.54.0
Git уже последней версии.

5. ⚙️ Настройка Git (обязательно!)

После установки Git нужно настроить ваше имя и email — они будут привязаны к каждому коммиту.

5.1 Установка имени и email

git config --global user.name "Ваше Имя"
git config --global user.email "your.email@example.com"

Что делает: Сохраняет настройки в файл ~/.gitconfig.

5.2 Установка дефолтного имени ветки (рекомендуется)

git config --global init.defaultBranch main

Что делает: Новые репозитории будут создаваться с веткой main вместо master.

5.3 Кэширование паролей для HTTPS-репозиториев

git config --global credential.helper "cache --timeout=18000"

Что делает: Сохраняет пароль в памяти на 5 часов (18000 секунд). Полезно, если вы работаете с HTTPS-репозиториями и не хотите вводить пароль каждый раз.

5.4 Проверка настроек

git config --list

6. 📝 Основные команды Git

КомандаЧто делает
git initСоздаёт новый репозиторий в текущей папке
git statusПоказывает статус файлов
(изменённые, новые, удалённые)
git add файлДобавляет файл в индекс (staging area)
git add .Добавляет все изменения в текущей папке
git commit -m "сообщение"Создаёт коммит
git logПоказывает историю коммитов
git remote add origin URLДобавляет удалённый репозиторий
git push -u origin mainОтправляет коммиты в удалённый репозиторий
git pull origin mainЗагружает изменения из удалённого репозитория

7. ⚠️ Решение типичных проблем

7.1 Ошибка: SSL certificate problem

Симптом: git push или git clone выдаёт ошибку:

fatal: unable to access 'https://github.com/...': SSL certificate problem: unable to get local issuer certificate

Причина: Проблемы с сертификатами CA.

Решение: Переустановите пакет ca-certificates:

sudo apt install --reinstall ca-certificates -y

7.2 Ошибка: Permission denied (publickey)

Симптом: При попытке git push по SSH появляется:

git@github.com: Permission denied (publickey).

Причина: SSH-ключ не настроен или не добавлен в аккаунт GitHub/GitLab.

Решение: Сгенерируйте ключ и добавьте его в аккаунт.

ssh-keygen -t ed25519 -C "your.email@example.com"
cat ~/.ssh/id_ed25519.pub

Затем скопируйте вывод и добавьте в настройках GitHub (SSH and GPG keys).

Проверка:

ssh -T git@github.com

7.3 Конфликт версий: после source-сборки показывает старый Git

Симптом: Вы собрали Git из исходников, но git --version показывает старую версию (из APT).

Причина: Ваш shell находит бинарный файл в /usr/bin (APT-версия) раньше, чем в /usr/local/bin (source-сборка).

Пошаговое решение:

Шаг 1: Проверьте, какой бинарный файл используется:

command -v git

Шаг 2: Если выводит /usr/bin/git, измените порядок PATH:

export PATH=/usr/local/bin:$PATH
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Шаг 3: Проверьте снова:

command -v git

Ожидаемый вывод: /usr/local/bin/git

7.4 Ошибка: Git не даёт сделать коммит (user.name и user.email не настроены)

Симптом: git commit выдаёт:

Author identity unknown
*** Please tell me who you are.

Решение: Настройте имя и email (раздел 5.1).

8. ❌ Удаление Git

Удаление APT-версии

sudo apt remove --purge git -y
sudo apt autoremove -y

Удаление source-сборки

# Удаляем симлинк
sudo rm -f /usr/local/bin/git

# Удаляем все версионированные установки
sudo rm -rf /opt/git-*

# Удаляем скрипт и рабочую директорию
rm -rf ~/git-build

Удаление конфигурации

rm -rf ~/.gitconfig ~/.git-credentials

Проверка удаления

command -v git

Ожидаемый вывод: Пустая строка.

9. 📝 Чек-лист: всё готово к работе

  • [ ] Система обновлена (sudo apt update && sudo apt upgrade -y)
  • [ ] Выбран и выполнен один из способов установки (APT / Source)
  • [ ] git --version показывает ожидаемую версию
  • [ ] command -v git показывает правильный путь (/usr/bin/git для APT, /usr/local/bin/git для Source)
  • [ ] Настроены имя и email (git config --list)
  • [ ] git init создаёт репозиторий без ошибок
  • Настроено кэширование паролей для HTTPS
  • [ ] (Для source-сборки) Скрипт обновления работает (~/git-build/update-git.sh)

Заключение

Вы установили Git на Debian. Если вы выбрали APT — получили стабильную, проверенную версию, которая будет обновляться вместе с системой. Если собрали из исходников — получили самую свежую версию с официального сайта kernel.org, с проверкой GPG-подписи и версионированной установкой в /opt/git-ВЕРСИЯ, которую можно обновлять скриптом из раздела 4.6. Главное, что нужно запомнить: после установки обязательно настройте имя и email, иначе Git не даст создавать коммиты. Для работы с удалёнными репозиториями (GitHub, GitLab) используйте SSH-ключи. Для HTTPS-репозиториев настройте кэширование паролей, чтобы не вводить их каждый раз.

Что дальше:

  • Изучите официальную документацию Git
  • Настройте SSH-ключи для работы с GitHub
  • Изучите работу с ветками: git branch, git merge, git rebase
  • Настройте Git для работы с несколькими удалёнными репозиториями
  • Рассмотрите графический интерфейс GitHub Desktop или gitk

Связанные статьи: