Установка git сервера windows

gosha20777

Собственный Git на Windows

January 05, 2018 | 3 Minute Read

Н у вот наступил 11111100010 год ии у меня появилось свободная минутка, чтобы написать тут что-то полезное:-)

Случилось так, что понадобился приватный git репозиторий, а покупать VIP аккаунт на github не хотелось, да и политика безопасности компании, для которой разрабатывается проект, не позволяет это делать. По этому было принято решение о развертывании собственного git-сервера. Так как я C# developer, то речь пойдет конечно же о Windows Server и IIS Server. Пользователям Linux скажу, что там установка этого «богатства» еще проще и состоит из пары команд в терминале.

Немного о платформе.

Данный git-server был написан на C# на ASP.NET и представляет собой Web приложение. Все исходные коды доступны тут. Все желающие могут ознакомиться и оценить кривизну кода) А мы поехали дальше -)

Как его ставить?

Для успешной установки нам нужны

  1. Сам сервер на Windows Server 2008 R2/2012/2012 R2/2016 (кто-то сидит на ней?)
  2. Internet Information Services (IIS) 7 или 8
  3. .NET Framework 4.6
  4. visual redist 2012/2015 и CLR
  5. Server дистрибутив

Быстро пробежимся по основным пунктам. У меня стоит Windows Server 2012 R2. И показывать я буду на ней. Для Windows Server 2008 все примерно также. Предполагается, что Виндасервер у вас сконфигурирован и настроен. Если это не так – идите к документации)

IIS Сервер + .NET Framework.

Запускаем Server Manager (диспетчер серверов) -> Manage (Управление) -> Add Roles and Features (Добавить роли и компоненты) …

да да у меня виндосервер на русском.

Выбрать Role-based or Feature-based Installation (установка ролей или компонентов)

Далее выбираем наш сервер

.

В ролях выбираем Web Server (IIS).

.

В компонентах жмякаем на .NET framework 4.5 и на последнем шаге выбираем нужные настройки.

Установка… Потребует перезагрузки сервера. Загружаем .NET Framework 4.6 и ставим его. Все теперь можно ребутиться.

Для любителей консоли…

Git Server

Всё, теперь можно перейти к непосредственно развёртыванию git сервера. Разархивируем содержимое дистрибутива в wwwroot IIS-сервера ( C:\inetpub\wwwroot ) и даём права учетной записи IIS_IUSERS на модификацию каталога App_Data .

.

Запускаем IIS Manager и конвертируем Git в приложение.

.

После конвертации жмем ActionBrowse (Управление приложением – обзор) и у нас должен открыться сайтик с формой для входа. Теперь он доступен по адресу IP сервера\git в локальной сети. При желании его можно вывезти во внешнюю сеть и вообще делать с ним все что душе угодно!

Настройка.

По стандарту логин пароль для входа admin\admin.

.

В настройках можно указать другой путь для хранения файлов, изменить язык и вообще сделать много полезного)

Можно добавлять новых пользователей и осуществлять контроль видимости репозиториев, выдавать исключительные права пользователям. Также можно объединять пользователей в команды и управлять ими. На пример команде Core Developers будут доступны все ветки в репозитории, а команде Testers только ветка Master.

Читайте также:  Electronic workbench не запускается windows 10 0xc0000142

Я надеюсь данная статья была полезна для вас. Ставьте Like за встроенный редактор кода и подсветку синтаксиса))) Приятного кодинга!

Установка Git на ОС Windows

Сегодня поговорим о системе контроля версий Git. Git разработана основателем ОС Linux Линусом Торвальдсом . Как известно разработчики ПО для Linux работают в разных уголках мира, чтобы контролировать работу над проектами Линус разработал удобную и полезную систему именно его команде, но в скором времени Git стал самой востребованной системой контроля версий. И это не странно, так как все, за что берется Линус стает гениальным.

Git относится к типу систем DVCS (Distributed version control systems) — распределенная система контроля версий, это говорим нам о том, что работа с файлами не зависит от центрального сервера, Вы можете создавать, изменять и сохранять информацию локально в своем репозитории (это рабочая директория с Вашими файлами).

С помощью Git Вы можете:

  1. Откатываться до более ранней версии файла.
  2. Отменять и фиксировать изменения.
  3. Полностью контролировать процесс создания проекта, анализировать, сравнивать информацию.
  4. Работать над проектом в команде: сливать изменения в удаленный репозиторий и “забирать” себе изменения с файлов других участников.
  5. Хранить копию своих файлов на удаленном репозитории (что удобно, при потере данных).

