Андрей Смирнов
Время чтения: ~15 мин.
Просмотров: 107

Установка системы Git на компьютер с Windows

618bab15610a16d5ed22e9dc6bbda0d3.png

Предисловие или от куда взялась «бредовая» идея ставить Git на Windows

Я работаю в одной не очень большой IT-компании, которая продает свои и чужие программные решения, занимается проектами внедрения, оказывает клиентскую поддержку, проводит обучение и далее все такое в том же духе. До недавнего времени в моей маленькой команде разработки все было неплохо организовано и у нас даже был свой собственный достаточно мощный сервер. Но случилось непредвиденное и по воле злого рока один из серверов фирмы полетел, а руководство решило вместо него в стойку поставить наш сервер отдела разработки. Нам предложили «временно» переехать на любой из серверов общего назначения. А теперь внимание! Только мы одни во всей фирме работаем на Линуксе, а все остальные сидят исключительно на Windows и сервера у нас тоже под управлением серверных редакций ОС от Билла Гейтса. И если перенос базы Redmine не вызывает особых вопросов, то задача поднять на сервере Windows сервер для Git меня сразу поставила в тупик. Но несколько часов потраченных на поиски дали мне простое работающее решение.

Изучение матчасти

Первым делом я обратился к документации по Git’у, где вычитал следующее:

Git умеет работать с четырьмя сетевыми протоколами для передачи данных: локальный, Secure Shell (SSH), Git и HTTP.

Первый вариант я не стал рассматривать, так как он подразумевает наличие сетевой шары открытой для общего доступа. Допустим, что с помощью групповых политик домена можно обезопасить данные от случайного удаления продавцем-стажером. Но как работать из дому? Ради нескольких «коммитов выходного дня» поднимать VPN? Читаем далее и видим:

SSH — единственный из сетевых протоколов, предоставляющий доступ и на чтение, и на запись. Два других сетевых протокола (HTTP и Git) в большинстве случаев дают доступ только на чтение, поэтому даже если они вам доступны, вам всё равно понадобится SSH для записи.

Путь к конечной цели уже стал менее туманным: сначала требуется поставить сервер SSH, а далее установить одну из многочисленных сборок Git для Windows (официальную msysgit, Git Extensions, TortoiseGit, QGit и т.д.)  

Выбор сервера SSH для Windows

Воспользовавшись поисковиком по сети Internet, я сделал небольшую подборку текущих реализаций SSH под Windows. Не претендую на то, что смог найти все решения в этой области, но самые популярные точно не пропустил. Итак:Cygwin. В рамках проекта переноса функциональности Linux на Windows был портирован в том числе и OpenSSH. Библиотека проекта cygwin1.dll с реализацией SSH так же используются в большинстве других решений. Простую инструкцию с картинками по установке и настройке можно посмотреть тут. А так же рекомендую к прочтению статью из журнала «Windows IT Pro» № 7 за 2001 год — SSH в Windows.freeSSHd. Лидер среди упоминается на форумах. Характеризуется как легкий в использовании. Лицензия позволяет бесплатно использовать в коммерческих целях. Нашел инструкцию по установке и настройке на Win2008.WInSSHD. Самое богатое по функциональности из увиденных мною реализаций. Это хорошее профессиональное решение для обеспечения безопасности. Но для моего гвоздя — это микроскоп. Если кого-то продукт заинтересовал, то у них есть 30-дневная ознакомительная полная версия и возможность бесплатного частного использования.KpyM Telnet/SSH Server. Плохих отзывов не заметил. Но меня смущает, что их сайт не обновляется с 2009 года, а так же на официальном форуме как-то безжизненно. С другой стороны, если продукт бесплатный и выполняет свою работу, то нет смысла заниматься развитием. Понравилось наличие в их FAQ списка других решений для SSH под Windows. Рекомендую заглянуть.Copssh. Продукт от норвежской компании ITeF!X, в котором они к windows-реализации OpenSSH добавили красивый GUI-интерфейс администратора и некие «best practices». Именно это решение, более всего рекомендуется в обсуждении поднятия сервера Git под Windows на StackOverflow.  

