Правильная установка Git в среде Ubuntu Linux
Papa-jobs.ru

Ремонт телефонов

Правильная установка Git в среде Ubuntu Linux

Предложение от 8host.com

Установка Git в Ubuntu 18.04

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

Одной из наиболее популярных систем контроля версий является Git. Многие проекты хранят файлы в репозиториях Git, а сайты GitHub и Bitbucket сделали процесс совместного использования и разработки кода простым и производительным.

Этот мануал поможет установить и настроить Git в Ubuntu 18.04. Здесь описано два метода установки программы, каждый из которых имеет свои преимущества.

Требования

Для работы вам нужен сервер Ubuntu 18.04, полностью настроенный по этому мануалу или с помощью этого сценария.

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

Проще всего установить Git при помощи стандартного пакетного менеджера apt. Однако стандартные репозитории системы могут содержать несколько устаревшую версию программы. Если вам нужна более свежая версия, установите Git из исходного кода (об этом – в следующем разделе).

Обновите индекс пакетов, а затем загрузите и установите Git:

sudo apt update
sudo apt install git

Убедитесь, что установка прошла успешно:

git –version
git version 2.17.1

Команда должна отобразить версию установки Git.

После установки переходите к разделу «Настройка Git».

Установка Git из исходного кода

Установка из исходного кода – более гибкий метод, позволяющий получить новую версию программы. Такая установка занимает больше времени и в дальнейшем не поддерживается пакетным менеджером системы, однако предоставит последний релиз программы и доступ к пользовательским опциям установки.

Прежде чем начать установку git, нужно установить зависимости программы. Все они доступны в стандартном репозитории системы, потому их можно быстро загрузить, предварительно обновив индекс пакетов:

sudo apt update
sudo apt install make libssl-dev libghc-zlib-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip

Теперь можно установить Git. Посетите зеркало проекта на GitHub.

Перейдите в ветку master. Кликните по ссылке Tags и выберите версию Git. Версии с пометкой rc (release candidate) без веских на то причин использовать не рекомендуется, так как они нестабильны.

В правой части страницы кликните Clone or download, затем кликните правой кнопкой мыши по Download ZIP и скопируйте ссылку, которая заканчивается на .zip.

Вернитесь на сервер и откройте каталог tmp:

Установите программу с помощью команды wget, указав только что скопированный адрес.

wget https://github.com/git/git/archive/v2.18.0.zip -O git.zip

Распакуйте загруженный архив и перейдите в полученный каталог:

unzip git.zip
cd git-*

Соберите и установите пакет:

make prefix=/usr/local all
sudo make prefix=/usr/local install

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

Чтобы в дальнейшем обновить git до последней версии, нужно клонировать репозиторий в домашний каталог, а затем собрать и установить пакет новой версии. Чтобы узнать адрес версии, которую нужно клонировать, перейдите в ветку этой версии на GitHub и скопируйте адрес справа.

Перейдите в домашний каталог и запустите команду git clone, указав полученный адрес версии:

git clone https://github.com/git/git.git

Это создаст в домашнем каталоге новый каталог. В нём вы можете пересобрать пакет и переустановить новую версию, используя приведённые выше инструкции. Старая версия программы будет обновлена.

cd git
make prefix=/usr/local all
sudo make prefix=/usr/local install

Настройка Git

Итак, система контроля версий установлена. Теперь нужно откорректировать её настройки, чтобы коммиты содержали правильную информацию.

Проще всего это сделать при помощи команды:

Нужно предоставить программе имя и электронный адрес пользователя, поскольку Git встраивает эту информацию в каждый коммит. Чтобы добавить эту информацию, наберите:

git config –global user.name “Your Name”
git config –global user.email “youremail@domain.com”

Чтобы просмотреть конфигурацию, введите:

git config –list
user.name=Your Name
user.email=youremail@domain.com
.

Как видите, вывод имеет немного другой формат. Информация хранится в конфигурационном файле Git, который можно редактировать вручную:

/.gitconfig
[user]
name = Your Name
email = youremail@domain.com

В этом файле можно установить множество различных опций, но в данном случае нам нужны только эти две. Если вы пропустите это действие, программа выдаст предупреждение. Кроме того, вам придется каждый раз подтверждать подлинность данных в коммите.

Заключение

Теперь система Git установлена и полностью готова к работе. Чтобы узнать о работе Git больше, читайте:

