↓Перейти к содержанию
  1. Git: руководства и команды/

Как подключиться к репозиторию через Git Bash на Windows

·8 минут·

Git Bash — эмулятор bash-терминала для Windows, который устанавливается вместе с Git. Он позволяет использовать все Git команды и Unix-утилиты в привычном стиле. Это пошаговое руководство для тех, кто только начинает работать с Git на Windows.

Что такое Git Bash #

Git Bash — это приложение, которое предоставляет bash-оболочку на Windows. При установке Git for Windows автоматически устанавливается Git Bash. Он поддерживает:

  • Все команды Git
  • Базовые Unix команды (ls, cd, mkdir, rm)
  • SSH и работу с ключами
  • Скрипты bash

Альтернативы на Windows: PowerShell с git (git устанавливается отдельно), WSL (Windows Subsystem for Linux), командная строка cmd с git. Для начинающих Git Bash — самый простой вариант.

Установка Git Bash #

Если Git Bash ещё не установлен:

# 1. Скачать установщик с https://git-scm.com/download/win
# 2. Запустить установщик
# 3. В опциях можно оставить всё по умолчанию
# 4. После установки — найти "Git Bash" в меню Пуск

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

git --version
# Должно вывести: git version 2.x.x

Первоначальная конфигурация #

После первого запуска Git Bash нужно настроить имя и email:

# Установить имя пользователя
git config --global user.name "Имя Фамилия"

# Установить email (должен совпадать с аккаунтом GitHub/GitLab)
git config --global user.email "[email protected]"

# Проверить конфигурацию
git config --global --list

# Установить редактор по умолчанию (опционально)
git config --global core.editor "notepad"
# Или VS Code:
git config --global core.editor "code --wait"

Создание SSH ключей #

SSH позволяет подключаться к GitHub/GitLab без ввода пароля при каждом push.

# Проверить есть ли уже SSH ключи
ls ~/.ssh
# Если видите id_ed25519 или id_rsa — ключи уже есть

# Создать новый SSH ключ
ssh-keygen -t ed25519 -C "[email protected]"
# При запросе пути — нажать Enter (сохранит в ~/.ssh/id_ed25519)
# Задать passphrase или оставить пустым

# Запустить ssh-agent
eval $(ssh-agent -s)

# Добавить ключ в агент
ssh-add ~/.ssh/id_ed25519

# Посмотреть публичный ключ (скопировать для добавления на GitHub)
cat ~/.ssh/id_ed25519.pub

Затем добавить публичный ключ на GitHub: Settings → SSH and GPG keys → New SSH key. Проверить подключение:

ssh -T [email protected]
# Успех: "Hi username! You've successfully authenticated..."

Клонирование репозитория #

# Перейти в нужную папку
cd C:/Users/YourName/Projects
# или
cd ~/Projects

# Клонировать через HTTPS (потребует токен при push)
git clone https://github.com/username/repository.git

# Клонировать через SSH (требует настроенного SSH ключа)
git clone [email protected]:username/repository.git

# Клонировать в папку с другим именем
git clone [email protected]:username/repository.git my-project

# Перейти в склонированный репозиторий
cd repository

Базовые Git команды в Git Bash #

После клонирования можно начинать работать:

# Проверить статус изменений
git status

# Посмотреть историю коммитов
git log --oneline

# Обновить репозиторий с сервера
git pull origin main

# Создать новую ветку и переключиться
git switch -c feature/my-feature

# Посмотреть все ветки
git branch

# Добавить изменённые файлы
git add file.txt
# или все файлы:
git add .

# Создать коммит
git commit -m "Описание изменений"

# Отправить изменения
git push origin feature/my-feature

Навигация в Git Bash #

Git Bash использует Unix-стиль путей:

# Текущая папка
pwd
# /c/Users/YourName/Projects/my-repo

# Содержимое папки
ls
ls -la  # с подробностями и скрытыми файлами

# Перейти в папку
cd folder-name
cd C:/Users/YourName/Documents

# Домашняя папка
cd ~
cd  # тоже домашняя

