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

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #1
Нет человека, я так думаю, который не скачивал бы что-либо с таких ресурсов, как GitHub или BitBucket, которые используют за основу одну и ту же систему контроля версий проектов: git. В этом небольшом справочном материале я рассмотрю установку, базовую настройку и использование клиента git на ОС Windows и Linux для создания своих репозиториев, и поддержание в актуальном состоянии.

Глава 1. Установка.
Установка клиента различается для двух ОС (Windows и Linux), однако все последующие шаги - нет.
Для установки git на Windows нам потребуется перейти на официальный сайт, и скачать установщик, после чего запустить его. После скачивания, к слову, не спешите закрывать браузер. Он нам ещё пригодится.
На этапе выбора интеграции клиента, есть три варианта выбора:
  1. Use Git from Git Bash only. Доступ к git-клиенту только через консоль Git bash, которая устанавливается вместе с клиентом.
  2. Use Git from the Windows Command Prompt. Добавляет git + часть вспомогательных инструментов в директиву %PATH%.
  3. Use Git and optional Unix tools from the Windows Command Prompt. Тоже самое, что и второе, только добавляет вдобавок часть утилит из Unix.
    Возможны конфликты с стандартными утилитами Windows. Например, с find или sort.
Я лично всегда выбирал первый пункт, т.к. на мой взгляд Git Bash удобнее, чем командная строка Windows. И Вам это же советую.
Далее установщик спросит, какую библиотеку использовать для SSL\TLS соединений вроде HTTPS. Оставьте стандартный пункт (OpenSSL library).
Дальше установщик спросит про конвертацию окончания строк при проверке файлов и создании коммитов. Я всегда использую последний вариант (Checkout as-is, commit as-is), что заставляет клиент не трогать окончания строк в файлах и оставлять всё "как есть".
На следующем шаге оставьте стандартный выбор (MinTTY), и дальше просто пропускайте всё до окончания установки.
И вот, теперь мы готовы настраивать клиент!
QU78oVp.png
Для Linux всё просто.
Если Вы используете Debian\Ubuntu:
C-подобный:
$ sudo apt-get update
$ sudo apt-get install git
CentOs\Fedora:

Arch Linux:
C-подобный:
$ sudo pacman -Syy
$ sudo pacman -S git

Для остальных дистрибутивов, можно найти информацию в Интернете.

Глава 2. Настройка.
Настройка ничем не отличается для двух ОСей, потому дальше я продолжу без разделения на Windows\Linux вариант, однако проделывать все операции буду в дальнейшем на Windows.

И вот, теперь у нас есть установленный git-клиент. Можно заняться настройкой.
Для начала, необходимо указать своё имя и E-Mail. В дальнейшем эти параметры всегда можно изменить.
Обращаю внимание: команды необходимо набирать без значка доллара.
C-подобный:
$ git config --global user.name UserName
$ git config --global user.email mail@mail.ru
PfO7gqV.png

Этим самым мы глобально установили параметры user.name и user.email, и теперь значения этих параметров будут использоваться при отправке любого коммита.
Теперь настроим клиент так, чтобы он мог скачивать репозитории с GitHub, и коммитить туда же.
Открываем браузер, заходим на GitHub, авторизуемся под своей учётной записью, и идём в настройки аккаунта. И переходим в раздел SSH and GPG keys. Тут у нас будет список SSH и GPG ключей. У Вас он будет пустой, т.к. мы впервые настраиваем клиент.
XMgIGIs.png
Тепень нам потребуется сгенерировать SSH-ключ, и добавить его на эту страницу с помощью кнопки "New SSH key". Для генерации ключа, возвращаемся в Git Bash (Вы же его не закрыли?) и пишем в консоль:
C-подобный:
$ ssh-keygen -t rsa
На запрос пути, жмём Enter. Далее попросит придумать пароль (это необязательно, но вообще рекомендуется, чтобы никто другой не смог делать коммиты с Вашего компьютера). Придумываем, набираем два раза (обращаю внимание: набираемые символы пароля не отображаются). После чего ssh-keygen отрапортует об успехе, и выведет пути к файлам и "картинку", на основе которой был сгенерирован ключ.
Теперь нам нужен публичный ключ для вставки на форму в Github. Пишем в консоль:
C-подобный:
$ cat ~/.ssh/id_rsa.pub
cat - утилита из Unix, выводит всё содержимое указанного файла. В нашем случае, содержимое файла ~/.ssh/id_rsa.pub или C:\Users\Kruzya\.ssh\id_rsa.pub. Копируем весь вывод, вставляем в форму на Гитхабе, придумываем имя, сохраняем ключ.
hzQqGT3.png
Всё, готово. Теперь мы можем как выкачивать репозитории с Гитхаба, так и заливать их обратно после правок.

