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

Тема в разделе "Полезные статьи и материалы", создана пользователем Kruzya, 14 апр 2017.

  1. Kruzya

    Kruzya Костылизируя некостылизируемое Ньюсмейкер

    Сообщения:
    2.060
    Симпатии:
    1.511
    Нет человека, я так думаю, который не скачивал бы что-либо с таких ресурсов, как 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), и дальше просто пропускайте всё до окончания установки.
    И вот, теперь мы готовы настраивать клиент!
    [​IMG]
    Для Linux всё просто.
    Если Вы используете Debian\Ubuntu:
    Код:
    $ sudo apt-get update
    $ sudo apt-get install git
    CentOs\Fedora:

    Arch Linux:
    Код:
    $ sudo pacman -Syy
    $ sudo pacman -S git
    Для остальных дистрибутивов, можно найти информацию в Интернете.

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

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

    Глава 3. Практика.
    Немного попрактикуемся, чтобы освоить это. Для этого создадим новый пустой репозиторий, и склонируем его на компьютер, сделаем пару коммитов, и загрузим обратно.
    Переходим на страницу создания нового репозитория, заполняем имя и прочие сведения, и нажимаем "Create Repository".
    [​IMG]
    Я инициализирую пустой репозиторий: без README, без .gitignore и без лицензии.
    После чего GitHub радостно предложит мне склонировать репозиторий и сделать свои первые коммиты.
    [​IMG]
    Нажимаем на SSH на первой строчке, копируем строчку правее. Пишем в консоли:
    Код:
    $ 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:
    Код:
    $ git add README.md
    А теперь, создадим коммит. Для этого используется команда git commit. У неё есть ключи, но об этом позже. Сейчас нас интересует только один ключ: -m. Задаёт текст коммита.
    Код:
    $ git commit -m "Added README.md"
    Всё, коммит готов, однако на удалённом репозитории, он не появился. Потому что git автоматически ничего не загружает никуда. Для загрузки файлов в удалённый репозиторий используется команда push, а из него - pull. При выполнении операций с удалённым репозиторием, требуется пароль от Вашего SSH-ключа, если Вы его создавали.
    Создадим ещё один коммит, и только после этого сделаем отправку данных в удалённый репозиторий. Откройте README.md, и напишите в него любой текст. Я написал в свой файл:
    Код:
    # Hello World
    
    No.1 repository in the World
    Теперь снова выполним git status. Теперь нам git сообщит, что файл был изменён.
    Добавим снова файл в коммит, и создадим очередной коммит.
    Код:
    $ git add README.md
    $ git commit -m "Added text in Readme"
    Хочу подметить перед отправкой коммитов в удалённый репозиторий: в Git можно не добавлять файлы при создании коммита, а просто указать ключ -a в команде commit, что заставит его добавить все изменения в него. Например,
    Код:
    $ git commit -a -m "My commit"
    А теперь отправим данные в удалённый репозиторий с локального хранилища. Для этого, как я уже ранее сказал, существует push. Запускаем на выполнение:
    Код:
    $ git push
    Если Вы устанавливали пароль на SSH-ключ, то Git попросит его ввести. После чего все Ваши коммиты будут доступны в удалённом репозитории (т.е. на Гитхабе).
    После успешной отправки данных, открываем Гитхаб, и радуемся: всё, что мы сделали, доступно уже там.
    [​IMG]
    Теперь удалим локально репозиторий, и снова склонируем его. А после проверим, все ли файлы доступны.
    Код:
    $ cd ..
    $ rm -Rf ИмяРепозитория
    $ git clone [email protected]:логин/ИмяРепозитория.git
    $ cd ИмяРепозитория
    [​IMG]
    Как видим, все файлы находятся на Гитхабе, и мы их можем спокойно выкачать, или изменить.

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

    P.S.: Впервые пишу подобную статью. Буду рад критике, пожеланиям. Возможно, что-то надо добавить.
     
    Rabb1t, Samoletik1337, -=Vampir=- и 7 другим нравится это.
  2. Grey83

    Grey83

    Сообщения:
    611
    Симпатии:
    195
    я для гитхаба юзал клиент с гуем
    Правда он вроде только для мака и винды (от семёрки и новее)
     
  3. Kruzya

    Kruzya Костылизируя некостылизируемое Ньюсмейкер

    Сообщения:
    2.060
    Симпатии:
    1.511
    @Grey83, для Линукса и Гитхаба можно использовать другой клиент с гуем. GitKraken.
    Но у всех этих GUI-клиентов есть одна фича, неудобная лично мне: отсутствие возможности подписывать коммиты. Подписанные коммиты помечаются табличкой Verified в списке коммитов. Это довольно круто, на мой взгляд.
    [​IMG]
    Возможно, кстати, в ближайшие пару дней дополню статью информацией о том, как настроить клиент для подписывания коммитов, и как их, собственно, подписывать.