1 .Начать установку Git нужно с загрузки установочного файла с официального сайта. URL для скачивания — https://git-scm.com/downloads и выбираем версию под Windows.

2. Далее выбираем версию, которая подходит под Ваш процессор, в нашем случае это 64-bit и делаем загрузку.

3. Запускаем скачанный установочный файл, читаем лицензию и жмем Next.

4 . Следующий шаг — выбор места установки. Можно указать или по умолчании, или кликнуть на Browse и выбрать необходимое расположение. После выбора жмем Next.

5 . Выбираем компоненты, какие хотите установить. Для добавления ярлыка на рабочий стол, напротив On the Desktop ставим галочку. В нашем случае мы выбирали компоненты, которые указанные по-умолчанию. Далее жмем Next.

6 . Вводим имя директории для Start Menu. Дополнительно можно кликнуть на кнопку Browse и изменяем путь . И жмем Next.

7 . Выбираем редактор для Git, по дефолту выбран текстовый редактор, можно выбрать любой другой нажав на галочку. После выбора жмем Next.

8.Указываем способ использования Git.

  • Use Git from Git Bash only — использовать только командную строку Bash.
  • Git from the command line and also from 3rd-party software — использовать Git из Git Bash или из командной строки Windows.
  • Use Git and optional Unix tools from the Command Prompt — использовать утилиты Unix з командной строки Windows.

9.Выберем библиотеку, которая будет использоваться при HTTPS соединении после выбора жмем Next.

  • Use the OpenSSL — сертификаты сервера проверяются с помощью ca-bundle.crt.
  • Use the Windows Secure Channel library — проверка сертификатов сервера библиотеками Windows.

10. Выбираем как будут обрабатываться окончания строк. С первым вариантом Git изменит все окончания строк в ваших файлах с Windows-стиля (\ r \ n) на Unix-стиль (\ r) непосредственно перед фиксацией в Вашем репозитории. Когда Git извлекает файлы из Вашего репозитория, он меняет все окончания строк с Unix-стиля (\ r) на Windows-стиль (\ r \ n). Со вторым вариантом Git изменит все окончания строк В ваших файлах с Windows-стиля (\ r \ n) на Unix-стиль (\ r) непосредственно перед фиксацией в вашем репозитории; однако, когда Git извлекает файлы из вашего репозитория, он не меняет окончания строк. С последним вариантом Git не будет изменять окончание строк при фиксации или извлечении.

Читайте также:  Amd linux graphic drivers

11. Выбор эмулятора терминала по умолчанию для Git Bash.

  • Use MinTTY — терминал Unix, выбираем если Вы знакомы с командной строкой Linux.
  • Use Windows default console window — использовать окно консоли Windows по умолчанию.

Если Вы не планируете использовать Git Bash, Вы можете проигнорировать этот пункт и перейти к следующему шагу установки.Жмем Next.

12 .Выбор дополнительного функционала .

  • Enable file system caching — кэширование файлов.
  • Enable Git Credential Manager — возможность доступа к некоторым Git-репозиториям, используя Вашу учетную запись Microsoft вместо ключей HTTPS / SSH.
  • Enable symbolic links — поддерживать символические ссылки.

После выбора жмем Next.

13. Выбор экспериментальных вариантов, которые находятся в разработке. Если Вы не очень хорошо знакомы с этими параметрами, лучше оставить их без отметок. Нажмите Install и Git начнет установку.

14 .Последний шаг — жмем Finish, чтобы завершить установку.

После того как установка завершится и Вы увидите экран завершения, Git будет успешно установлен на Ваш компьютер с Windows. Вы можете получить к нему доступ через меню «Пуск». Если Вы хотите изменить какие-либо параметры, выбранные Вами в процессе установки, Вы можете перезапустить программу установки.

Свой Git сервер на Windows

В принципе все это легко нагуглить, но тем не менее опишу свой опыт. Итак, есть windows сервер (в моем случае Windows Server 2008, но все описанное ниже применимо ко всем windows), на этом севере работает некое веб-приложение, которое хочется коллективно развивать командой из нескольких человек. Идеи лучше чем Git в голову не пришло.

Подготовительный этап

На сервере ставим и настраиваем SSH сервер (в моем случае это оказался Bitvise SSH Server, далее все настройки буду описывать относительно него).

Создаем пары public и private ключей для нужных пользователей, в настройках этих пользователей на SSH сервере добавляем им соответствующие public ключи и убеждаемся что разрешена авторизация по ключу.

