НЕ МОЛЧИ!!!    Сделай что-нибудь, чтобы остановить войну России в Украине.
...бойтесь людей равнодушных - именно с их молчаливого согласия происходят все самые ужасные преступления на свете.   ("Репортаж с петлёй на шее")

Git для начинающих

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

Содержание

1. Как мы будет осваивать Git.
2. Устанавливаем Git
3. Создаем репозиторий с нуля(вариант 1)
Создаем удаленный репозиторий
Создаем локальный репозиторий
Подключаем удаленный репозиторий
4. Основные операции с Git
Индексация файлов
Фиксация изменений в локальном репозитории
Взаимодействие локального и удаленных репозиториев
5. Подключение к удаленному репозиторию (вариант 2)
6. Быстрая помощь по командам Git.

Как мы будет осваивать Git

git_beginner

Эта статья позволит вам через 20 — 30 минут начать пользоваться системой контроля Git.
Как мы это сделаем?
Во-первых, мы будем пользоваться командной строкой, это избавит вас от установки и изучения дополнительного ПО. Сразу хочу предупредить тех, кто не любит командную строку. До некоторых пор я тоже считал, что это дополнительный напряг серого вещества, но попробовав, понял, что ошибался. Встроенная, подробная и внятная, хорошо структурированная помощь плюс освоение в режиме «copy — paste» обеспечaт вам обещанный быстрый результат. Зуб даю. Кроме того, терминальные команды везде одинаковые — Windows, Linux и прочее, т.е. это будет работать везде без дополнительного ПО.
Да, хороших знаний по Git такая метода не даст, но практический результат будет. А знаний я вам и не обещал, было обещано быстро начать работать с Git. Конечно, система намного шире и функциональней, чем приведено здесь, но для начала вам вполне хватит. Кстати, практические навыки — один из самых действенных методов освоения и усвоения материала, кроме того, почувствовав всю прелесть Git, у вас самих появится намного больше энтузиазма и терпения в ее освоении.
Во-вторых, хочу предупредить, что системы контроля версий весьма полезный и эффективный инструмент, но и достаточно непростой, поэтому настоятельно советую тем, кто не знаком с основами, хотя бы немного познакомиться с предметом, например, в короткой статье Введение в Git.
Учиться будем с помощью онлайн сервиса http://bitbucket.org, предоставляющего пользователям возможность создания и онлайн работы с Git репозиторием.
И последнее. Чтобы не отвлекать внимание от главного, я не буду детально описывать используемые в статье команды, посмотреть их можно, например, в справочнике Команды Git или, например, здесь.

Устанавливаем Git

Для работы с Git вам потребуется установить клиентское программное обеспечение, предлагаю получить его по ссылке Загрузка Git, на этой странице выбираем пакет, который необходим для вашей операционной системы. Установка самая обычная, поэтому комментариев не будет.
Далее возможны два варианта:
• вариант 1 — создание репозитория с нуля;
• вариант 2 — подключение к существующему удаленному репозиторию.
Поскольку инструкция ориентирована на начинающих, то основным будет вариант 1, на втором я остановлюсь чуть позже.

Создаем репозиторий с нуля (вариант 1)

Создаем удаленный репозиторий
Удаленное хранилище создадим на сервисе Bitbucket, где-то ведь надо его использовать, а здесь до 5 человек могут бесплатно пользоваться в своих проектах всей мощью Git. Сначала надо создать свой аккаунт на сервисе. Для этого перейдите по ссылке, которую я только что привел. В строке меню кликните ссылку «Log in» и введите email, который планируете использовать. На указанный адрес будет выслано сообщение для проверки адреса вашей почты. Открываем присланное сообщение и жмем кнопку «Verify my email address». После этого залогинимся на странице авторизации и создаем свой Git репозиторий с помощью меню «Repositories — Create repository». Все, удаленное хранилище у вас уже есть!

