
Git скачать бесплатно можно на официальном сайте git-scm.com: для Windows это установщик Git for Windows вместе с Git Bash, на macOS Git ставится командой xcode-select --install или через Homebrew, в Linux — из пакетного менеджера дистрибутива. После установки проверьте версию командой git --version и задайте имя и почту для коммитов.
Что такое Git простыми словами
Git — это система контроля версий: программа, которая запоминает, как менялись файлы проекта, кто и зачем их менял, и позволяет вернуться к любому сохранённому состоянию. Git работает локально, на вашем компьютере, и не требует сервера или интернета. GitHub, GitLab, Gitflic и похожие сервисы — это уже площадки для хранения копий репозиториев и совместной работы, а не сам Git.
Три понятия, без которых дальше будет непонятно:
- Репозиторий — папка проекта, внутри которой есть скрытый каталог
.git. В нём Git хранит всю историю: каждую версию каждого файла, ветки, настройки репозитория. - Коммит — сохранённый снимок проекта с подписью: кто автор, когда и с каким сообщением. Коммит неизменяем, у него есть уникальный идентификатор (хэш), по которому к нему можно вернуться.
- Ветка — подвижный указатель на цепочку коммитов. В отдельной ветке можно делать новую функцию, не трогая рабочую версию, а потом слить изменения обратно командой
git merge.
Между рабочими файлами и коммитом есть промежуточная зона — индекс (staging area). Команда git add кладёт изменения в индекс, а git commit сохраняет всё, что в нём лежит, одним снимком. Так можно закоммитить только часть правок, а остальное оставить на потом.
Где скачать Git официально
Единственный первоисточник — страница загрузок проекта git-scm.com/downloads. Сайт сам определяет вашу систему и показывает нужный вариант. Для Windows ссылка ведёт на сборку проекта Git for Windows (gitforwindows.org), исходники которой лежат на GitHub. Скачивать Git со сторонних файлообменников и «сборников софта» не нужно: программа бесплатная и распространяется под лицензией GPLv2, так что платить или искать «ключ» не за что, а модифицированный установщик — классический способ подсунуть троян.
| Система | Как поставить | Что получите |
|---|---|---|
| Windows 10/11 | Установщик .exe с git-scm.com или winget install --id Git.Git -e --source winget | git, Git Bash, Git GUI, Git Credential Manager |
| Windows без прав администратора | Портативная версия (Portable) с той же страницы загрузок | git и Git Bash в распакованной папке, без записи в систему |
| macOS | xcode-select --install или brew install git | Git от Apple в составе Command Line Tools или свежая версия из Homebrew |
| Debian, Ubuntu | sudo apt update && sudo apt install git | Версия из репозитория дистрибутива |
| Fedora, RHEL, AlmaLinux | sudo dnf install git | Версия из репозитория дистрибутива |
| Arch Linux | sudo pacman -S git | Обычно самая свежая версия среди дистрибутивов |
Как установить Git на Windows 10 и 11
Скачайте 64-битный установщик (Git for Windows/x64 Setup) и запустите его. Большинство экранов можно пройти с настройками по умолчанию — они разумные. Ниже те шаги, где выбор действительно на что-то влияет. Точный порядок и формулировки экранов меняются от версии к версии, но смысл остаётся тем же.
- Select Destination Location — папка установки, по умолчанию
C:\Program Files\Git. Менять без причины не стоит. - Select Components — отметьте интеграцию в контекстное меню Проводника (пункт Open Git Bash here) и, если хотите, ярлык на рабочем столе. Остальное оставьте как есть.
- Choosing the default editor used by Git — по умолчанию стоит Vim. Если вы с ним не знакомы, выберите Visual Studio Code или Notepad++: в этом редакторе Git будет открывать сообщения коммитов и слияний. Иначе при первом
git commitбез-mвы окажетесь в Vim и не поймёте, как из него выйти (ответ:Esc, затем:wqи Enter). - Adjusting the name of the initial branch — выберите вариант с переопределением и впишите
main. Так новые репозитории будут создаваться с веткой main, как на GitHub и GitLab. - Adjusting your PATH environment — оставьте рекомендуемый вариант, при котором Git доступен из командной строки и сторонних программ. Именно он нужен, чтобы
gitработал в cmd, PowerShell, VS Code и PyCharm. - Choosing the SSH executable — встроенный OpenSSH подходит почти всем.
- Configuring the line ending conversions — для Windows по умолчанию Git при выгрузке файлов превращает переводы строк в формат Windows (CRLF), а при коммите — обратно в Unix (LF). Для кроссплатформенных проектов это правильный выбор.
- Configuring the terminal emulator — MinTTY удобнее стандартной консоли: нормально работает выделение, копирование и изменение размера окна.
- Choose a credential helper — оставьте Git Credential Manager. Он сохранит вход в GitHub или GitLab, и пароль или токен не придётся вводить при каждом
git push.
Если удобнее без мастера, откройте PowerShell или командную строку и выполните команду из менеджера пакетов Windows:
winget install --id Git.Git -e --source winget
После установки закройте и заново откройте все окна терминала: PATH обновляется только в новых сессиях. Про саму командную строку, её отличия от PowerShell и полезные команды подробно рассказано в статье о командной строке Windows.
Что такое Git Bash и зачем он нужен
Git Bash — это терминал с оболочкой bash, который ставится вместе с Git for Windows. В нём работают привычные по Linux команды: ls, cat, grep, ssh, ssh-keygen. Отдельно Git Bash скачивать не нужно — он входит в установщик Git for Windows. Пользоваться именно им не обязательно: git одинаково работает в cmd и PowerShell. Git Bash удобен, когда вы копируете команды из инструкций, написанных для Linux и macOS.
Как проверить, установлен ли Git
Откройте любой терминал и выполните:
git --version
Если Git установлен, вы увидите строку вида git version 2.x.x.windows.1. Если в cmd появилось «"git" не является внутренней или внешней командой, исполняемой программой или пакетным файлом», а в PowerShell — «The term 'git' is not recognized», значит Git не установлен или его нет в PATH. Узнать, откуда запускается git, можно так:
where git :: командная строка cmd
Get-Command git # PowerShell
which git # Git Bash, macOS, Linux
Обновить уже установленный Git for Windows можно, скачав свежий установщик и запустив его поверх старой версии, либо командой winget upgrade --id Git.Git.
Как установить Git на Mac
На macOS есть два пути. Первый — Command Line Tools от Apple:
xcode-select --install
Система покажет окно установки инструментов разработчика; после неё команда git --version заработает. Часто достаточно просто набрать git --version в Терминале: если Git ещё нет, macOS сама предложит поставить эти инструменты.
Второй путь — Homebrew, если он у вас уже есть. Так версия обычно свежее, чем у Apple, и обновляется вместе с остальными пакетами:
brew install git
brew upgrade git
Если после установки через Homebrew git --version показывает старую версию, в PATH первым стоит /usr/bin/git от Apple. Проверьте командой which -a git: путь от Homebrew (/opt/homebrew/bin/git на Apple Silicon, /usr/local/bin/git на Intel) должен стоять первым.
Как установить Git на Linux и Ubuntu
В Linux Git ставится из пакетного менеджера — скачивать что-то с сайта вручную не нужно:
# Debian, Ubuntu, Linux Mint
sudo apt update
sudo apt install git
# Fedora, RHEL, AlmaLinux, Rocky
sudo dnf install git
# Arch Linux
sudo pacman -S git
# openSUSE
sudo zypper install git
На серверах с долгой поддержкой (LTS-релизы) версия Git в репозитории может заметно отставать от актуальной. Для работы с сайтом этого почти всегда хватает; если нужна свежая версия, список официальных вариантов для каждого дистрибутива есть на странице git-scm.com для Linux.
Первичная настройка Git
Сразу после установки Git нужно представить: каждое сохранённое изменение подписывается именем и почтой, и без них git commit выдаст ошибку «Please tell me who you are». Настройки с ключом --global пишутся в файл ~/.gitconfig (на Windows — C:\Users\Имя\.gitconfig) и действуют для всех репозиториев пользователя:
git config --global user.name "Иван Петров"
git config --global user.email "ivan@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
Последняя строка делает VS Code редактором для сообщений коммитов; она сработает, только если VS Code установлен и команда code есть в PATH. Проверить, что получилось, и увидеть, из какого файла взята каждая настройка:
git config --list --show-origin
Если для рабочего проекта нужна другая почта, выполните ту же команду внутри его папки без --global — настройка запишется только в этот репозиторий. Почта в коммитах видна всем, у кого есть доступ к репозиторию, поэтому для публичных проектов GitHub предлагает служебный адрес вида id+логин@users.noreply.github.com.
Как скачать репозиторий через Git: первые команды
Скачать чужой или свой проект с GitHub, GitLab или собственного сервера — это git clone. Команда создаёт папку с полной историей проекта:
git clone https://github.com/user/project.git
cd project
Нужна только одна ветка — например, релизная — без остальных:
git clone --branch release --single-branch https://github.com/user/project.git
Если история не нужна, а нужен только последний снимок файлов, добавьте --depth 1 — клон будет быстрее и легче. Без Git проект с GitHub можно скачать архивом: кнопка Code, затем Download ZIP. Но такая копия не знает об истории, и обновить её командой git pull не получится.
Базовый цикл работы выглядит так:
git status # что изменилось
git add index.html # добавить файл в индекс
git add . # добавить все изменения в текущей папке
git commit -m "Исправил шапку" # сохранить снимок
git push # отправить коммиты на сервер
git pull # забрать чужие изменения
Начать новый проект с нуля — git init в папке проекта. Посмотреть историю — git log --oneline. Создать ветку и сразу перейти в неё — git switch -c feature; скачать ветку, которая есть на сервере, но ещё не появилась у вас, — git fetch, затем git switch имя-ветки.
| Команда | Что делает | Когда нужна |
|---|---|---|
git clone | Копирует репозиторий с сервера вместе с историей | Один раз, в начале работы с проектом |
git status | Показывает изменённые, новые и добавленные в индекс файлы | Перед каждым коммитом |
git add | Кладёт изменения в индекс | Когда решили, что войдёт в коммит |
git commit | Сохраняет содержимое индекса как новый коммит | Когда закончен логический кусок работы |
git push | Отправляет локальные коммиты на удалённый сервер | Чтобы изменения увидели другие и CI |
git pull | Забирает изменения с сервера и вливает их в текущую ветку | Перед началом работы и при деплое |
Вход в GitHub: токен или SSH-ключ
GitHub не принимает пароль от аккаунта для git push по HTTPS. На Windows с Git Credential Manager это незаметно: при первом push откроется окно входа через браузер. На Linux-сервере удобнее SSH: сгенерируйте ключ, добавьте публичную часть в настройки GitHub (Settings, затем SSH and GPG keys) и клонируйте по адресу вида git@github.com:user/project.git. Как создать ключ и что делать с правами на файлы, разобрано в статье про вход по SSH-ключу. Проверить соединение с GitHub:
ssh -T git@github.com
Как установить Git в VS Code
Отдельно «установить Git в VS Code» нельзя: редактор пользуется тем Git, что стоит в системе. Если на панели Source Control (Ctrl+Shift+G) написано, что Git не найден, поставьте Git по инструкции выше и перезапустите VS Code. Если Git стоит в нестандартном месте, путь к нему указывается в параметре git.path в настройках редактора. Остальное — коммиты, ветки, сравнение версий — подробно разобрано в руководстве по Visual Studio Code.
Деплой через git pull и открытый каталог .git
Самый простой способ обновлять сайт — клонировать репозиторий прямо в веб-корень сервера и делать там git pull. Способ рабочий, но у него есть неочевидное последствие: вместе с файлами сайта в веб-корне оказывается каталог .git. Если веб-сервер отдаёт его по HTTP, любой посетитель может скачать /.git/config, /.git/HEAD и объекты репозитория и по ним восстановить исходный код. А вместе с ним — всё, что когда-либо попадало в историю: пароли от базы данных из старого конфига, ключи API, закрытые адреса админки. Удаление файла из последнего коммита не помогает: в истории он остаётся.
Проверить свой сайт можно одной командой:
curl -sI https://ваш-сайт.ru/.git/HEAD
Ожидаемый ответ — HTTP/1.1 403 Forbidden или 404 Not Found. Если пришёл 200, посмотрите содержимое командой curl -s https://ваш-сайт.ru/.git/HEAD. Строка вида ref: refs/heads/main означает, что каталог открыт. Если вернулась обычная HTML-страница сайта, скорее всего, CMS отдаёт главную на любой адрес, и это не утечка — но /.git/config стоит проверить так же.
Закрыть доступ в nginx — одна директива внутри блока server. Её лучше поставить выше других location с регулярными выражениями, потому что nginx проверяет их по порядку:
location ~ /\.git {
deny all;
}
После правки проверьте конфиг и перечитайте его: sudo nginx -t && sudo systemctl reload nginx. Подробнее о том, где лежат конфиги и как устроен блок server, — в статье о настройке nginx. В Apache то же самое делается строкой в конфиге виртуального хоста или в .htaccess в корне сайта:
RedirectMatch 404 /\.git
Как работает .htaccess и почему он может не срабатывать, разобрано в руководстве по .htaccess. Надёжнее вообще не держать .git в отдаваемой папке: направить корень сайта в подкаталог репозитория (например, public/) или выкладывать файлы через CI без каталога истории. Если каталог уже был открыт, одного запрета мало: все пароли и ключи, которые когда-либо лежали в репозитории, нужно сменить.
Как проверить сайт на открытый .git
Кроме ручной проверки через curl, есть способ быстрее — сразу по многим опасным путям:
- Запустите проверку безопасности сайта. После основной проверки там есть блок «Глубокая проверка экспозиции»: он ищет открытые
.git,.env, phpinfo и другие служебные файлы — около 30 путей, без регистрации. - Чтобы убедиться, что после правки конфига сайт по-прежнему отвечает нормально, посмотрите код ответа и заголовки главной в проверке HTTP-заголовков.
Частые вопросы
Git и GitHub — это одно и то же?
Нет. Git — программа на вашем компьютере, которая ведёт историю изменений. GitHub — облачный сервис, где хранят копии Git-репозиториев и работают над ними вместе. Git работает и без GitHub; GitHub без Git бесполезен.
Git платный?
Нет, Git бесплатный и открытый, распространяется под лицензией GPLv2. Установщики на git-scm.com не требуют ни регистрации, ни ключа.
Куда устанавливается Git в Windows?
По умолчанию в C:\Program Files\Git; сам git.exe, который вызывается из командной строки, лежит в подпапке cmd. Точный путь покажет команда where git.
Нужно ли отдельно скачивать Git Bash?
Нет, Git Bash входит в установщик Git for Windows. На macOS и Linux он не нужен: там уже есть свой терминал с bash или zsh.
Как установить Git на Windows через cmd?
Командой winget install --id Git.Git -e --source winget в командной строке или PowerShell. После установки откройте новое окно терминала и проверьте результат командой git --version.
Опасно ли держать .git на сервере?
Сам каталог на сервере безопасен, если веб-сервер его не отдаёт. Опасно, когда /.git/ доступен по HTTP: тогда исходный код и история восстанавливаются снаружи. Проверьте curl -sI https://ваш-сайт.ru/.git/HEAD — должен быть ответ 403 или 404.