Установка git Ubuntu 16.04

Система контроля версий – это незаменимая вещь при совместной разработке программного обеспечения. Такие программы позволяют отслеживать изменения в вашем исходном коде и при необходимости восстанавливать прошлое состояние.

Одной из самых популярных систем управления версиями заслуженно считается Git. Многие проекты хранят свои файлы в репозиториях Git, а сайты GitHub и Bitbucket сделали обмен исходным кодом очень простым. В этой небольшой статье будет рассмотрена установка Git Ubuntu 16.04. Мы рассмотрим два способа установки, а также начальную конфигурацию.

Установка Git с помощью пакетного менеджера

Самый простой способ установить Git Ubuntu 16.04, это использовать пакетный менеджер apt и официальные репозитории Ubuntu. Это самый быстрый и простой метод, но вы получите не самую свежую версию.

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

sudo apt update

Затем осталось загрузить и установить программу:

sudo apt install git

После этого программа будет установлена и вы можете переходить к ее настройке.

Установка Git из исходных кодов

Более гибкий, но в то же время самый сложный способ установки Git Ubuntu 16.04 – это сборка из исходных кодов. Процесс установки займет больше времени, но вы получите больше контроля над параметрами программы, а также сможете установить самую последнюю версию.

Перед тем, как приступить нам нужно будет скачать пакеты, от которых зависит Git. Все есть в официальном репозитории, поэтому вы можете все сделать с помощью пакетного менеджера:

sudo apt-get update
$ sudo apt-get install build-essential libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip

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

Когда выберите версию, нажмите кнопку Download zip. Или же скопируйте ссылку чтобы скачать с помощью терминала. Например, на данный момент самая последняя версия – 2.10.1. Вы можете использовать адрес файла вместе с wget, чтобы скачать исходники:

wget https://github.com/git/git/archive/v2.10.1.zip -o git.zip

Распакуйте только что загруженный файл с помощью unzip и переместитесь в каталог с файлами архива:

unzip git.zip
$ cd git-*

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

make prefix=/usr/local all
$ sudo make prefix=/usr/local install

После того как вы установили Git таким способом, вы можете просто еще раз клонировать репозиторий и выполнить две последние команды для обновления. Для клонирования нужно знать URL репозитория. Например, для текущей ветки master, этот url будет выглядеть вот так:

git clone https://github.com/git/git

Затем просто соберите новую версию git с помощью тех же команд:

cd git
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

После выполнения старая версия будет заменена новой. Причем, старые исходники сохранятся, так что в случае ошибок вы сможете восстановить старую версию. А теперь давайте рассмотрим как выполнить минимальную настройку Git, чтобы с программой можно было работать.

Настройка Git в Ubuntu

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

Самый простой способ это сделать – с помощью команды git config. Git использует имя пользователя и Email при каждом коммите, так что задавать их обязательно. Для этого выполните команды:

git config –global user.name “Your Name”
$ git config –global user.email “youremail@domain.com”

Вы можете посмотреть установленные параметры с помощью команды:

git config –list

user.name=Your Name
user.email=youremail@domain.com

Читать еще:  Способы подключения разных видов сабвуферов к компьютеру

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

[user]
name = Your Name
email = youremail@domain.com

Здесь можно установить много других параметров, но именно эти два самые важные, потому что если вы попытаетесь что-то сделать когда они не установлены, то увидите предупреждение:

Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

$ git config –global user.name “Your Name”
$ git config –global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

$ git commit –amend –reset-author

Выводы

Теперь вы знаете как выполняется установка git Ubuntu 16.04. Мы рассмотрели два способа – простой и быстрый, а также сложный, но более гибкий. Если у вас остались вопросы спрашивайте в комментариях!

Contents

Share

Sign up for our newsletter.

Get the latest tutorials on SysAdmin and open source topics.

Related

Установка Git в Ubuntu 18.04

Предыдущая версия данного руководства была написана Бреннаном Бернсом.

Введение

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

Одна из наиболее популярных систем управления версиями в настоящее время — это Git. Многие проектные файлы хранятся в репозитории Git, а такие сайты, как GitHub, GitLab и Bitbucket, упрощают работу над проектами разработки программного обеспечения и совместную работу.

