Git — это распределённая система контроля версий, которая отслеживает изменения в коде, позволяет работать в команде, откатываться к предыдущим состояниям и управлять несколькими ветками одновременно. Git нужен практически каждому разработчику, независимо от языка программирования. В Debian Git можно установить из стандартных репозиториев (проще, но версия старее) или собрать из исходников (актуальная версия). Главные сложности для новичка: после установки нужно настроить имя и email (иначе Git не даст сделать коммит), а также, при сборке из исходников, правильно настроить PATH, чтобы не было конфликта с системной версией.
💡 В этом руководстве вы установите Git на Debian двумя способами: через APT (рекомендованный для большинства) и сборкой из исходников (если нужна самая свежая версия). Вы также узнаете, как настроить Git (имя, email, дефолтную ветку), основные команды и решить типичные проблемы.
В этой статье вы узнаете:
- Как установить Git через APT (рекомендовано)
- Как собрать Git из исходников (актуальная версия)
- Как настроить 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 |
| Сборка из исходников | GitHub | Последняя стабильная (2.52+) | Вручную | Максимальная свежесть | Требует установки инструментов сборки, ручное обновление |
💡 Рекомендация: Для большинства пользователей подойдёт APT. Сборку из исходников выбирайте, если вам нужна самая свежая версия Git или специфические опции компиляции.
3. 📦 Способ 1: Установка Git через APT (рекомендованный)
Этот способ подходит для большинства пользователей. Вы получаете стабильную версию, протестированную для вашего выпуска Debian.
3.1 Установка пакета
sudo apt install git -y
Что делает: Устанавливает Git из официальных репозиториев Debian.
3.2 Проверка версии
git --version
✅ Ожидаемый вывод в терминале (Debian 13):
git version 2.47.3
Какие версии в разных 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 (с новыми функциями).
4.1 Установка инструментов сборки и зависимостей
sudo apt install build-essential libssl-dev zlib1g-dev libcurl4-gnutls-dev libexpat1-dev gettext curl wget ca-certificates -y
Что делает: Устанавливает компилятор, утилиты и библиотеки для поддержки SSL, сжатия, HTTP и других функций.
4.2 Определение последней версии и скачивание исходников
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)
wget "https://github.com/git/git/archive/refs/tags/v${LATEST_TAG}.tar.gz"
Что делает: Запрашивает GitHub API для получения последнего тега версии Git, извлекает номер и скачивает архив.
4.3 Распаковка и конфигурация
tar -xvf v${LATEST_TAG}.tar.gz
cd git-*/
make prefix=/usr/local all
Что делает: Распаковывает архив, переходит в директорию с исходниками и компилирует Git (без установки).
4.4 Установка
sudo make prefix=/usr/local install
Что делает: Устанавливает собранный Git в /usr/local.
4.5 Проверка установки
git --version
✅ Ожидаемый вывод: Более новая версия, чем в APT (например, git version 2.52.0).
4.6 Создание скрипта для обновления source-сборки
mkdir -p ~/git-build
cat > ~/git-build/update-git.sh << 'EOF'
#!/bin/bash
set -e
INSTALL_PREFIX="/usr/local"
BUILD_DIR="$HOME/git-build"
for cmd in curl wget make gcc tar; do
if ! command -v $cmd &> /dev/null; then
echo "Ошибка: $cmd не установлен."
echo "Установите: sudo apt install build-essential curl wget ca-certificates"
exit 1
fi
done
CURRENT_VERSION=$($INSTALL_PREFIX/bin/git --version 2>/dev/null | grep -oP '[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "none")
LATEST_VERSION=$(curl -s https://api.github.com/repos/git/git/tags | grep -oP '"name": "v\K[0-9]+\.[0-9]+\.[0-9]+' | head -1)
if [ -z "$LATEST_VERSION" ]; then
echo "Ошибка: не удалось определить последнюю версию Git."
exit 1
fi
if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
echo "Git уже последней версии: $CURRENT_VERSION"
exit 0
fi
echo "Обновление Git с $CURRENT_VERSION до $LATEST_VERSION"
cd "$BUILD_DIR"
rm -rf git-*
wget -q "https://github.com/git/git/archive/refs/tags/v$LATEST_VERSION.tar.gz"
tar -xvf "v$LATEST_VERSION.tar.gz"
cd git-*/
make prefix="$INSTALL_PREFIX" all
sudo make prefix="$INSTALL_PREFIX" install
echo "Git успешно обновлён до $(git --version)"
EOF
chmod +x ~/git-build/update-git.sh
Запуск обновления:
~/git-build/update-git.sh
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 Проверка настроек
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: Проверьте, какой бинарный файл используется:
which git
Шаг 2: Если выводит /usr/bin/git, измените порядок PATH:
export PATH=/usr/local/bin:$PATH
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Шаг 3: Проверьте снова:
which git
✅ Ожидаемый вывод: /usr/local/bin/git
8. ❌ Удаление Git
Удаление APT-версии
sudo apt remove --purge git -y
sudo apt autoremove -y
Удаление source-сборки
sudo rm -rf /usr/local/bin/git*
sudo rm -rf /usr/local/libexec/git-core
sudo rm -rf /usr/local/share/git-core
rm -rf ~/git-build
Удаление конфигурации
rm -rf ~/.gitconfig ~/.git-credentials
Проверка удаления
command -v git
✅ Ожидаемый вывод: Пустая строка.
9. 📝 Чек-лист: всё готово к работе
- [ ] Система обновлена (
sudo apt update && sudo apt upgrade -y) - [ ] Выбран и выполнен один из способов установки (APT / Source)
- [ ]
git --versionпоказывает ожидаемую версию - [ ] Настроены имя и email (
git config --list) - [ ]
git initсоздаёт репозиторий без ошибок - [ ] (Для source-сборки) Скрипт обновления работает (
~/git-build/update-git.sh)
Заключение
Вы установили Git на Debian. Если вы выбрали APT — получили стабильную, проверенную версию, которая будет обновляться вместе с системой. Если собрали из исходников — получили самую свежую версию, которую можно обновлять скриптом из раздела 4.6. Главное, что нужно запомнить: после установки обязательно настройте имя и email, иначе Git не даст создавать коммиты. Для работы с удалёнными репозиториями (GitHub, GitLab) используйте SSH-ключи.
Что дальше:
- Изучите официальную документацию Git
- Настройте SSH-ключи для работы с GitHub
- Изучите работу с ветками:
git branch,git merge,git rebase - Настройте Git для работы с несколькими удалёнными репозиториями
- Рассмотрите графический интерфейс GitHub Desktop или
gitk