Установка git в Windows (на этот раз подробно)

Судя по всему, многие из посетителей приходят на этот блог в поисках руководства по установке Git в Windows. И, что самое печальное, всё что они находят — куцая страничка со ссылкой на англоязычный скринкаст. Пришло время исправить это недоразумение
Установка и настройка
Итак, установка git. Сразу оговорюсь что мы будем ставить msysgit, и заодно произведём необходимые действия для подключения к GitHub. Конечно, можно использовать git и в одиночку, для себя — но здесь, как и с играми, в онлайне намного интереснее
Идём на страницу git, в раздел Download и ищем там msysgit для Windows. Сайт git отправляет нас на Google Code. Берём Full Installer for official Git.
Запускаем, устанавливаем. При установке будет предложено выбрать тип запуска Git:
- Git bash only: git ставится и вызывается командой контекстного меню “Git bash here”/”Git gui here”
- Run from the Windows command prompt: Устанавливает Git и прописывает путь к консольной версии в PATH. Команду ‘Git Bash here’ всё равно можно использовать.
- Run Git and tools from Windows Command Prompt: то же что предыдущий вариант, но дополнительно прописывает в Windows путь к различным Unix-утилитам типа find и sort. Git предупреждает нас что при этом вместо windows-приложений с соответствующими именами будут вызываться unix-аналоги
Я предпочитаю второй вариант, т.к. использую git исключительно из командной строки. Так что это руководство будет по большей части консольным
Продолжаем установку. В конце git предложит просмотреть файл примечаний к релизу. Собственно, на этом установка заканчивается
Теперь идём в командную строку (если Вы выбрали этот вариант) и вводим свои данные в git, чтобы он нормально подписывал коммиты.
git config --global user.name "Ваше имя" $ git config --global user.email "ваш_email@example.com"
Не забудьте подставить своё имя/ник и email
Параметр --global говорит нам что мы изменяем глобальные настройки. Чтобы изменить настройки только одного репозитория, перейдите в его папку и сделайте то же без --global:
cd my_repo git config user.name "Ваш ник" $ git config user.email "другой_email@example.com"
Кстати, создаётся репозиторий командой git init в нужной папке. Всё, git можно пользоваться в локальном режиме
Давайте теперь что нибудь утянем с Github. Идём туда, делаем поиск или Explore Github, открываем понравившийся проект. Прямо под названием проекта будет Clone URL:
Жмём, копируем команду. Получится примерно что то такое:
git clone git://github.com/quickredfox/jquery-builds.git
Переходим в каталог куда мы хотим положить проект, и выполняем команду. Имейте в виду, git создаст для проекта каталог чтобы его туда положить. То есть, если мы выполним эту команду в D:\Source, проект будет в папке D:\Source\jquery-builds.
Конфигурация для использования GitHub
Чтобы хранить свой проект в GitHub, надо ещё немного покопаться с настройкой
Нам понадобится пара ключей SSH. Открываем консоль Git bash, всё равно где. В msysgit процесс генерации пары ключей упрощён почти до предела. Делаем:
ssh-keygen -t rsa -C "ваш_email@example.com"
У Вас спросят куда положить ключи (не потеряйте их, лучше выбрать предлагаемое программой место), дважды спросят пароль (passphrase). Пароль должен быть сложным. После этого Вы получите два файла и RSA fingerprint примерно такого вида:
e8:ae:60:8f:38:c2:98:1d:6d:84:60:8c:9e:dd:47:81 tekkub@gmail.com
Теперь идём и регистрируемся на Гитхабе, в бесплатном варианте.
Внимание, бесплатный аккаунт на GitHub — аккаунт для Open-Source проектов. Вы не сможете закрыть свой код, или скрыть его от других. Не используйте его для проприетарного кода и рабочих проектов!
В поле SSH Public Key вставляем содержимое файла id_rsa.pub, или как Вы его там назвали при создании ключей. Если Вы создали ключи в своей папке пользователя, ssh самостоятельно его найдёт. Иначе, надо будет добавить ключи вручную:
ssh-add <путь к файлу ключей>
Завершаем регистрацию. Теперь можно уже проверить что получилось. В простой командной строке подключаемся к серверам github:
ssh github.com
В ответ должно прийти:
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.
Это значит что всё в порядке.
Если Вы видите No supported authentication methods available, значит Git не может найти программу, способную достучаться до сервера Гитхаба. Строка вызова используемой программы хранится в переменной GIT_SSH. Чтобы использовать программу ssh (самый простой способ), надо сделать в командной строке:
set GIT_SSH=ssh
Имейте в виду, после перезагрузки эта переменная вернётся в начальное состояние.
Ссылки по теме
- Руководство к Git (на английском)
- SSH Troubleshooting – при возникновении проблем с SSH
- Похожее руководство на самом GitHub (на английском)
- Работа с Pull requests в Github
- Система деплоя на основе Git / Gitosis

а кто-нибудь знает, как сделать в git под windows, чтобы при pull/push постоянно пароли не вводить?
Добавить ключ в putty, видимо. Это гитхаб имеется в виду?
чтоб постоянно не просил пароль, сделай в домашней директории файлик
_netrc (для винды) или .netrc (для юниксов)
с содержимым:
machine адрес_репозитория
login твой_логин
password твой_пароль
у меня отлично работает =)