В этом руководстве мы расскажем, как установить и настроить Git на сервере Ubuntu 18.04. Мы расскажем, как выполнить установку программного обеспечения двумя различными способами, каждый из которых имеет свои преимущества в зависимости от ваших конкретных потребностей.

Предварительные требования

Для выполнения этого обучающего руководства у вас должен быть пользователь без прав root с привилегиями sudo на сервере Ubuntu 18.04. Чтобы выполнить необходимую первоначальную настройку, воспользуйтесь нашим руководством по ручной начальной настройке сервера или запустите наш автоматизированный скрипт.

После настройки сервера и пользователя вы можете продолжить.

Установка Git с пакетами по умолчанию

Для репозиториев Ubuntu по умолчанию используется быстрый метод установки Git. Обратите внимание, что версия, которую вы устанавливаете через эти хранилища, может отличаться от новейшей доступной версии. Если вам потребуется последняя версия, перейдите к следующему разделу этого обучающего руководства, чтобы узнать, как выполнить установку и компиляцию Git из заданного вами источника.

Во-первых, воспользуйтесь инструменты управления пакетами apt для обновления локального индекса пакетов. После завершения обновления вы сможете загрузить и установить Git:

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

После успешной установки Git вы можете переходить Настройка Git данного обучающего руководства и выполнению настройки.

Установка Git из файла с исходным кодом

Более гибкий метод установки Git — это компиляция программного обеспечения из исходного кода. Это метод требует больше времени, а полученный результат не будет сохранен в менеджере пакетов, но он позволяет загрузить последнюю версию и дает определенный контроль над параметрами, которые вы включаете в ПО при необходимости индивидуальной настройки.

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

После установки необходимых зависимостей вы можете продолжить работу и получить нужную вас версию Git, посетив зеркало проекта Git на GitHub, доступное по следующему URL-адресу:

Перейдя по ссылке, убедитесь, что вы находитесь в ветке master . Нажмите ссылку Tags и выберите желаемую версию Git. Если у вас нет оснований для загрузки версии-кандидата (помеченная rc), постарайтесь избежать этого, поскольку такие версии могут быть нестабильными.

Затем нажмите кнопку Clone or download​​​ на правой стороне страницы, потом нажмите правой кнопкой мыши Download ZIP и скопируйте адрес ссылки, заканчивающийся на .zip .

Вернитесь на сервер Ubuntu 16.04 и перейдите в директорию tmp , чтобы загрузить временные файлы.

Здесь вы можете использовать команду wget для установки скопированной ссылки на файл с архивом. Мы укажем новое имя для файла: git.zip .

Разархивируйте файл, который вы загрузили, и переместите в полученную директорию:

Теперь вы можете создать пакет и установить его, введя эти две команды:

Чтобы убедиться, что установка прошла успешно, вы можете ввести git –version , после чего вы должны получить соответствующий вывод, указывающий текущую установленную версию Git.

Теперь, когда вы установили Git, если вы захотите обновиться до более поздней версии, вы можете клонировать репозиторий, а потом выполнить сборку и установку. Чтобы найти URL-адрес для использования при клонировании, перейдите к нужной ветке или тегу на странице проекта в GitHub и скопируйте клонируемый URL-адрес с правой стороны:

На момент написания соответствующий URL должен выглядеть следующим образом:

Измените домашнюю директорию и используйте git clone для URL-адреса, который вы только что скопировали:

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

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

Настройка Git

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

Это можно сделать с помощью команды git config . В частности, нам нужно указать наше имя и адрес электронной почты, поскольку Git вставляет эту информацию в каждое внесение. Мы можем двигаться дальше и добавить эту информацию с помощью следующей команды:

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

Информация, которую вы вводите, сохраняется в файле конфигурации Git, и вы можете при желании изменить ее вручную с помощью текстового редактора:

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

Заключение

Вы установили Git и готовы к его использованию в системе.

Чтобы узнать больше об использовании Git, прочитайте эти статьи и разделы:

Устанавливаем и настраиваем cGit на Ubuntu

С помощью данной статьи (пошаговой инструкции) вы сможете сделать себе собственный Git репозиторий, с веб-интерфейсом на базе cGit.

Вот так, просто и лаконично, выглядит стандартный cGit (кликабельно):