# Вверх на уровень
cd ..

Часто задаваемые вопросы #

Как открыть Git Bash из определённой папки? Правой кнопкой мыши на папке в проводнике → «Git Bash Here». Или перейти в папку через cd уже в открытом Git Bash.

Чем отличается HTTPS от SSH при клонировании? HTTPS требует ввода логина/пароля (или токена) при push. SSH использует ключи — не нужно вводить пароль каждый раз (если ключ добавлен). Для частого использования SSH удобнее.

Как изменить URL репозитория после клонирования? git remote set-url origin <new-url>. Например, для переключения с HTTPS на SSH: git remote set-url origin [email protected]:user/repo.git.

Почему Git запрашивает имя пользователя и пароль при каждом push? Если используется HTTPS, нужно сохранить учётные данные: git config --global credential.helper store. При следующем вводе они сохранятся. Или переключитесь на SSH.

Как установить SSH ключ для автоматической аутентификации? Создайте ключ (ssh-keygen), добавьте в ssh-agent (ssh-add), добавьте публичный ключ на GitHub/GitLab. Добавьте в ~/.ssh/config:

Host github.com
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_ed25519

Клонирование через HTTPS с учётными данными #

Когда SSH ещё не настроен:

# Клонирование через HTTPS
git clone https://github.com/username/repository.git

# Git попросит логин и пароль (или токен доступа для GitHub)
# Username for 'https://github.com': <username>
# Password for 'https://[email protected]': <token>

# После первого раза можно сохранить учётные данные:
git config --global credential.helper store
# Следующий раз пароль сохранится (хранится в plaintext! осторожно на шарах)

# Альтернатива — credential cache (хранит в памяти на 15 мин)
git config --global credential.helper cache

# Ввести пароль снова только после истечения времени
git config --global credential.helper 'cache --timeout=3600'
# Теперь кэш на 1 час

# Для корпоративного окружения с прокси
git clone https://username:[email protected]/github.com/username/repository.git

Настройка Git для корпоративного прокси #

На Windows часто требуется работать через корпоративный прокси:

# Установить прокси для всех операций Git
git config --global http.proxy http://proxy.company.com:8080
git config --global https.proxy http://proxy.company.com:8080

# Если требуется аутентификация на прокси:
git config --global http.proxy http://username:[email protected]:8080

# Отключить SSL верификацию (если сертификат корпоративный)
# ОПАСНО - только для корпоративных сетей!
git config --global http.sslVerify false

# Проверить конфигурацию
git config --global http.proxy

# Откатить
git config --global --unset http.proxy

Проверка подключения к репозиторию #

После клонирования проверить что всё работает:

# Проверить что репозиторий успешно склонирован
ls -la
# Должна быть папка .git

# Посмотреть откуда он клонирован
git remote -v
# origin  https://github.com/user/repo.git (fetch)
# origin  https://github.com/user/repo.git (push)

# Попробовать fetch (обновить информацию о веток)
git fetch origin

# Посмотреть все ветки локально и удалённо
git branch -a

# Попробовать pull (обновить код)
git pull origin main

# Если всё работает — готово подключиться

Добавление существующего локального репозитория на GitHub #

Если уже есть локальный репо:

# 1. На GitHub создать новый пустой репозиторий
# GitHub UI: New repository

# 2. Не инициализировать с README/License (оставить пустым)

# 3. В локальном репо добавить remote
git remote add origin https://github.com/username/new-repo.git

# 4. Переименовать ветку если нужно
git branch -M main
# Git раньше использовал 'master', GitHub требует 'main'

# 5. Отправить весь код на GitHub
git push -u origin main

# 6. Проверить что загрузилось
git remote -v
git branch -a

Конфигурация credential manager для безопасности #

Windows Credential Manager сохраняет логины безопаснее чем plaintext:

# Установить Git Credential Manager Core
# (обычно идёт с git for windows автоматически)

# Использовать Credential Manager
git config --global credential.helper manager-core

# Или для более старых версий:
git config --global credential.helper manager