Если требуется работать с Git из интернета, также пробрасываем соответствующий порт наружу, обычно это 22, но в моем случае получилось 222 по техническим причинам. Проверяем доступность сервера по SSH снаружи и возможность авторизации с ключом, PuTTY в помощь 🙂

Ставим собственно Git (в моем случае это msysgit). Народ предлагает ставить в короткий путь вроде C:/Git, но я ставил в каталог по-умолчанию, все работает. Через Git GUI создаем репозиторий, в моем случае это С:/Webroot/test-git.

Клиентская часть

В моем случае клиенты — тоже windows машины, на них потребуется Git (тот же msysgit) и клиент TurtoiseGit, в моем случае. На клиенте пытаемся склонировать наш репозиторий при помощи Git Clone, вводим урл

где mylogin — это ваш логин для ssh, example.com:222 — адрес сервера и порт (не обязательно), C:/Webroot/test-git — полный путь к репозиторию.

Читайте также:  Не удается восстановить компьютер windows 10

Жмем ОК, ждем, получаем ошибку и отправляемся дальше настраивать сервер.

Настройка Git на сервере

Первым делом идем в переменные окружения (Компьютер -> Свойства -> Дополнительные параметры системы -> Переменные среды). В разделе системные переменные находим PATH и жмем изменить. Убеждаемся что там есть, а если нет, то добавляем три папки:

C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Git\bin;C:\Program Files (x86)\Git\libexec\git-core

На всякий случай напомню, что Git у нас стоит в C:\Program Files (x86)\Git.

Теперь проверяем, что Git доступен. Либо пытаемся еще раз Git Clone на клиенте и получаем другую ошибку, либо заходим по ssh и говорим git прямо и текущей папки, получаем краткий хелп от гита. Если ругается на неизвестную команду, ищем ошибку на предыдущем шаге.

Теперь наша проблема (если посмотреть логи ssh сервера) заключается в том, что git-upload-pack на вход получает путь, обернутый в одинарные кавычки, и естественно, не работает. Нормального решения нет, но есть подпорки, например как описано здесь. Моя версия проделанного:

C:\Program Files (x86)\Git\cmd\gitcmdhelper.sh

прописываем в него

Идем в настройки ssh сервера и для нужного пользователя (или группы) изменяем параметр Exec request prefix на

cmd.exe /c sh gitcmdhelper.sh

ВНИМАНИЕ! после .sh есть пробел! Строка получается вот такая «cmd.exe /c sh gitcmdhelper.sh «, без пробела на конце не будет работать!

Замечание. Эта подпорка лишает вас возможности работать с путями в которых есть пробелы, в большинстве случаев это не критично, но все же.

В глобальном конфиге Git вносим следующие изменения (как советуют на хабре), правим C:\Program Files (x86)\Git\etc\gitconfig

[core]
symlinks = false
autocrlf = true
ignorecase = true
quotepath = false
[i18n]
commitencoding = cp1251
logoutputencoding = cp1251

И, о чудо! Оно теперь работает! Ну по крайней мере мне удалось сделать Pull, Commit и Push.

И последнее — хуки

Поскольку в git-e не принято пушить в основной рабочий репозиторий (для этого есть ряд причин, кому интересно, в гугль), то можно сделать bare-репозиторий, в который будут приходить все пуши, а с помощью механизмов хуков изменения будет забирать рабочая копия.

Итак у нас есть bare-репозиторий C:\Webroot\test-git в который приходят все комиты и пуши, и рабочая копия C:\Webroot\test-git.production, на которую настроен document root сервера.

Рабочая копия должна быть «настроена на» bare-репозиторий, для этого в рабочей копии выполним команду

git remote add local C:/Webroot/test-git

результатом станет добавление в C:\Webroot\test-git.production\.git\config следующего

.
[remote «local»]
url = C:/Webroot/test-git
fetch = +refs/heads/*:refs/remotes/local/*

Для того чтоб заработали хуки, нужно положить файл с названием действия в папку в bare-репозитории .git/hooks/, в нашем случае это будет

обычно там уже заложен post-receive.sample, его достаточно просто переименовать. А в сам файл вписываем следующее содержимое, которое после получения данных заставит рабочую копию сделать pull:

unset GIT_DIR
cd C:/Webroot/test-git.production
git pull local master

Таким образом мы будем корректно обновлять рабочую копию при каждом push-е в bare-репозиторий.

Вот пара полезных ссылок по теме:

/bar.com.git, it will go to

Поднимать Git на windows, по моему мнению, не самое лучшее решение, если есть возможность все же лучше это сделать на Linux.

Оцените статью