Сейчас стали очень популярны виртуальные выделенные серверы (VPS, VDS). За 5-15 долларов в месяц можно позволить себе пользоваться почти полноценным хостингом, с индивидуальными настройками, неплохими ресурсами и почти всем, что душа пожелает. Моя душа желает пользоваться системой контроля версий Git. У неё очень много плюсов, среди которых главные — это скорость и удобство. Я достаточно долго пользовался SVN (не по собственной воле) и я был очень удивлён, когда попробовал Git. Процесс разработки, слияния веток, переключения с ветки на ветку и обновление проходит чрезвычайно удобно, быстро и беспроблемно! В качестве веб-морды я выбрал cGit, потому что встретил довольно много мест, где её используют, он маленький и быстрый. А так же потому, что мне очень не понравился gitweb, который почему-то более популярен. На моём сервере и клиенте установлена ОС Ubuntu 9.04 и 9.10 соответственно. Все действия будут выполняться в консоли. Инструкция расчитана на начинающего пользователя.

В первую очередь (если вы этого до сих пор не сделали) нам нужно будет установить LAMP на удалённом компьютере (он же сервер, он же будущее хранилище). Для этого в убунте достаточно выполнить:

Читать еще:  Объединение нескольких картинок в Photoshop

Далее мы скачаем свежую версию cGit и скомпилируем её. Для этого нам нужны некоторые библиотеки и программы. Чтобы их установить — выполните:

Мы установили пакеты для компиляции, файловый менеджер mc (c его очень удобным редактором mcedit) и непосредственно набор утилит Git. Приступим к компиляции и установке:

Скачается порядка 20 МБ. Дождитесь успешной компиляции и линковки (обычно не дольше нескольких минут). В результате у нас появился cgi-скрипт, лого и css файл для будущего репозитория. cGit мы установим и настроим вручную.

Дальше возможно несколько вариантов, в зависимости от того, как вы хотите получать доступ к cGit. Мне было удобно обращаться к поддомену. Например так: git.example.ru. Для этого создадим новый виртуальный хост (имя удалённого пользователя — projects):

И вставим в содержимое файла кусок кода (не забудьте поменять домен на свой):

Создадим директорию для cGit и скопируем туда скомпилированные файлы:

Создадим конфигурационный файл для cGit и пропишем в него настройки:

Откроется редактор. Вот моё содержимое конфига, с комментариями:

Теперь всё готово для запуска. Добавим виртуальный хост в список разрешённых и перезапустим апач:

Заходим на git.example.ru и убеждаемся, что всё работает.
Если появилась 50х ошибка, то нужно сделать следующее:

И вставить следующее содержимое (не забудьте изменить пути на свои):

Теперь точно будет работать 🙂
Чтобы проверить, правильно ли всё работает создадим репозиторий с одним файлом:

Обновляем старничку в браузере и видим наш первый коммит.

Подведу итоги того, что мы сделали и как этим пользоваться:
На удалённом сервере мы создали веб-интерфейс для популярной системы контроля версий Git. Доступ к ней происходит через поддомен git.

Опишу примерный сценарий разработчика:

  1. Создаю на сервере новую папку (например www/test) в домашней.
  2. Делаю в ней git init.
  3. На локальной машине делаю git clone projects@example.ru:www/test/.git. Это создаст локальную копию удалённого репозитория (пока пустого).
  4. Накидываю кучу файлов в локальную папку, которую мы создали на предыдущем шаге. Делаю, так сказать, каркас проекта. Если нужно — добавляю исключения (.gitignore).
  5. Выполняю git add . && git commit && git push, комментирую свои изменения.
  6. Всё. Локальный и удалённый репозиарии обновлены и синхронизированны.
  7. Работаю над проектом. После каких-либо осмысленных изменений делаю вновь шаг 5. Не забывайте предварительно зайти в ту папку, с которой работали. Особо ленивые хитрые могу сделать алиасы для баша.

Если вы веб-разрабочик и вам нужно довольно часто показывать текущий результат работы — очень полезно будет положить файл post-receive в папку .git/hooks какого-либо проекта с таким содержимым:

И дайте ему права на исполнение. Теперь после каждого обновления (шаг 5) будет также обновляться рабочее дерево проекта и реальные файлы всегда будут последней, актуальной версии (а этого почти все и ожидают, когда обновили удалённый репозиторий, но так по умолчанию не происходит).

Обучение работы с git происходит быстро и интуитивно. По этой СКВ есть множество информации на разных языках, а с веб-интерфейсом пользоваться будет ещё легче.