Случайная находка

Собственно под впечатлением ответов на StackOverflow я уже расслабился и решил было пойти проторенной моими предшественниками дорожкой. Но при изучении сайта компании ITeF!X я обнаружил, что у них есть и более подходящий для моих целей продукт — gitwin. Это оказался тот самый требуемый мне сервер Git под Windows. Я вначале не поверил глазам — если такой чудо продукт существует, то почему о нем до сих пор не трубят на каждом шагу. Ответ нашелся в новостях компании — как оказалось программный продукт только полмесяца назад (11 октября 2013 года) выложили в общий доступ. Точнее на днях выложили бесплатную для использования версию. Платная существовала и раньше, но видимо не пользовалась особым спросом (с января 2012 года на официальном форуме компании всего две созданные темы в разделе gitwin). Итак, что же собой представляет этот gitwin? В состав свободной версии входят:

  • Cygwin версии 1.7.25
  • OpenSSH версии 6.3
  • Git версии 1.8.4
  • Инсталятор от Itefix

На сайте целый раздел посвящен установке пакета. Кроме описания словами процесса «запуск инсталятора» -> «далее» -> «далее» -> «готово», представители компании не поленились записать все это еще на видео и выложили на YouTube. Не совсем понятно зачем это сделано и самое главное не понятно для кого? Еще один раздел выделили для описания использования. Тут описали активацию нового пользователя для доступа по SSH, создание пары ключей и пустого репозитория. И так же кроме описания текстом дают записанный обучающий ролик:  

Установка, настройка и тестирование сервера Git

Я установил на наш сервер gitwin редакции «free edition» и могу поделится только этим опытом. 1. Начинаем со скачивания инсталятора со странички продукта. 2. Запускаем инсталятор и нас спрашивают куда устанавливать продукт. Я оставил по-умолчанию в «C:Program Files (x86)ICW». Зачем может понадобится менять путь? Дело в том, что этот каталог станет корнем для линуксовых утилит и домашний каталог пользователя git тоже будет создан тут же «C:Program Files (x86)ICWhomegit». Если есть предчувствие проблем с правами доступа, то можете поменять на менее проблемный для вас каталог. 3. В процессе установки выводятся сообщения о создании двух пользователе «SvcCOPSSH» и «git». Под первым пользователем будет работать служба «OpenSSHServer», а второй нужен собственно для обслуживания репозиториев. Пароли к этим пользователям можно узнать в конце процесса установки, если нажать на «Show details». Советую по правому щелчку скопировать вывод в буфер и сохранить на всякий случай. 3.1. Перепроверка состава пользователей показала, что инсталятор втихую создал еще одного пользователя — «sshd» с описанием «copSSH privilege separation user» и сам же отключил его. Не понятно и подозрительно… 4. Скорее всего из-за редакции «free edition» дальнейшие шаги отличались от описанных на сайте. Вместо консоли администрирования в меню Пуск/copssh поместили два пункта «01. Activate a user» и «02. Deactivate a user». Но суть процесса от этого не изменилась. Запускаем «01. Activate a user» и указываем пользователя для активации (в моем случае все тот же git), выбираем командную оболочку (выбор из bash, sftponly и false) и ставим опциональные галочки. Тут читаем внимательно: 4.1. Если нам нужна пара ключей, то оставляем включенную по-умолчанию «Create keys for public key authentication». При парольной авторизации можете снять… 4.2. Если у пользователя планируется использование его родного пользовательского каталога из C:Users (или может у кого-то до сих пор C:Documents and Settings) тогда оставляем включенные по-умолчанию галочки «remove copssh home directory if it exists» и «Create link to user’s real home directory». Я рискнул их снять и таким образом все репозитории у меня будут запрятаны глубоко в системном каталоге Program Files. 5. После активации пользователя и создания ключей можем протестировать всю систему на работоспособность. Выбираем в меню Пуск/copssh пункт «03. Start a Unix BASH Shell» и создаем пустой репозиторий. Я не стал блистать остроумием и повторил команду с официального сайта: 6. Далее тестирование переехало на мой рабочий ноут. Я успешно склонировал пустой репозиторий, закинул в него несколько файлов и запушил назад. Проблем не возникло. Перешел в другой каталог и снова склонировал репозиторий — на этот раз он был уже не пустой и содержал мой коммит с файликами. Таким образом с моей рабочей станции различия между работой с репозиторием Git на предыдущем сервере Ubuntu и на новом сервере Windows замечено не было!  