# Теперь пароли сохраняются в Windows Credential Manager
# Можно проверить: Control Panel → Credential Manager

# Удалить сохранённые учётные данные:
git config --global --unset credential.helper
# Windows будет спрашивать пароль при каждом push

# Для конкретного хоста:
git credential-manager-core erase
# Вводите параметры и нажимаете Ctrl+D

Решение проблем с подключением #

Ошибка: “fatal: unable to access repository”

# Проверить интернет
ping github.com

# Проверить URL
git remote -v
# URL должна быть правильная

# Проверить SSH ключ если SSH
ssh -T [email protected]
# "Permission denied" — ключ не добавлен на GitHub

Ошибка: “SSL certificate problem”

# На корпоративной сети может быть перехват сертификата
# Решение 1: обновить корневые сертификаты Windows

# Решение 2: отключить проверку (небезопасно)
git config --global http.sslVerify false
# ТОЛЬКО для корпоративных сетей!

# Решение 3: указать сертификат явно
git config --global http.sslCAInfo C:/path/to/ca-bundle.crt

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

# SSH ключ не добавлен или неправильный путь
# Проверить что ключ есть
cat ~/.ssh/id_ed25519.pub

# Проверить что ключ добавлен в ssh-agent
ssh-add -l

# Если не видно — добавить
ssh-add ~/.ssh/id_ed25519

# Проверить подключение
ssh -T [email protected]

Ошибка: “fatal: unable to read from remote repository”

# Может быть проблема с правами доступа
# Проверить что ключ публичный добавлен на GitHub
# GitHub Settings → SSH and GPG keys

# Проверить что используется правильная ветка
git branch -a

# Может быть репозиторий удалён или сделан приватным
# Проверить доступ на GitHub

Работа с GitLab и Bitbucket #

Процесс практически идентичный:

# GitLab
git clone https://gitlab.com/username/project.git
ssh-keygen -t ed25519 -C "[email protected]"
# GitLab Settings → SSH Keys → добавить публичный ключ
ssh -T [email protected]

# Bitbucket
git clone https://bitbucket.org/username/repository.git
ssh-keygen -t ed25519 -C "[email protected]"
# Bitbucket Settings → SSH Keys → добавить публичный ключ
ssh -T [email protected]

Часто задаваемые вопросы #

Как открыть Git Bash из определённой папки? Правой кнопкой мыши на папке в проводнике → «Git Bash Here». Или перейти в папку через cd уже в открытом Git Bash.

Чем отличается HTTPS от SSH при клонировании? HTTPS требует ввода логина/пароля (или токена) при push. SSH использует ключи — не нужно вводить пароль каждый раз (если ключ добавлен). Для частого использования SSH удобнее.

Как изменить URL репозитория после клонирования? git remote set-url origin <new-url>. Например, для переключения с HTTPS на SSH: git remote set-url origin [email protected]:user/repo.git.

Почему Git запрашивает имя пользователя и пароль при каждом push? Если используется HTTPS, нужно сохранить учётные данные: git config --global credential.helper store. При следующем вводе они сохранятся. Или переключитесь на SSH.

Как установить SSH ключ для автоматической аутентификации? Создайте ключ (ssh-keygen), добавьте в ssh-agent (ssh-add), добавьте публичный ключ на GitHub/GitLab. Добавьте в ~/.ssh/config:

Host github.com
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_ed25519

Могу ли я клонировать приватный репозиторий? Да, если у вас есть доступ. С HTTPS нужен токен доступа. С SSH ключ должен быть добавлен на аккаунт владельца.

Что если забыл где лежит склонированный репозиторий? В Git Bash: pwd показывает текущую папку. Если знаете имя репо: find ~/ -name repository-name -type d.

Заключение #

Git Bash даёт полный доступ к Git на Windows. После начальной настройки (имя, email, SSH ключи) работа ничем не отличается от Linux/macOS. Клонирование через HTTPS удобно для начала, SSH - для постоянной работы. Для навигации в Git Bash — навигация в Git Bash. Для подключения по SSH — подключение к Git по SSH.