Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
tristamoff
7 лет назад

Академия: Конспект второй недели курса Learn GIT

Продолжаем изучение Git. Сегодня у нас на очереди ветвление.

Как я уже говорил в прошлом конспекте - git позволяет создать несколько вариантов файловой системы.
Каждая такая ветвь живёт отдельной жизнью и не пересекается с другими, пока её об этом не попросят.
В терминологии гита ветвь называется бранч.
Список бранчей можно посмотреть командой:
git branch

Сейчас в проекте только один бранч - master. Это главный бранч.
Он него происходит ветвление. То есть создаётся копия файловой системы(ветка) и в ней вы делаете что хотите.
Переключаясь между бранчами вы меняете файловую систему согласно закоммиченым вами изменениям.

Создание новых бранчей

Создать бранч очень просто. Достаточно вызвать команду branch и написать после неё имя бранча.
Например создать бранч с именем fencing:
git branch fencing

Переключиться на бранч можно изученной ранее командой checkout, так же указав после неё имя бранча.
Например
git checkout fencing
Потом сразу-же смотрим список бранчей:

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

Слияние веток

Предположим, что находясь в бранче fencing мы отредактировали какие-то файлы, добавили новые и т.п. И теперь нам необходимо слить эти изменения в master.
В терминологии чаще всего это процедуру называют "померджить". То есть сделать merge.
Находясь в одном бранче нужно вызывать команду merge, указав после неё название бранча, изменения которого вы хотите забрать.
Возвращаемся в master:
git checkout master
Забираем изменения с fencing:
git merge fencing

После мерджа видно какие конкретно файлы прилетели в текущий бранч.

Конфликты

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

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

Удаление бранчей

Первая буквы в слове delete - d. Поэтому именно такую опцию мы и напишем после ключевого слова branch.
Удаление бранча fencing:
git branch -d fencing

С удалением будьте аккуратнее, не потрите лишнего. Ещё раз напомню - бранчи друг с другом не связаны, никто ни от кого не наследуется. Удаление одного бранча никак не повлияет на другие.

Клонирование репозиториев

Чтобы сделать копию проекта на основании репозитория - его нужно склонировать. Делается это командой clone. После неё нужно указать откуда копируется проект и имя проекта. Имя проекта указывать необязательно.
За примером идём на github.
Например проект клиента golos.io хранится тут https://github.com/GolosChain/tolstoy

Чтобы его склонировать достаточно написать:
git clone https://github.com/GolosChain/tolstoy.git
В своём проекты вы всегда можете выполнить команду:
git remote -v
Которая покажет, откуда был склонирован проект.

Конечно-же автор проекта(который вы склонировали) может вносить изменения в свой проект. Вы о них не узнаете.
Чтобы быть в курсе изменений в "родительском" проекте следует выполнить команду:
git fetch

Отправка изменений в удалённый репозиторий

Если вы хотите отправить все свои коммиты в общий репозиторий - то вам нужно их "запушить"
Делается это командой push, после которой нужно указать ключевое слово origin и название бранча.
Например
git push origin my-branch

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

Теперь, когда вы знаете о большинстве аспектов работы с Git мы сведём их в одну диаграмму.

Что для меня было наиболее интересным и впечатляющим в данной неделе курса?

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

0
228.344 GOLOS
На Golos с January 2017
Комментарии (1)
Сортировать по:
Сначала старые