На чистоту конфигов не претендую, админ из меня не очень. Но они гарантированно работают.

Установка и настройка git и gitosis в Ubuntu

В данной заметке я расскажу о моём опыт работы с системами контроля версий, а также о том почему я выбрал git, как установил его и gitosis и как их настроил.

Пропустить теорию и перейти к практике.

1. Что такое git?

Git — распределённая система контроля версий файлов. Подробнее можно прочитать в Википедии.

Если же попытаться объяснить в двух словах зачем это нужно, то я бы сделал это так. Предположим вы один реализуете какой-то программный проект. Одна из ключевых стадий — кодирование. Предположим что вы сегодня внесли какие-то изменения в некий файл своего проекта, причём не добавили что-то, а наоборот удалили. Спустя два месяца, вы поняли то что вы когда-то удалили вам бы сейчас очень пригодилось. Если проект разрабатывался без системы контроля версий, то вам пришлось бы искать в резервных копиях (Кстати, а знаете ли вы что люди делятся на тех кто не делает резервные копии и тех кто уже делает резервные копии? Вы к кому относитесь?) нужный архив и из него восстанавливать нужный код. Но если же у вас была система контроля версий, то восстановить утерянный код не составит никакого труда, так как эти системы в общем (но не только) для этого и предназначены.
А теперь представьте что вы работает не один, а в команде. Как уследить за всеми изменениями, производимыми другими членами команды, и как не удалить их код своим? Правильно — нужно использовать систему управления версиями файлов.

Добавлено 4 марта 2011 04:41
Очень полезная статья для новичков Git меняет правила игры в распределенной Web-разработке.

1.1. Git не единственный?

Нет, конечно же git не единственная система контроля(управления) версиями файлов.
Об отличиях и преимуществах git над другими система данного класса написано много статей, а вся их суть, на мой взгляд, высказана на сайте Why Git is Better Then X (eng).

2. Для чего git понадобился мне

Я в силу своей профессии тоже пишу программный код. Есть проект над которым в данном направлении я работаю один, но из разных мест: офис, дом. И переносить исходный код с компьютера на компьютер в ручную мне надоело, да и делается это всё сложнее и сложнее в связи с разрастанием проекта.

Раньше в одном из проектов, над которым тоже работал один, я использовал svn. Но меня очень сильно раздражало наличие в каждом каталоге моего проекта папки .svn . Да и ветвление в svn мне не очень нравилось, хотя не исключаю что я его мог не правильно использовать.

В результате я решил использовать в текущем проекте git.

2.1. Начало знакомства

У git есть официальный сайт с гигантской документацией и не очень понятным учебным пособием, особенно если учесть что хотелось сначала не научиться пользоваться git, а понять как же я его смогу использовать в своём проекте.

На просторах Хабра я наткнулся на несколько статей, которые мне помогли разобраться с тем что такое git и как его правильно готовить за очень короткое время:

Без их прочтения и осмысления дальше лучше не идти.

3. Установка и настройка git и gitosis

В данном разделе я перескажу процесс установки git и gitosis, описанный на многих сайтах, с моими комментариями.

3.1. Подготовка к установке

В процессе установки нам понадобится сервер (server), две рабочие станции — компьютер (comp) и, предположим, ноутбук (note).

3.2. Установка git

3.2.1. Сам git устанавливается одной строчкой:

Установку нужно произвести на всех компьютерах, которые будут работать с git.

3.3. Установка и настройка gitosis на сервере

Для более удобной работы с git есть набор скриптов под названием gitosis, которые позволяют легко управлять несколькими хранилищами и ограничивать права доступа к ним разным людям.
Естественно, можно обойтись и без них, но после серии тестов я решил, что с ними работать удобнее.
Итак, приступим.
ЗАМЕЧАНИЕ: команды идут после знака $

3.3.1. Установим необходимые пакеты для работы с python скриптами:

3.3.2. Создадим и перейдём в папку для хранения исходных кодов gitosis:

3.3.3. Теперь получим исходные коды последней версии gitosis из официального хранилища проекта и перейдём в папку с ними:

Обновление от 23 января 2013.
Раньше для клонирования gitosis использовалась команда: git clone git://eagain.net/gitosis.git

3.3.4. Устанавливаем скрипты gitosis в систему:

3.3.4.а. В общем-то теперь можно вернуться в домашний каталог и удалить исходные коды, они нам больше не нужны:

Теперь важный момент, который описывался только в одном руководстве по установке gitosis из множества, что я перечитал, но и то вскользь: есть пользователи ОС, а есть пользователи git. Это разные пользователи! Для ОС пользователи git не существуют! Пользователи git определяются ключами авторизации.
Во всех инструкциях по установке git я видел, что создаётся новый пользователь с именем git и потом все действия выполняются через него. На самом деле этого можно не делать и установить git в домашнюю директорию любого пользователя ОС. Но в этом случае в файле

Читать еще:  Возможные варианты зарядки аккумулятора ноутбука без зарядного устройства

/.ssh/authorized_keys этого пользователя не должно быть никаких других записей или они должны быть закомментированы!

3.3.5. Если кто-то хочет, то может создать нового пользователя и домашний каталог для git:

ЗАМЕЧАНИЕ: Если в настройках ssh (/etc/ssh/sshd_config) у вас есть список AllowUsers, то нужно туда добавить и этого пользователя (разделителем для разрешённых имён пользователя является пробел)! После этого нужно перезапустить ssh сервер: serg@server:

$ sudo /etc/init.d/ssh restart

3.3.6. Если у вас уже есть ключ авторизации для вашего пользователя, то можно перейти к следующему шагу, а если вы создали нового пользователя или хотите создать новый ключ авторизации, то выполняем:

В ssh-keygen можно создавать ключи с алгоритмом dsa и rsa. dsa используются в качестве подписи, а rsa в основном для шифрования данных. Так как мы собираемся всего лишь отличать одного пользователя от другого, а не шифровать данные, то можно использовать dsa.
После того как ключи были созданы. можно устанавливать gitosis.

3.3.7.а. Если вы создали нового пользователя с именем git, то выполните:
serg@server:

$ sudo -H -u git gitosis-init

3.3.7.б. Если же вы устанавливаете gitosis из под текущего пользователя, то вам подходит:
serg@server:

$ gitosis-init
Ключ авторизации можно было создать и на клиентской машине, с которой будете управлять gitosis, а потом передать его публичную часть (.pub) на сервер. Но если вы создали ключи на сервере, то не забудьте забрать секретную часть ключа (без расширения) на клиентскую машину.

3.3.8. Теперь нужно установить правильные права доступа на определённый каталог (этот шаг необходим из-за особенностей python в разных дистрибутивах):

На этом установка и настройка сервера, по мнению многих руководств, завершена. Я бы посоветовал сделать ещё одно действие.

3.3.9. Установить уровень вывода информации gitosis в положение DEBUG:

Текст в этом файле должен выглядеть так:
[gitosis]
loglevel = DEBUG
[group gitosis-admin]
writable = gitosis-admin
members = serg@server

ЗАМЕЧАНИЕ: Если вы создавали пользователя, то путь к файлу будет другим! Но такой файл всё равно должен быть в корневой директории того пользователя в чью домашнюю папку устанавливался gitosis.

Вот теперь переходим на рабочую станцию, с которой будем управлять хранилищами.

3.4. Настройка gitosis на клиенте (рабочей станции)

Секретная часть ключа авторизации, который был создан на сервере (п.3.3.6.), должна быть в папке

/.ssh/ пользователя рабочей станции от чьего имени будут управляться gitosis.
ЗАМЕЧАНИЕ: Если порт сервера отличается от стандартного или вы связываетесь с сервером в локальной сети по IP, а хотите по имени, то можно добавить в папку

/.ssh/ конфигурационный файл config:

В случае замены IP адреса на имя нужно ещё внести изменения в файл /etc/hosts на рабочей станции. В файле уже имеется пример как это правильно делается.

3.4.1. Теперь можно начать настраивать gitosis. Получаем копию репозитория с сервера и переходим в его папку:

Состав папки должен быть такой:

Файл gitosis.conf содержит настройки для gitosis. А в директории keydir находятся открытые части ключей пользователей, имеющих доступ к репозиториям:

3.5. Добавление правил доступа для нового хранилища

Для того чтобы добавить новое хранилище test нужно добавить в конец файла gitosis.conf содержимое, подобное этому:
[group testers]
members = serg@server tester
writable = test

