Приступая к работе с Git в подсистеме Windows для Linux



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

Быстро пробежимся по основным пунктам. У меня стоит 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.

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

Источник

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

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

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

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

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

.

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

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

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

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

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

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

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

  • 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Как установить шрифты в Windows XP 7 8 10

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

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

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

git config —global user.email «youmail@example.com»

git config —global user.name «Ваше имя»

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

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

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

git commit -m «Init»

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

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

git push -u origin master

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

git push -u gitlab master

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

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

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

ssh-keygen -t rsa -b 4096 -C «<a href=»mailto:yourmail@gmail.com»>yourmail@gmail.com</a>»

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

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

eval $(ssh-agent -s)

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

Добавляем созданный ключ на сервер 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 <a href=»mailto:git@github.com»>git@github.com</a>

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

Источник

Приступая к работе с Git в подсистеме Windows для Linux

Git — это наиболее часто используемая система управления версиями. С помощью Git вы можете отслеживание изменений, внесенных в файлы, поэтому у вас есть запись о том, что было сделано, и возможность вернуться к более ранним версиям файлов при необходимости. Кроме того, Git упрощает совместную работу, позволяя объединить изменения, внесенные несколькими людьми, в один источник.

Git можно установить в Windows и на WSL

Важно. при включении WSL и установке дистрибутива Linux устанавливается новая файловая система, отделенная от Windows NTFS C:. диск на компьютере. В Linux буквы дисков не задаются. Они получают точки подключения. Корневой каталог файловой системы / — это точка подключения корневого раздела или папки в случае с WSL. Не все в разделе / — это один и тот же диск. Например, на моем ноутбуке я установил две версии Ubuntu (20,04 и 18,04), а также Debian. Если открыть эти дистрибутивы, выберите корневой каталог с командой cd

, а затем введите команду explorer.exe . , откроется Проводник Windows и отобразится путь к каталогу для этого дистрибутива.

Дистрибутив Linux Путь Windows к домашней папке Access
Ubuntu 20.04 \\wsl$\Ubuntu-20.04\home\username
Ubuntu 18.04 \\wsl$\Ubuntu-18.04\home\username
Debian \\wsl$\Debian\home\username
Windows PowerShell C:\Users\username

Если вы ищете доступ к каталогу файлов Windows из командной строки WSL Distribution, а не к C:\Users\username каталогу, то доступ к нему будет осуществляться с помощью /mnt/c/Users/username , поскольку дистрибутив Linux просматривает файловую систему Windows как подключенный диск.

Необходимо установить Git в каждой файловой системе, с которой планируется использовать.

Установка Git

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

Сведения об установке Git см. на сайте скачивания Git для Linux . Каждый дистрибутив Linux имеет собственный диспетчер пакетов и команду install.

Для получения последней стабильной версии Git в Ubuntu/Debian введите команду:

Также может потребоваться установить Git для Windows , если вы этого еще не сделали.

Настройка файла конфигурации Git

Чтобы настроить файл конфигурации Git, откройте командную строку, в которой вы работаете, и задайте свое имя с помощью этой команды (заменив "Ваше имя" на предпочитаемое имя пользователя):

Задайте свою электронную почту с помощью этой команды (заменив " youremail@domain.com " своим предпочтительным письмом):

Если у вас еще нет учетной записи GitHub, вы можете зарегистрироваться на сайте GitHub. Если вы никогда не использовали Git, обратитесь к руководствам по GitHub. Они помогут вам приступить к работе. Если вам нужно изменить конфигурацию Git, это можно сделать с помощью встроенного текстового редактора, например Nano: nano

Установка диспетчера учетных данных Git

Ядро диспетчера учетных данных Git (gcm) позволяет проверять подлинность удаленного сервера Git, даже если имеется сложная модель проверки подлинности, например двухфакторная проверка подлинности, Azure Active Directory или использование удаленных URL-адресов SSH, требующих пароля ключа SSH для каждой принудительной отправки Git. Ядро GCM интегрируется в поток проверки подлинности для таких служб, как GitHub, и после проверки подлинности в поставщике услуг размещения запрашивает новый маркер проверки подлинности. Затем маркер сохраняется в диспетчере учетных данных Windowsв безопасном режиме. В первый раз можно использовать Git для взаимодействия с поставщиком услуг размещения, не требуя повторной проверки подлинности. Он просто обратится к маркеру в диспетчере учетных данных Windows.

Чтобы настроить ядро GCM для использования с дистрибутивом WSL, откройте дистрибутив и введите следующую команду:

Теперь любая операция Git, выполняемая в дистрибутиве WSL, будет использовать GCM Core. Если у вас уже есть кэшированные учетные данные для узла, к ним будет выполняться доступ из диспетчера учетных данных. В противном случае отобразится диалоговое окно с запросом учетных данных, даже если вы работаете в консоли Linux.

