всем привет!
Че то давно я не писал никаких статей, сегодня восполню этот пробел и расскажу Вам, как поднять кошерный GIT под Windows. Кто работает под Linux, у тех и так все ясно, а вот под Windows не все так однозначно, есть много путей достижения цели и что плохо, нет единой документации в одном месте, приходится много искать и экспериментировать.
Я перепробовал множество вариантов, в итоге по результатам экспериментов и опыта использования выбрал для себя (по моему мнению) лучший и хочу поделиться с Вами поэтапными инструкциями, ЧТО устанавливать и КАК?
---
Сразу хочу предупредить, что выкиньте (деинсталлируйте) всяческие Гитхаб, Битбукет и прочие клиенты, они нам нафиг ненужны. Мы будем поднимать реально удобную систему, максимально совместимую с классическим GIT (точнее, это и есть классический GIT, только скомпилированный под Windows, все нативные консольные команды) + удобный графический клиент.
Итак, первым пунктом нам понадобится собственно GIT.
И не какое-нибудь совместимое извращение, а настоящий, нативно-консольный.
Даже если Вы почти не пользуетесь консолью, он Вам все равно понадобится, ибо без него не будет работать GIT в большинстве IDE редакторов (к примеру PhpStorm требует наличия консольного GIT).
TortoiseGit, который мы установим далее, тоже это использует.
Для этого качаем GIT отсюда: https://git-scm.com/download/win
После скачки запускаем файл и проводим инсталляцию:
1) При выборе компонентов, которые будут устанавливаться, рекомендую все оставить по-умолчанию, за исключением:
* Отметьте пункт "Git Bash Here", это удобная консоль, она Вам потом очень понадобится. Разумеется можно выбрать и родную Windows консоль, но я лично предпочитаю использовать Bash от Git, там гарантируется 100% совместимость по командам.
* Не отмечайте пункт (не надо инсталлировать) "Git Gui Here". Лишний мусор нам не нужен, а Gui клиент мы будем использовать другой.
2) На следующем экране Вам будет предложено выбрать "Adjusting your PATH environment".
* Выбираем "Use Windows Command..." (второй пункт), это добавит GIT в окружение PATH и можно будет спокойно пользоваться как Windows консолью, так и Git Bash
3) На третьем экране спросят про обработку EOL (переносов строк).
* Смело можете оставить рекомендуемое значение (первый пункт списка).
Запустится установка, дождитесь ее окончания.
Вот и все, консольный GIT у нас уже установлен, но пока еще не настроен.
Не спешите с настройкой, ею займемся в 3-й части статьи.
Теперь установим GUI клиент.
Под Windows их существует довольно много: https://git-scm.com/downloads/guis и это не считая встроенных в IDE.
Но мне из всего этого многообразия, наиболее удобным показался TortoiseGit, его и будем ставить.
От работает через родной Windows проводник файлов и виден через файловые менюхи большинства программ. Очень удобно когда привыкнете.
Качаем отсюда: https://tortoisegit.org/
Выбираем версию, в зависимости от того, какой битности у Вас стоит Windows (32 или 64-bit).
Если хотите, чтоб говорило на Вашем языке, тут же можно скачать и локализацию (опять выбираете нужную битность).
В начале запускаем инсталляцию собственно TortoiseGit (язык, если надо установите после).
1) При выборе компонентов для установки, можете оставить все, что есть по-умолчанию.
2) Далее, он Вас спросит, какой SSH клиент хотите использовать: рекомендованный Putty, или нативный GIT, выбираем нативный GIT!!!
Дождитесь окончания установки, после (если надо) можете инсталлировать язык.
Потом попросит перезагрузить систему.
Все почти будет готово (о тонкой настройке расскажу ниже).
Теперь займемся настройкой GIT.
1) Первое, что вам следует сделать после установки Git, — указать ваше имя и адрес электронной почты. Это важно, потому что каждый коммит в Git содержит эту информацию, и она включена в коммиты, передаваемые вами. Для этого открываем Git Bash (консоль) и последовательно вводим следующие команды (имя и Email разумеется смените на свои):
git config --global user.name "Oleg Kasyanov"
git config --global user.email dev@mobicms.net
2) Сгенерируйте свой персональный SSH ключ (если конечно этого не сделали раньше).
В начале проверим, есть ли уже установленные ключи, для этого в Bash консоли набираем следующую команду:
ls -al ~/.ssh
Если ключ уже установлен, покажет список, в котором должны быть пункты: id_rsa, id_rsa.ppk, id_rsa.pub.
Если данные пункты есть, то ключи уже установлены, если нет, то генерируем новые (опять через консоль, свой Email указываем тот же, что и выше):
ssh-keygen -t rsa -b 4096 -C "dev@mobicms.net"
Жмем enter. Далее, спросит куда сохранять ключи, для Windows это будет Enter file in which to save the key (/c/Users/Oleg Kasyanov/.ssh/id_rsa):
Оставляем все как есть и просто жмем Enter
Далее спросит, хотите ли установить пароль. Тут все зависит от Вас. Я лично паролем не пользуюсь, ибо потом задолбает при каждом комите.
Если пароль нужен - вводим его и жмем Ентер, если не нужен, ничего не вводим и жмем Ентер.
Длее попросит повторить пароль. Если вводили, то повторите его, если нет, просто жмите Ентер.
Ключи готовы.
ВНИМАНИЕ!
Ключ - это Ваш пароль к репозиториям. Обязательно сохраните копию ключей в надежном месте.
Для этого зайдите в папку C:\Users\Ваше_Имя
Там увидите папку .ssh
Скопируйте ее всю в надежное место. Если вдруг потом придется переинсталлировать Windows, то просто скопируйте из резерва папку .ssh
3) Для того, чтоб использовать Ваш персональный SSH ключ с репозиторием, Вам надо открыть в каком нибудь текстовом редакторе файл id_rsa.pub который находится в вышеупомянутой папке .ssh и скопировать его содержимое (длинная строка с символами) в соответствующее поле настроек Вашего репозитория.
После этого станет очень удобно, Вам не придется при каждом доступе к репозиторию вводить логин и пароль, будет действовать Ваш персональный ключ.
Ключ можно получить не открывая файл, а воспользовавшись Bash консолью:
clip < ~/.ssh/id_rsa.pub
Ключ будет скопирован в буффер обмена и вы его сможете вставить в настройки репозитория.
---
На этом основные настройки Git закончены.
Если хотите воспользоваться продвинутыми настройками (а их великое множество), ищите описание в Интернете, это выходит за рамки данной статьи.
Для большинства хватит и базовых настроек.
Под конец, немного поковыряем TortoiseGIT.
В принципе, в нем самом хоть и есть куча настроек, ничего такого ковырять не придется, он сам подцепит все настройки, что мы сделали выше.
Но для нормальной работы, нам придется подковырять саму Windows и устранить (при желании) одну проблему.
Сама проблема заключается в отображении оверлейных иконок.
Что это за иконки?
Когда откроете в проводнике Ваш GIT проект, над каждым файлом будет значек, показывающий статус файла (актуален, изменен, игнорируется и т.д.).
Очень удобно и информативно.
Проблема заключается в том, что Windows Shell может отображать только 10 зарегистрированных оверлеев.
Но есть куча программ, которые пихают туда свои настройки, не обращая внимание на уже имеющиеся, в итоге получаются конфликты, точнее Windows показывает только первые 10 иконок из всех зарегистрированных.
К сожалению TortoiseGIT садится всегда где-то в конце и в итоге его иконки не видны.
как исправить - читайте далее...
Исправляем overlay Icons
Для этого нам придется немного поковырять Windows Registry. Чтоб сильно не париться, поступите так:
1) Откройте проводник файлов.
2) На любой папке щелкните правой клавишей мыши, в контекстном меню выбираем пункт TortoiseGit -> Settings
3) Откроется большое меню настроек, но мы там НИЧЕГО НЕ ТРОГАЕМ! В дереве настроек выбираем Icon Overlays -> Overlay Handlers
4) На страничке Overlay Handlers увидите кнопку "Start registry Editor", жмите ее, откроется редактор реестра и сразу в нужном месте (пункт ShellIconOverlayIdentifiers).
5) Чтоб ничего не напортачили и была возможность откатиться назад, в редакторе реестра щелкаем правой клавишей на нашей папке реестра ShellIconOverlayIdentifiers и выбираем пункт Export. Экспортируем настройки в файл. Потом, если захотите все вернуть назад, просто два раза кликните по файлу и все ключи запишутся обратно в реестр.
А вот далее, придется чем-то пожертвовать.
В качестве оверлеев обычно зарегистрированы различные облачные сервисы (DropBox, Google Drive, Yandex диск, SkyDrive и прочая муть).
Нам придется удалить из папки реестра ShellIconOverlayIdentifiers ВСЕ ключи, кроме *Tortoise***
На работе облачных сервисов это никак не скажется, просто в проводнике для них не будут отображаться оверлеи. Хотя полюбому, из-за ограничений, если у вас стоит несколько облак, какие-то из них и так отображались без оверлеев.
Для разработчиков (коими мы и являемся) смело можно пожертвовать облачными оверлеями в пользу TortoiseGit, оно того стоит.
Единственная проблема у Вас может возникнуть с выпилом ключей от SkyDrive, он зараза садится под системным экаунтом и просто так удалиться не даст.
Но мы не дураки, и знаем как это сделать .gif)
(далее описываю для Windows 10, которая под рукой и в которой возникает проблема с выпиливанием skyDrive)
1) Правой клавишей щелкаем на ключе SkyDrive который хотим удалить
2) В менюхе выбираем пункт Permissions и в нем жмем кнопарь "Advanced"
3) Вверху открывшегося окна видим строку Owner: (там будет или SYSTEM, или TrustedInstaller) и ссылка "change" которую и жмем.
4) В открывшемся окне жмем расширенный поиск, находим группу Administrators и добавляем ее как владелька.
5) Возвращаемся в список разрешений, находим группу Administrators, что мы добавили выше, редактируем и ставим все права.
6) Закрываем окно Permissions и далее, ключ уже можно будет удалить.
Эту процедуру придется проделать для каждого ключа SkyDrive, пока не удалите все.
Далее, закрываем реестр, перезагружаем Windows и система готова к работе.
===
UPD:
В последнем большом обновлении Windows 10, что пришло в этом году, видать исправили Overlay Handler, по крайней мере у меня лично совместно работают TortoiseGit и Dropbox, причем оверлейные иконки видны в обоих программах.
Если у Вас последняя версия (обновленная) Windows 10 и оверлеи видны, то инструкции из этого поста можете не выполнять.
Вот и все, надеюсь статья будет полезной.
Я лично убил очень много времени, пока все по частям выуживал в Интернете и проводил собственные эксперименты.
Удачи в разработке!
Ну его нафиг я лучше linux в виртуалке поставлю.
# Swank (17.08.2015 / 00:40)
Ну его нафиг я лучше linux в виртуалке поставлю.
Там не меньше действий придется делать.
Но тут зато у тебя будет очень удобный графический (GUI) клиент
AlkatraZ, Ну по кол действий это да, я обычно просто захожу на vps по ssh и там юзаю git, а на интерфейс как-то пофиг