Заключение

Удачно найденный gitwin оказался именно тем решением, которое я искал — запускается под Windows и создает иллюзию для пользователей, что они работают с полноценным удаленным репозиторием. Глюков пока не заметил. Но если обнаружу, то обязательно дополню данную статью. Надеюсь, что собранные материалы окажутся кому-нибудь полезными. И хочу пожелать не боятся потратить несколько часов на поиски, если вы не уверены, что в вашей голове наиболее актуальная информация. Ведь если бы я изначально зашел на StackOverflow и выполнил все по детальному пошаговому руководству от Тима Дэвиса, то не узнал бы о существовании более короткого пути, когда вся инфраструктура поднимается и настраивается буквально в десяток кликов мышкой. Успехов!  

Послесловие. Истории успехов от хабраюзеров

Я подобно Сократу с каждым новым квантом знаний понимаю как еще много того, чего я все еще не знаю. В комментариях коллеги описывают положительный опыт на заданную мною тему, который грех игнорировать. Итак: вместе со своей командой далеки от Linux’а, но тем не менее ихняя установка центрального репозитория Git’а была довольно простой. В этом им помог продукт SCM Manager.делится опытом по успешной установке на сервер исключительно msysgit. Если честно, то я читал это сообщение в Q&A, но это не мой случай. Инструкция больше касается использования Bitbucket и Github. Для общего использования в локальной сети предлагается общая папка, а для просмотра репозитория встроенный веб-сервер. Отмечу, что начиная с релиза 1.8.4 веб-сервер и часть других утилит удалена: «Some commands are not yet supported on Windows and excluded from the installation; namely: git archimport, git cvsexportcommit, git cvsimport, git cvsserver, git instaweb, git shell» хорошо отзывается о решении Bonobo Git Server, которое используется у него на работе. Как плюс для себя отмечу использование веб-сервера IIS, который у нас уже работает.

Система контроля версий Git полезна не только для программистов но и для системных администраторов. Рассмотрим процесс установки программного обеспечения, а также настройки подключения к репозиторию GitHub, на сервере под управлением ОС Windows.

Немного теории.

Git — одна из популярных современных систем контроля версий. В основном используется разработчиками программного обеспечения с целью отслеживания изменений в программных продуктах в ходе их разработки. Изначально Git создали для помощи в разработке ядра Linux, однако из-за своих преимуществ, проект ушел в массы.

Приступаем к установке.

Открываем официальный сайт проекта, кликаем по 64-битной версии для Windows.

1.png.

Загрузка начнется автоматически, дожидаемся ее окончания. Запускаем полученный файл.

Программа установки приветствует нас лицензионным соглашением. Кликаем по кнопке “Next”.

2.png

На следующем шаге указываем путь установки. Нас устраивает указанный по умолчанию. Кликаем “Next”.

3.png

На этапе выбора компонентов, отметим галочкой создание ярлыка Git на рабочем столе и переходим к следующему этапу.

4.png

Теперь программа установки предлагает создать ярлык в меню Пуск. Если в этом не видите необходимости, установите соответствующую галку. Кликаем по кнопке “Next”.

5.png