В строке members указывается какие пользователи будут иметь доступ к хранилищу (test) на чтение и запись (writable). Название группы (testers) нигде не используется, так что может быть абсолютно любым.
Добавлено 14 марта 2010: Название группы в файле gitosis.conf должно быть уникальным!

Предположим, что открытая часть ключа пользователя tester, который работает за другой рабочей станцией (note) уже помещена в папку keydir.

3.5.1. Теперь нужно отправить изменения на сервер:

Всё, данные ушли. Осталось создать само хранилище.

3.6. Создание нового хранилища

Так как пользователь gitosis tester также имеет право записи в хранилище test, как и пользователь serg@server, то создадим хранилище из под него. Хранилище может располагаться где угодно в области доступной пользователю.

ЗАМЕЧАНИЕ1: Обратите внимание на последнюю строку — это не простой push!
ЗАМЕЧАНИЕ2: В строке где указывается ссылка на внешнее хранилище (git remote add origin. ) имя пользователя, то есть то что стоит до @ всегда должно быть такое же как имя пользователя ОС в чей домашней директории расположены хранилища на сервере! О том что в каталоге

/.ssh текущего пользователя должна лежать секретная часть ключа авторизации в gitosis напоминать не надо? (Вторая часть ключа из допущения в п.3.5.)

3.7. Создание публичного доступа к хранилищу

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

Теперь доступ к хранилищу можно получить из любой части Сети (если компьютер к ней подключён и имеет имя/ip) следующим образом:

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

Установка и настройка git и gitosis в Ubuntu: 20 комментариев

Спасибо, сегодня, думаю, попробую все это повторить!

Если на сервере есть несколько веток, то при клонировании получается только master. Пример результата клонирования:
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/branch1
remotes/origin/branch2

Для того чтобы получить и связать остальные ветки нужно проделать следующие операции:
$ git checkout -b branch1
$ git pull origin branch1
$ git checkout master
$ git checkout -b branch2
$ git pull origin branch2

В первой строке создаётся локальная ветка branch1. Переход к ней осуществляется автоматически.
Вторая строка получает содержимое branch1 с сервера в локальную branch1 и связывает локальную ветку с веткой на сервере.
В третьей строке происходит возврат к ветке мастер. Это нужно сделать для того чтобы в локальной branch2 не оказалось содержимое branch1. Скорее всего это костыль, но только из ветки master у меня получилось правильное создание веток.
Четвёртая строка создаёт локальную ветку branch2. Переход к ней осуществляется автоматически.
Пятая строка получает её содержимое с сервера и связывает локальную ветку с веткой на сервере.
ВАЖНОЕ ЗАМЕЧАНИЕ.
Связывание веток произошло только для получения данных с сервера. Для отправки данных на сервер нужно указывать все параметры push!
git push origin branch1:branch1
branch1 (до двоеточия) — локальная ветка.
branch1 (после двоеточия) — ветка на сервере.

Добавлено 10 февраля 2011
Как сделать, чтобы ветки автоматически корректно отправлялись на сервер читайте в комментарии от 10 февраля 2011.

Добавлено 6 декабря 2011
Обязательно проверяйте результат выполнения команды из пункта 3.3.8:
sudo chmod 755 /home/имя_пользователя/repositories/gitosis-admin.git/hooks/post-update
Если не установить права исполнения на скрипт post-update, то после добавления публичной части ключей пользователей в keydir (см.п.3.4.1.) и отправки их на сервер (git push) они не добавятся в файл

/.ssh/authorized_keys пользователя на сервере, из под которого работает gitosis. Что в свою очередь приведёт к тому, что вместо или сразу после запроса passphrase будет запрашиваться пароль пользователя на сервере.

Очень нужна помощь!

Когда делаю:
fba@fbandrey:

/work/fl/qwe.ru$ git push origin master:refs/heads/master

Получаю ответ:
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

В чем может быть проблема.

В gitosis.conf добавил:
[group fl]
members = fba@webdep1
writable = qwe.com

Ключи тоже вроде на месте.

Для Андрей
Обсуждение проблемы перенесено на форум в тему Проблема с git

Спасибо! Похоже, это самый понятный и удобный мануал из всех, которые я нашел.

Я отношусь к тем кто еще не делает резерные копии.

mpak, не могу сказать, что это умный поступок с вашей стороны. Кстати, что будете делать, когда произойдёт сбой?

Ссылка на основную публикацию
Adblock
detector