Глава 3. Практика.
Немного попрактикуемся, чтобы освоить это. Для этого создадим новый пустой репозиторий, и склонируем его на компьютер, сделаем пару коммитов, и загрузим обратно.
Переходим на страницу создания нового репозитория, заполняем имя и прочие сведения, и нажимаем "Create Repository".
sjTgTQF.png
Я инициализирую пустой репозиторий: без README, без .gitignore и без лицензии.
После чего GitHub радостно предложит мне склонировать репозиторий и сделать свои первые коммиты.
QSvFDVc.png
Нажимаем на SSH на первой строчке, копируем строчку правее. Пишем в консоли:
C-подобный:
$ cd /c/
$ mkdir Git
$ cd Git
$ git clone *строчка с GitHub'а*
Второй шаг (mkdir) необходимо повторить только один раз.
В первый раз, клиент попросит удостовериться в верности хоста. Просто напишите yes.
Если Вы ставили пароль на свой SSH ключ, клиент может попросить его.
После чего будет склонирован репозиторий. Мой git-клиент сразу любезно сообщил мне, что я склонировал абсолютно пустой репозиторий. Но это временно, верно?)
Переходим в папку репозитория посредством команды cd *имя репозитория*, пока что ничего не пишем. Перейдём в проводник Windows. Откройте C:\Git\*имя репозитория*\, создайте там файл README.md, ничего в него не пишите.
А теперь вернёмся обратно в Git Bash. Консоль всё ещё ждёт команд. Наберём git status. В ответ Git скажет, что появился новый файл, и он пока что не отслеживается. Добавим его, и сделаем свой первый пустой коммит! Для добавления файлов в коммит используется команда git add *имя файла*.
Добавим наш первый README.md:
C-подобный:
$ git add README.md
А теперь, создадим коммит. Для этого используется команда git commit. У неё есть ключи, но об этом позже. Сейчас нас интересует только один ключ: -m. Задаёт текст коммита.
C-подобный:
$ git commit -m "Added README.md"
Всё, коммит готов, однако на удалённом репозитории, он не появился. Потому что git автоматически ничего не загружает никуда. Для загрузки файлов в удалённый репозиторий используется команда push, а из него - pull. При выполнении операций с удалённым репозиторием, требуется пароль от Вашего SSH-ключа, если Вы его создавали.
Создадим ещё один коммит, и только после этого сделаем отправку данных в удалённый репозиторий. Откройте README.md, и напишите в него любой текст. Я написал в свой файл:
C-подобный:
# Hello World

No.1 repository in the World
Теперь снова выполним git status. Теперь нам git сообщит, что файл был изменён.
Добавим снова файл в коммит, и создадим очередной коммит.
C-подобный:
$ git add README.md
$ git commit -m "Added text in Readme"
Хочу подметить перед отправкой коммитов в удалённый репозиторий: в Git можно не добавлять файлы при создании коммита, а просто указать ключ -a в команде commit, что заставит его добавить все изменения в него. Например,
C-подобный:
$ git commit -a -m "My commit"
А теперь отправим данные в удалённый репозиторий с локального хранилища. Для этого, как я уже ранее сказал, существует push. Запускаем на выполнение:
C-подобный:
$ git push
Если Вы устанавливали пароль на SSH-ключ, то Git попросит его ввести. После чего все Ваши коммиты будут доступны в удалённом репозитории (т.е. на Гитхабе).
После успешной отправки данных, открываем Гитхаб, и радуемся: всё, что мы сделали, доступно уже там.
SPS4cAS.png
Теперь удалим локально репозиторий, и снова склонируем его. А после проверим, все ли файлы доступны.
C-подобный:
$ cd ..
$ rm -Rf ИмяРепозитория
$ git clone git@github.com:логин/ИмяРепозитория.git
$ cd ИмяРепозитория
I3PafN7.png

Как видим, все файлы находятся на Гитхабе, и мы их можем спокойно выкачать, или изменить.

На этом я, думаю, можно закончить разбор работы Git-клиента. В кач-ве практики могу предложить Вам создать репозиторий для Ваших плагинов, и загрузить туда все свои написанные плагины, используя git add, git commit и git push.

P.S.: Впервые пишу подобную статью. Буду рад критике, пожеланиям. Возможно, что-то надо добавить.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
я для гитхаба юзал клиент с гуем
Правда он вроде только для мака и винды (от семёрки и новее)
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #3
@Grey83, для Линукса и Гитхаба можно использовать другой клиент с гуем. GitKraken.
Но у всех этих GUI-клиентов есть одна фича, неудобная лично мне: отсутствие возможности подписывать коммиты. Подписанные коммиты помечаются табличкой Verified в списке коммитов. Это довольно круто, на мой взгляд.
5QJXmFr.png
Возможно, кстати, в ближайшие пару дней дополню статью информацией о том, как настроить клиент для подписывания коммитов, и как их, собственно, подписывать.
 

БлагоЯр

Участник
Сообщения
898
Реакции
86
А как настроить, если я хочу кемперить чужой репозиторий?

ПС. К примеру у кого то исходники плагина и чтобы не лазить не проверять, запустил глянул.
 
Сверху Снизу