Если вы используете ключ GPG для защиты подписывания кода, вам может потребоваться связать ключ GPG с вашим адресом электронной почты GitHub.

Добавление файла игнорирования Git

Рекомендуется добавить gitignore- файл в проекты. GitHub предлагает набор полезных шаблонов. gitignore с рекомендуемыми настройками файлов gitignore, организованными в соответствии с вашим вариантом использования. Например, вот шаблон gitignore по умолчанию GitHub для проекта Node.js.

Если вы решили создать репозиторий с помощью веб-сайта GitHub, доступны флажки для инициализации репозитория с файлом readme, gitignore-файлом, настроенным для конкретного типа проекта, и вариантами добавления лицензии, если это необходимо.

Git и VS Code

Visual Studio Code поставляется со встроенной поддержкой Git, включая вкладку управления исходным кодом, в которой будут отображаться изменения и работать с различными командами Git. Дополнительные сведения о поддержке Git VS Code.

Окончания строк Git

Если вы работаете с одной и той же папкой репозитория между Windows, WSL или контейнером, обязательно настройте согласованные окончания строк.

Поскольку Windows и Linux используют разные окончания строк по умолчанию, Git может сообщить о большом количестве измененных файлов, которые не отличаются от их концов строк. Чтобы предотвратить это, можно отключить преобразование конца строки с помощью .gitattributes файла или глобально на стороне Windows. См. Этот VS Code документ об устранении проблем с завершением строк Git.

Источник

Свой 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 — полный путь к репозиторию.

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

Настройка 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-репозиторий.

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

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

Источник

Установка и использование системы контроля версий Git в Windows

В инструкции описан процесс загрузки, установки системы контроля версий Git на сервера с операционной системой Windows и подключения к удаленному репозиторию GitHub.

Что это такое?

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

git

Загрузка и установка

Загрузите установщик с официального сайта. Загрузка начнется автоматически.

Downloads-Windows

Перейдите в папку “Downloads” и запустите на исполнение загруженный файл.

Git Setup

Укажите путь до каталога в который будет установлен Git.

Browse

Чтобы на рабочем столе была иконка Git, на следующем шаге отметьте галочкой “On the Desktop”.

Select Components

Введите имя директории, которая будет создана в Start Menu. При необходимости можно изменить путь с помощью кнопки Browse.

Select Start Menu Folder

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

  • 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.

Adjusting your PATH environment

Выберете библиотку, которая будет использована при подключении по протоколу HTTPS:

  • OpenSSL — сертификаты сервера будут проверяться с использованием Unix-файла ca-bundle.crt.
  • Windows Secure Channel — сертификаты сервера будут проверяться с использованием стандартной библиотеки Windows.

Choosing HTTPS transport backend

Убедитесь, что вы выбрали способ обработки окончания строк «Checkout Windows-style, commit Unix-style line endings». Это значение гарантирует, что Git преобразует LF в CRLF при проверке текстовых файлов. При выполнении текстовых файлов CRLF также преобразуется в LF. Это мера совместимости для защиты новых строк в текстовых файлах, что позволяет легко работать с текстовыми файлами в Windows и на платформах Unix.

Примечание: LF и CRLF — управляющий символ для переноса строки в Unix и Windows соответственно.

Configuration the line ending conversions

Далее необходимо сконфигурировать используемый терминал:

  • MinTTY — терминал Unix;
  • Windows — стандартный терминал Windows.

Configuring the terminal emulator to use with Git Bash

Отметьте галочками нужные вам дополнительные функции:

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

Нажмите кнопку Install.

Configuring the terminal emulator to use with Git Bash

Начнется процесс установки.

Configuring extra options

Подключение к удаленному репозиторию

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

Git Bash Here

Перед вами откроется приглашение командной строки в зависимости от настроек.

Консоль

Для настройки необходимо указать ваше имя и электронную почту:

git config —global user.email "you@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

git remote add gitlab https://server/namespace/project.git
git push -u gitlab master

Перед вами откроется окно входа (консольное или стандартное окно Windows). В качестве пользователя укажите ваш логин на GitHub, репозиторий — название существующего репозитория.

Login

Консоль

Аутентификация по SSH-ключам

Выполнить подключение к удаленному репозиторию можно по протоколу SSH с помощью приватного и публичного ключа. Чтобы сгенерировать пару, выполните команду в консоли GitBash, указав ваш реальный почтовый адрес:

ssh-keygen -t rsa -b 4096 -C "email@example.com"

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

passphrase

eval $(ssh-agent -s)

Вы увидите идентификатор процесса.

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

Теперь нужно добавить ключ к удаленному серверу Git. Заходим на сервер Git и в настройках добавляем SSH-ключ.

Например, на сервере GitHub это можно сделать следующим образом: откройте Settings -> SSH and GPG keys,нажмите New SSH key. В поле Title введите понятное название, в поле Key вставьте публичный ключ (содержимое файла

Источник

Adblock
detector