Меню

Установка и настройка git для ubuntu



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

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

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

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

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

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

sudo apt update

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

sudo apt install git

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

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

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

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

sudo apt update
sudo apt 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.28.0.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

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

[user]
name = Имя
email = youremail@domain.com

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

Выводы

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

Источник

1.5 Введение — Установка Git

Установка Git

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

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

Установка в Linux

Если вы хотите установить Git под Linux как бинарный пакет, это можно сделать, используя обычный менеджер пакетов вашего дистрибутива. Если у вас Fedora (или другой похожий дистрибутив, такой как RHEL или CentOS), можно воспользоваться dnf :

Если же у вас дистрибутив, основанный на Debian, например, Ubuntu, попробуйте apt :

Чтобы воспользоваться дополнительными возможностями, посмотрите инструкцию по установке для нескольких различных разновидностей Unix на сайте Git http://git-scm.com/download/linux.

Читайте также:  Настройка реле ртм и ртв

Установка на Mac

Существует несколько способов установки Git на Mac. Самый простой — установить Xcode Command Line Tools. В версии Mavericks (10.9) и выше вы можете добиться этого просто первый раз выполнив git в терминале.

Если Git не установлен, вам будет предложено его установить.

Если Вы хотите получить более актуальную версию, то можете воспользоваться бинарным установщиком. Установщик Git для OS X доступен для скачивания с сайта Git http://git-scm.com/download/mac.

Вы также можете установить Git при установке GitHub для Mac. Их графический интерфейс Git также имеет возможность установить и утилиты командной строки. Скачать клиент GitHub для Mac вы можете с сайта https://desktop.github.com.

Установка в Windows

Для установки Git в Windows также имеется несколько способов. Официальная сборка доступна для скачивания на официальном сайте Git. Просто перейдите на страницу http://git-scm.com/download/win, и загрузка запустится автоматически. Обратите внимание, что это отдельный проект, называемый Git для Windows; для получения дополнительной информации о нём перейдите на https://gitforwindows.org.

Для автоматической установки вы можете использовать пакет Git Chocolatey. Обратите внимание, что пакет Chocolatey поддерживается сообществом.

Другой простой способ установки Git — установить GitHub для Windows. Его установщик включает в себя утилиты командной строки и GUI Git. Он также корректно работает с Powershell, обеспечивает надёжное сохранение учётных данных и правильные настройки CRLF. Вы познакомитесь с этими вещами подробнее несколько позже, здесь же отметим, что они будут вам необходимы. Вы можете загрузить GitHub для Windows с вебсайта GitHub Desktop.

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

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

Если вы действительно хотите установить Git из исходников, у вас должны быть установлены следующие библиотеки, от которых он зависит: autotools, curl, zlib, openssl, expat, and libiconv. Например, если в вашей системе используется dnf (Fedora) или apt-get (системы на базе Debian), вы можете использовать одну из следующих команд для установки всех зависимостей, используемых для сборки и установки бинарных файлов Git:

Для того, чтобы собрать документацию в различных форматах (doc, html, info), понадобится установить дополнительные зависимости:

Пользоватли RHEL и производных от неё (таких как CentOS или Scientific Linux) должны подключить репозиторий EPEL для корректной установки пакета docbook2X

Если вы используете систему на базе Debian (Debian/Ubuntu/Ubuntu-производные), вам так же понадобится установить пакет install-info :

Если вы используете систему на базе RPM (Fedora/RHEL/RHEL-производные), вам так же понадобится установить пакет getopt , который уже установлен в системах на базе Debian:

К тому же из-за различий имён бинарных файлов вам понадобится сделать следующее:

Когда все необходимые зависимости установлены, вы можете пойти дальше и скачать самый свежий архив с исходниками из следующих мест: с сайта Kernel.org https://www.kernel.org/pub/software/scm/git, или зеркала на сайте GitHub https://github.com/git/git/releases. Конечно, немного проще скачать последнюю версию с сайта GitHub, но на странице kernel.org релизы имеют подписи, если вы хотите проверить, что скачиваете.

Затем скомпилируйте и установите:

После этого вы можете получать обновления Git по средством самого 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, не могу сказать, что это умный поступок с вашей стороны. Кстати, что будете делать, когда произойдёт сбой?

Источник