На следующем этапе, установщик предложит выбрать редактор для git по умолчанию. Для новичков лучше использовать nano, для тех, кто любит посложнее — Vim. Хотя допускается использование Notepad++ и прочего. Переходим к следующему шагу.

6.png

Теперь программа установщик спрашивает как Вы собираетесь использовать командную строку:

  • Use Git from Git Bash only — использование только из командной строки Bash.
  • Use Git from the Windows Command Prompt — использование командной строки Bash, а также минимальный набор команд Git из командной строки Windows.
  • Use Git and optional Unix tools from the Windows Command Prompt — использование Git и утилит Unix из командной строки Windows. При выборе этой опции будут перезаписаны некоторые утилиты ОС Windows, например find и sort.

Оставляем первый вариант и двигаемся дальше.

7.png

Теперь установщик спрашивает о том, какую библиотеку следует использовать для HTTPS-соединений. Оставляем openssl и переходим к следующему шагу.

8.png

Следующий шаг можно назвать самым значимым. Вопрос программы установки в том, какой формат завершения строки использовать. Одной из отличительных особенностей Windows  от Unix-подобных систем — символ перехода на новую строку в файлах, а именно, LF и CRLF — управляющие символ для переноса строки в Unix и Windows соответственно.

Мы рекомендуем выбрать параметр предложенный системой — отладка файла в формате Windows, а загрузка файла — в Unix-формате. Кликаем по кнопке “Далее”.

9.png

На данном этапе, программа запросит каким терминалом пользоваться далее:

  • MinTTY — терминал Unix;
  • Windows — стандартный терминал (командная строка) Windows.

В нашем случае оставляем “как есть” и двигаемся дальше.

10.png

На следующем шаге, установщик попросит отметить необходимые функции:

  • File system caching — кэширование файловой системой.
  • Git Credential Manager — включить менеджер учетных данных.
  • Symbolic links — разрешить использование символьных ссылок.

Выбираем то, что необходимо и переходим к следующему шагу.

11.png

На данном шаге, программа установки предлагает использовать экспериментальную опцию. Использовать ее или нет — решать Вам. Кликаем по кнопке “Install”.

12.png

Программа приступает к копированию файлов. Дожидаемся окончания процесса.

13.png

По окончании процесса установки нажимаем “Finish”.

14.png

Подключаемся к репозиторию.

Предполагается, что у вас уже есть своя учетная запись на github/gitlab. Если нет, то, в случае с github, проходим несложный процесс регистрации на сайте. Затем авторизуемся на нем и создаем репозиторий. Для этого кликаем по кнопке “Start a project”.

Указываем имя репозитория и кликаем по кнопке “Create repository”.

Репозиторий создан.

Добавляем файлы.

Предположим, что у нас есть файл, который необходимо добавить в репозиторий git или gitlab. Открываем папку, где располагается файл, кликаем правой кнопкой мыши по свободному месту и из открывшегося контекстного меню выбираем “Git Bash Here”.

Откроется командная строка. Последовательно выполняем следующие команды:

git config --global user.email "youmail@example.com"

git config --global user.name "Ваше имя"

Таким образом мы указали нашу почту и имя.

Для того, чтобы начать отслеживать изменения в текущей папке, выполняем следующие команды:

git init

git add .

Выполняем свой первый коммит и добавляем изменения на сервер:

git commit -m "Init"

Важно. Чтобы внести изменения на сервер, следует использовать для github:

git remote add origin https://github.com/пользователь/название_репозитория.git

git push -u origin master

Для gitlab:

git remote add gitlab https://server/namespace/project.git

git push -u gitlab master

После запуска команды, откроется окно авторизации. Вводим данные, которые использовали при регистрации.

Настройка аутентификации по SSH-ключам.

Для начала создадим ключ:

ssh-keygen -t rsa -b 4096 -C "yourmail@gmail.com"

