Установочный пакет можно скачать здесь https://git-scm.com/download/win (см. также https://gitforwindows.org/).
Далее будет рассмотрена работа с portable-версией.
В пакете присутствует не только сам git, но и средства для работы в командной строке, которые позволяют сделать рабочий процесс практически полностью идентичным таковому в Unix-системах. (При этом, в отличие от подсистемы Windows for Linux, нет ни необходимости устанавливать дополнительные компоненты ОС, ни жёстких требований к новизне версии Windows).
В первую очередь, это оболочка bash
, которая поддерживает цвета и комбинации клавиш, а также сопутствующие программы из числа наиболее часто используемых в Linux (ls
, grep
, curl
, vim
, ssh
(!) и пр.) делают возможными многие привычные операции.
Для настройки bash
(например, вида системного приглашения) используется стандартный файл .bashrc
, который нужно разместить в домашнем каталоге пользователя (C:/Users/пользователь
).
В первую очередь, необходимо указать работу в кодировке UTF-8:
export LANG=ru_RU.UTF-8
(Кодировку также нужно будет указать самому терминалу - см. ниже).
Также наверняка захочется настроить вид системного приглашения (текущее можно посмотреть, дав команду echo $PS1
):
PS1="New system prompt"
Перечитать конфигурационный файл без перезапуска терминала можно командой . ~/.bashrc
.
Все пути начинаются с /
(как в Unix-системах). Путь вида C:/somedir
отображается в виде /c/somdeir
. Можно использовать и в оригинале (C:/...
), но с ним не будет работать достройка путей по Tab
.
Действует сокращение ~
, указывающее на домашний каталог пользователя.
Имена системных переменных нужно писать, начиная с $
, а не обрамляя %
: echo $PATH
, а не echo %PATH
.
При прямом запуске из командной строки bash стартует в стандартной консоли Windows cmd
, которая работает в кодировке CP866
. Чтобы консоль работала в UTF-8, перед запуском bash нужно дать команду CHCP 65001
.
Автоматизировать этот процесс можно так:
- Создать рядом с
bash.exe
файлb.bat
(короткое имя - для быстрого запуска):
@echo off
CHCP 65001 > nul
{каталог git}\bin\bash
- Запускать bat-файл из диалога Run:
Win+R; b; Enter
.
В результате будет получен полностью готовый к работе терминал с командной оболочкой bash.
Редактор vi
(а точнее, vim
) используется как стандартный редактор при написании commit-сообщений git
. Для корректной работы с кириллическим текстом в настройках запуска vim
нужно явно указать кодировку UTF-8. Это делается в файле .vimrc
, который нужно поместить в домашний каталог пользователя (по аналогии с *nix-системами):
set encoding=utf-8
Предварительно терминалу Windows обязательно должна быть установлена кодовая страница 65001 (см. предыдущий пункт), иначе редактор будет работать некорректно.
Глобальные настройки на уровне пользователя ОС git хранит в файле .gitconfig
в домашнем каталоге пользователя так же, как в Linux. Можно сразу скопировать этот файл с какого-нибудь рабочего сервера и исправить в нем нужные места, вместо того, чтобы давать набор команд git config --global
.
Как правило, необходимо указать имя и email:
git config --global user.name = "..."
git config --global user.email = "..."
Без этого git не даст отправлять изменения в удаленные репозитории (git push
).
Чтобы получать и отправлять изменения в удалённые репозитории без ввода пароля, git должен иметь возможность пользоваться ssh-ключом. У самого git нет настроек, позволяющих явно указывать ключ - в этом он всецело полагается на команду ssh
.
Самый простой путь задействовать свой приватный ключ - скопировать его openssh-версию в файл ~/.ssh/id_rsa
(снова точно так же, как в Linux). Он будет использоваться не только при работе git, но и при использовании команды ssh для соединения к удаленным сервером напрямую (которую можно использовать как альтернативу putty).
Такой подход предполагает, что для всех соединений будет использоваться один и тот же ключ.
Другой способ - создать файл .ssh/config
в домашнем каталоге Windows (типа C:/Users/пользователь
), где указать расположение приватного ключа:
Host *
IdentityFile "D:/.../ключ.openssh"
Подробнее см. https://stackoverflow.com/a/25924462.
git help
вместо вывода консоль открывает в браузере html-страницу мануала из каталога{git}/mingw64/share/doc/git-doc/