Создаем локальный репозиторий
Теперь создадим репозиторий на своем компьютере, покажу это на примере ОС Windows. Для этого идем в папку с проектом, который собираемся отслеживать, если проекта нет, выберите папку с файлами, изменения в которых хотите отслеживать.
Хочу заметить, что после установки и настройки Git на вашем локальном компьютере, в контекстном меню Проводника Windows появится два новых пункта «Git GUI Here» и «Git Bash Here». Поскольку мы собираемся работать с командной строкой системы контроля, то выбираем второй из перечисленных, т.е. в выбранной папке открываем окно с командной строкой Git. Для создания локального репозитория надо набрать в этом окне команду

git init — создает локальный репозиторий в текущей папке.

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

Подключаем удаленный репозиторий
Подключаем удаленное хранилище к вашему клиентскому ПО командой

git remote add reposit_name reposit_url — подключает удаленный репозиторий,
где
reposit_name — строка с кратким именем подключаемого репозитория
reposit_url — адрес подключаемого репозитория, например, https://some_name@bitbucket.org/some_name/wds1.git

Строку с адресом «reposit_url» вы можете скопировать со страницы своего кабинета на bitbucket.org, кликнув по имени репозитория.
При подключении для доступа к хранилищу надо будет указать пароль, полученный ранее.

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

Основные операции с Git

Индексация файлов
Чтобы git начал отслеживать изменения, надо указать, какие файлы ему контролировать.
Процесс включения файлов в список отслеживаемых в терминах Git называется индексацией файлов(добавление файлов в индекс).
Для этого запустим такую команду

git add . — команда на отслеживание всех изменений в текущей папке

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

Если надо контролировать только часть файлов, то запускаем команду

git add файл1 [файл2 … файлN ] — команда на отслеживание файлов, приведенных в списке команды.

Чтобы исключить файлы из списка отслеживаемых, нужна команда

git rm файл1 [файл2] — исключает перечисленные файлы из списка отслеживаемых.

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

Фиксация изменений в локальном репозитории
Чтобы зафиксировать текущее состояние измененных файлов в хранилище, надо отправить индексируемые файлы в локальный репозиторий командой

git commit — команда фиксации состояния

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

git commit -a — команда фиксации всех измененных файлов

где
-a – параметр, позволяющий зафиксировать состояние всех индексируемых файлов.

Другими словами, команда «git commit –a» позволяет фиксировать в локальном хранилище все отслеживаемые системой файлы.

Еще весьма полезная модификация команды

git commit –a –m «Пояснительный комментарий к фиксации» — команда фиксации изменений с комментарием

где
-a – параметр, позволяющий зафиксировать все индексируемые файлы;
-m – добавляет ваш комментарий к фиксируемому состоянию файлов.

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

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

git push origin [master] — отправляет ветку master локального репозитория в удаленный

где
origin — краткое имя удаленного репозитория, по которому git найдет его;
master — имя ветки, отправляемой в удаленное хранилище.

Чтобы отправить все ветки локального в удаленный репозиторий, надо выполнить

git push origin — отправляет содержимое локального репозитория в удаленный

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

git fetch origin – загружает данные из удаленного хранилища в свой локальный репозиторий.

Эта команда только загружает содержимое удаленного репозитория в локальный, но не изменяет файлы вашей рабочей области проекта. Дальнейшие действия над загруженными данными, просмотр, слияние(merge) с вашими ветками и прочие действия, зависят от ваших действий.
Часто удобнее использовать команду

git pull — загружает данные из удаленного репозитория в локальный и сливает их с вашими данными проекта

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

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

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

git clone [адрес клонируемого репозитория] — создает полную копию удаленного репозитория на локальном компьютере

Где взять адрес клонируемого репозитория, я указал, когда рассказывал о подключении удаленного репозитория в варианте 1. После этой команды git создаст в текущей папке локальное хранилище с именем origin, которое будет копией удаленного, а также создаст на компьютере папку с рабочей областью проекта. Таким образом, вы этой командой пройдете сразу несколько шагов, вам остается только включаться в работу над проектом.

Быстрая помощь по командам Git

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

git <команда> -h — отображает в окне терминала краткую подсказку по выбранной команде
git <команда> —help — отображает в браузере развернутую подсказку по нужной команде

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