В ходе генерации ключа, программа запросит ввод парольной фразы, которая необходима для защиты самого ключа. Можно ответить на вопрос двойным нажатием на Enter.

Закрытый ключ будет находиться по пути C:Users<Пользователь>.sshid_rsa. Открытый ключ — C:Users<Пользователь>.sshid_rsa.pub

Запускаем SSH-агента:

eval $(ssh-agent -s)

Добавляем ключи к ssh-агенту:

ssh-add ~/.ssh/id_rsa

Добавляем созданный ключ на сервер Git. На сайте github, в верхнем правом углу, кликаем по иконке учетной записи, выбираем “Setting”.

На обновленной странице, в левом меню, выбираем “SSH and PGP keys”, а в основной части окна, напротив SSH keys, кликаем по кнопке “New SSH key”.

Заполняем поле Title. В поле Key вставляем содержимое файла C:Users<Пользователь>.sshid_rsa.pub

Кликаем по кнопке “Add SSH key”.

Если все выполнено правильно, появится примерно такая запись:

Для проверки настроек, выполняем команду:

ssh -T git@<домен или ip-адрес git-сервера>

Например:

ssh -T git@github.com

В ходе выполнения команды, программа запросит: “Уверены ли вы в продолжении соединения”. Это стандартный вопрос безопасности. Отвечаем — yes.

Если все выполнено правильно, программа выведет приветственную речь.

Облачные VPS/VDS

Создайте сервер всего за 1 минуту!

от8 руб/месяц

In this tutorial, I am going to show you how to install git on windows 10 operating system.

Install Git windows 10 :

Download the Git from official web site git-scm.com, and download the latest version of Git.

For me, it is Git-2.16.1.4-bit.exe version and follow the below simple steps to install git.

Step 1 : 

Right click on downloaded Git file and run as administrator, then you can see the below information dialogue to go further installation.

Git1-min.png

Read General Public Licence and click on Next>.

Step 2:

It will ask for Git installation directory by default it will be in C:Program FilesGit, you can change if you wish.

Git2-min.png

Click on Next>

Step 3:

This step allows you to select the git components which you want to install as part of the git installation.

Git3-min.png

Above selection is recommended, those recommendations bring you Git GUI and Git Command prompt.

Click Next >

Step 4:

This dialogue asking you to create shortcuts of git, leave this as default and click Next >

Git4-min.png

Step 5 :

Choose your favourite text editor to work with Git.

Git5-min.png

Click on Next >

Step 6:

This dialogue asking you to how do you want to use git to set the PATH, go with the recommended option.

Git6-min.png

By choosing this step git automatically set PATH for you. I will show you how to see the generated PATH at the end of this article.

Click on Next >

Step 7 :

Choose for HTTPS transport, leave it as default.

Git7-min.png

Click on Next >

Step 8: 

Configuring the line ending conversions, leave it as default recommendation.

Git8-min.png

Click on Next>

Step 9 :

Choose for the terminal emulator to use Git Bash.

Git9-min.png

Click on Next >

Step 10:

This window allows you to enable extra features. Select the below recommendations.

Git10-min.png

Click on Install

Step 11 :

Now started the installation process.

Git11-min.png

It will take a couple of minutes to complete.

Step 12:

If everything is done well, you can see the below information.

Git12-min.png

Click on Finish.

Now you can install the Git on Windows 10 operating system.

Check It :

Check whether PATH has been set or not.

Advanced System Settings > Environment Variables > System Variables > select Path and click on Edit. You can see the below git paths.

Git13-min.png

Run it :

Open command prompt and type git –version, you should see your installed git version like below.

Git14-min.png

Now you can confirm that git has been installed successfully on your machine.

References :

Happy Learning 🙂

Используемые источники:

  • https://habr.com/post/199144/
  • https://serverspace.by/support/help/ustanovka-git-v-windows/
  • https://www.onlinetutorialspoint.com/git/how-to-install-git-windows-10-operating-system.html

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации