гит самая популярная система контроля версии в индустрии наверное второй по важности навык для любого разработчика после какого-либо языка программирования git используется в любой команде в каждом проекте В любой компании в которую вы могли бы попасть в современном мире Именно поэтому для начинающего разработчика просто критически важно уметь пользоваться git хотя бы на базовом уровне но у него есть одна проблема Если вы никогда раньше его не видели то начать его использовать вам скорее всего будет довольно сложно основной его интерфейс консольный Прости Господи и команд там бесчисленное множество Кроме того когда вы их используете то не всегда потом
можете глазами явно увидеть Что произошло после этого И порой наваливается жёсткого совершенно кринжа в собственных проектах поэтому сегодня я очень простым языком расскажу вам обо всех основных понятиях этого невероятно мощного инструмента Здравствуйте дамы и господа меня Влад зовут Добро пожаловать на мой канал где мы говорим об IT карьере и жизни вообще в этом ролике я расскажу вам супер простым языком Зачем вообще вам нужен гид а также научу вас использовать его все основные команды Так что вы больше никогда не забудете Зачем нужна одна А зачем нужна другая зная всё это дорогие друзья вы совершенно точно сможете
справиться затем с Любой задачей связанной с гид из реального мира за исключением может быть только той где вы запушил конфиг в прот и вас потом уволили но историю этих событий гит тоже сможет отследить Конечно вы меня спросите дорогие друзья Влад а зачем мне вообще разбираться с этим душным гитом какие вообще Профит от этого я Вам отвечу помните от Вас недавно ушла бывшая так вот она ушла потому что вы не пользовались нормально гитом потому что она-то знала что когда у вас есть гит Вы можете отслеживать изменения вообще любых файлов на вашем компьютере а когда вы работаете
в кома над одним и тем же проектом то есть меняйте одни и те же файлы то для вас было бы очень важно всегда знать кто и когда там что поменял чтобы очень быстро найти виноватого по сути Что такое написание кода написание кода - это когда вы берёте какой-то файл текстовый и пишете в нём какой-то текст вот и всё не важно даже что этот код делает важно то что это просто текст по факту по сути Что такое вообще умение программировать это же умение нажимать кнопочки в правильном порядке так Ведь так вот Представьте что вы разработали революционное
совершенно приложение например для вызова ваших пацанов на стрелку за стадионом все в восторге от него короче но ещё Вы теперь придумали для него новую какую-то гениальную фичу Ну например добавили промокоды на покупку Балтики 9 для ваших Стрелок и это крайне важный функционал для всех ваших пользователей фундаментальный который потребовал изменения огромного количества существую уже файлов в вашей системе вы взяли все эти файлы собрали их в какой-то один исполняемый файл например там то X то jar и положили его на какой-то сервер с которым взаимодействуют ваши непосредственные пользователи вашего Великолепного приложения теперь после этого действия они наконец-то имеют
доступ к этой новой фиче которую вы добавили туда но вдруг выясняется что после того как вы добавили все изменения на продакшн в вашем коде оказывается баг который очень быстро находят пользователи и он очень сильно им мешает и новая фича из-за него не работает и например старый функционал тоже разваливается пользователи в ярости очевидно И вам нужно срочно как-то вернуть Всё назад как было и чтобы пользователи работали со стабильной версией всё ещё А вы могли ещё подольше покопаться в вашем новом функционале и найти эту проблему чтобы её решить но как это сделать если у вас есть просто
физические файлы с кодом то вам придётся их просто открыть и стараться выпилить Этот новый код который потенциально поломан и ещё При том не просто выпилить А подсох куда-то чтобы Вы могли к нему вернуться потом и попытаться исправить этот баг А что если там ну тысячи строк просто и куча файлов изменённых Это же очень сложно Это займёт у вас кучу времени ещё потом собирать эти куски обратно вы просто задолба ете се а пользователи Они ведь не ждут им безразлично Они просто начинают кричать у меня ничего не работает Верните всё как было не видеть вас а вы
вместо того чтобы им очень быстро помочь занимаетесь тем что перекладывается текст из одного файла в другой это одна из тех проблем которую решает git изначально при разработке вашего приложения Вы можете все его файлы взять и поместить под контроль Гита и с этого момента git будет следить за всеми изменениями внутри этих файлов на каких строчках они произошли что поменялось на что когда было кто это сделал и много другое в результате если у вас появляется вот такая вот проблема но за вашими файлами следит гид то вы можете просто прийти и сказать Извините Мистер Серги Можно пожалуйста вот
взять все мои файлы и вернуть всё как оно было до того как я там всё сам разломал и когда Моё приложение процветало а пользователи были счастливы и он просто возьмёт и вот так вот вернёт Но более того он е и сохранит внутри себя ту нестабильную версию он её тоже не просто удалит не потеряет она тоже там продолжит храниться и вы сможете отдельно на неё перейти То есть вы просто просите git всё откатить он вам откатывается моментально эти файлы вы их заново все собираете в новый J файл например и закидывает на прод теперь получается что у
пользователей снова вернулась та стабильная версия с которой они работали до этого у них всё нормально Они продолжают себя хорошо чувствовать а вы тем временем с вашей командой просите гит вам скинуть ту поломанную версию и жёстко потеете в неё чтобы найти тот самый баг который вам всё уничтожил Но это даже не все возможности Гита это всего одна из них но которая уже должна показать вам насколько это важная и крутая штука при разработке но прямо сейчас мы поговорим обо всех основных остальных возможностях этого замечательного просто инструмента вообще ID - это просто специальная программа кото вы ставите себе
на комп скачать её можно совершенно бесплатно без регистрации SMS с официального сайта никаких вирусов и баннеров на вашем компьютере не появится после этого не переживайте далее просто устанавливаем её как любую другую прогу основной интерфейс для работы с git консольный Так что открываем любой совершенно терминал на любой операционной системе которая у вас есть и начинаем настраивать git для работы нам нужно задать имя пользователя под которым мы будем вносить Все изменения в файлы за которыми следит git чтобы Таким образом он мог запомнить кто именно эти файлы менял на нашем компе ну это были мы такие настройки задаются
с помощью команды gitconfig а печатаем это в консоли и затем указываем параметр Global чтобы сказать что эти настройки будут применяться вообще к любому файлу А который мы отдадим под контроль Гита а затем указываем название настройки которую хотим обновить чтобы обновить имя пользователя нужно написать User name а далее в двойных кавычках указываем конкретное значение которое мы хотим туда записать например в моём случае это будет Влад Мишустин и поэтому я пишу там именно это точно по той же схеме указываем и mail пользователю но теперь вместо username пишем User email А в кавычках указываем желаемый email очевидно теперь
git запомнил эти настройки и применит их К любым файлам которые вы будете менять Именно под этим именем вы будете известны в истории изменений того или иного файла Теперь ещё вам стоит создать аккаунт на портале github.com не путайте git и github git - это специальная программа которая у вас на на компе следит за изменениями во всех файлах тогда как github - это специальное веб-приложение которое позволяет вам загрузить с вашего компа в облако Все изменения ваших файлов и хранить их там чтобы другие люди тоже могли получить к ним доступ зачем ещё вам хранить эти файлы в Облаке
затем Что представь ситуацию вы написали огромное количество кода на своём компе в файлах которые у вас на компе и хранятся и и тут вы ловите всё-таки вон тот самый баннер злополучный он у вас высвечивается на весь экран со всеми необходимыми вещами там и значится вам нужно тереть ваш жёсткий диск чтобы его убрать это значит что вы потёмки работы который вы делали так вот GE позволяет весь ваш код взять и загрузить его на github где он будет уже храниться не на вашем компе где Всё может пойти прахом А в Облаке на куче разных компьютеров с кучей
копий и так далее То есть там точно с ним ничего не случится и вы всегда сможете получить к нему доступ с любого вообще компьютера Но более того это значит что ваша команда например тоже может получить к нему доступ то есть таким образом вы делитесь с людьми своими файлами своими наработками своими проектами ключевым является репозиторий по сути репозиторий - это просто папка с файлами за которой у вас на компьютере следит гид и в этой связи репозиториев на вашем компе может быть Сколь угодно много то есть одна папка например с вашим проектом за ней следит гит это
один репозиторий другая папка с вашим дипломом которого нет это второй репозиторий и так далее все внутренние папки и файлы репозитория также автоматически находятся под надзором под контролем git таким образом любое изменение любого файла в вашем репозитории автоматически запоминается и отслеживается гитом теперь репозиторий может быть локальным и удалённым Локальный репозиторий - это просто та самая папка с файлами которая хранится на вашем именно на вашем компе за которой следит гид тогда как удалённый репозиторий это вот этот самый локальный который у вас был Вы взяли и с помощью Гита загрузили его например на github и теперь он хранится
там вот это и есть удалённый репозиторий То есть он создаётся на основе локального это по сути копия вашего локального репозитория но которая теперь хранится не на вашем компьютере а в Облаке где-то то есть удалённо и это значит что ваш локальный репозиторий и созданный на его основе удалённый репозиторий связаны между собой и эту связь обеспечивает для вас именно гид теперь как вашу обычную директорию превратить в гит репозиторий для этого в терминале нужно перейти сначала в ту папку которую вы хотите сделать репозиторием это позволяет сделать команда CD после которой нужно указать просто путь к этой самой папке
в которой вы хотите оказаться выполнив вы сразу переходите в указанную директорию находясь здесь Вы теперь можете выполнить команду G need которая сообщает гиту о том что эту директорию нужно превратить в репозиторий то есть по факту следить за всеми файлами и папками что здесь находится с этого момента git знает Всё теперь как создать удалённый репозиторий сначала идём в ваш профиль на гитхабе и там создаём пустой репозиторий для этого достаточно клану кнопочку New ввести название выбрать желаемые параметры доступа и сохранить в общем-то теперь у вас на гитхабе есть пустой удалённый репозиторий но он ещё ничего вообще не
знает о вашем локальном значит эту связь нужно проложить как-то для этого в вашем локальном репозитории нужно выполнить команду git Remote Add Origin и указать URL вашего репозитория URL репозитория мы возьмём как раз с гитхаба где только что создали всё необходимое в общем-то это наша команда которую мы только что написали говорит о том что нужно взять локальный репозиторий в котором вы эту команду выполняете и добавить к нему удалённый который доступен на github по вот такому URL после исполнения этой команды ваш локальный и Уда репозиторий становятся связаны но пока ещ ничего никуда не копируется очевидно Теперь дело
изменения в файлах в вашем локальном репозитория Когда вы готовы Вы можете сказать гиту чтобы он опубликовал все их в удалённую копию но Обратите внимание гид сам ничего делать не будет он опубликует только когда вы явно ему скажете мы позже поговорим о том как это сделать поэтому вайте Если вдруг вы навалили какого-то жёсткого кринжа локально что все это вдруг сейчас же увидят Нет пока вы это сами не опубликуйте общественное мнение о вас останется хорошим Но это очевидно временно а теперь как другим людям участникам вашей команды Например скачать тот код что вы в будущем загрузите ваш новый
удалённый репозиторий по сути они могут взять ваш локальный репозиторий и на его основе создать на своих компьютерах локальный репозиторий то есть Обратите внимание по сути это просто новая копия вашего удалённого репозитория на другом компьютере Но это именно другая вторая копия То есть у вас на компе ваша копия локальной репозиторий у другого участника вашей команды другая копия то есть другой локальный репозиторий Но оба они связаны с одним и тем же удалённым репозиторием То есть он для них об для того чтобы создать на своём компе локальный репозиторий полностью копирующий какой-то удалённый вам сначала в консоли нужно перейти
в папку Куда вы хотите скачать в общем-то копию удалённого репозитория можно для этого использовать ту же команду CD например а далее запускаем команду git Clone и после неё указываем URL удалённого репозитория URL удалённого репозитория берём именно с github конечно То есть это как раз ur того репозитория который мы хотим скачать себе на компьютер запускаем немножко ждём пока всё скачается и бац у вас на компе появилась новая папка со всеми файлами что лежат в том удалённом репозитории эта папка сразу является вашим локальным репозиторием то есть git уже следит за всеми изменениями здесь и этот локальный репозиторий
уже автоматически связан с удалённым вам явно больше ничего делать не нужно для этого но опять важно понимать что когда вы здесь в этом новом локальном репозитории что-то меняете то эти изменения ни в коем случае гитом не будут автоматически отражены в удалённом только когда Вы снова явно скажете что пожалуйста git Загрузи их на github тогда он это сделает а до тех пор вы просто меняете вашу локальную копию видите эти изменения только вы владелец этой локальной копии теперь поговорим не посредственно О внесении изменений в файлы в вашем локальном репозитории у меня здесь открыт просто текстовый файл rmi
который находится в локальном репозитории связанном с удалённым на github прямо сейчас этот файл пуст и предположим Я хочу внести в него какие-то изменения Для этого мне в общем-то достаточно просто работать с этим файлом на данном этапе я никак не привязан именно к git поэтому я просто добавлю сюда пару строчек для примера Как вы помните дорогие друзья git следит за всеми изменениями файлов в репозитории поэтому давайте убедимся что это действительно так git знает о том что мы изменили этот файл для того чтобы понять в каком состоянии git Сейчас видит наши файлы внутри репозитория можно выполнить команду
git status эта команда выведет нам в консоль информацию обо всех незаконченных файлах в гит репозитории то есть о тех Чью версию мы изменили но ещё не сохранили эти изменения внутри Гита как вы можете видеть дорогие друзья git показывает нам что прямо сейчас он видит один изменённый файл но который имеет состояние uncommitted Это значит что git знает что этот файл изменён Но если вы прямо сейчас например всё из него Удалите то не сможете вернуться к точке где Весь этот текст всё ещё был на месте то есть мы ещё пока не сохранили вот эту версию этого файла
внутри Гита чтобы потом можно было к ней вернуться при необходимости сохранение же конкретной версии файла внутри Гита называется коммитом то есть если я хочу чтобы в будущем у меня была возможность всегда быстро прыгнуть именно на эту версию файла то я должен такое его состояние закоммитить git и сделать Это довольно просто поскольку в процессе внесения изменений в репозитории Вы можете поменять множество файлов то Прежде чем сделать comit Вы должны сначала сказать гиту какие именно из этих изменений вы хотите сохранить в виде отдельной версии то есть комита внутри Гита чтобы из всех изменённых файлов выбрать нужные и
подготовить их к будущему коммиту Используйте команду git AD после этой команды нужно указать имена файлов или папок которые вы хотите подготовить к сохранению чтобы сразу подготовить все файлы можно просто написать точку которая указывает на директорию в которой вы прямо сейчас и находитесь то есть выбирает все файлы из текущей директории теперь после того как мы выполнили Т если мы снова выполним команду git status то Увидим что теперь git знает что изменения в нашем файле уже готовы к сохранению а не просто пылятся в безвестности то место где сейчас git хранит информацию о том какие именно файлы готовы
к коммиту называется Икс Гита или staging Area только те файлы что находятся в индексе попадут в следующий комит Когда вы добавили изменения в индекс и теперь готовы сохранить их в истории Гита то вам необходимо выполнить команду git commit ещё у неё есть параметры после которого в кавычках можно указать сообщение с описанием той версии файлов которую вы сохраняете это удобно чтобы потом понимать что именно в этой версии содержится Когда вы выполните Т comit то внутри Гита создастся новый как бы чекпоинт который так и называется ко по сути теперь это значит что запомнил то состояние которые вы
закоммитить именно к этому состоянию если вам это будет нужно однажды коммитов можно делать много один за другим каждый раз таким образом сохраняя различные версии ваших файлов гид хранит всю историю коммитов поэтому Затем вы сможете вернуться как бы обратно во времени к любому из этих котов совершенно Если знаете его номер Давайте ещ немного изменим наш файл RM чтобы повторить упражнение и создать ещё один comit в GT с ещё одной версией этого файла добавим немного текста теперь выполняем команду git чтобы поместить изменённые файлы в индекс и сказать гиту что именно их Мы хотим в будущем закоммитить и
теперь после того как они были добавлены в индексе мы можем сделать комит командой git comit и здесь он комит только те файлы что нахот в индексе очевидно и Раз уж теперь у нас есть несколько коммитов то было бы здорово посмотреть как они выглядят сделать это можно с помощью команды itlog эта команда Вы видит вам на экран информацию обо всех комита которые вы сделали до сих пор в хронологическом порядке Как видите дорогие друзья здесь есть номер конкретного комита также то самое сообщение что мы указывали что позволяет нам гораздо лучше понять какая версия наших файлов находится в
этом коммите и именно вот этот номер или ещё говорят хш комита позволяет нам как бы вернуться во времени к этой версии которую мы сохраняли в этой точке Давайте посмотрим прямо сейчас мы смотрим на самую последнюю версию нашего файла которую мы только что обновляли но что если я быстро хочу вернуться к предыдущий для этого я могу просто выполнить команду git checkout и указать хэш комита к которому я хочу вернуться шар как вы можете видеть дорогие друзья Мы вернулись Ровно к той версии нашего файла которую мы сохранили в первый раз вы мне скажете что это не слишком
Влад впечатляюще и мы могли бы просто Ctrl Z нажать но Представьте что у вас таких файлов 50 а также вы хотите вернуться к какой-то версии которая существовала пару недель назад тогда гид просто незаменим уже все эти коммиты находятся сейчас в вашем локальном репозитории Это значит что если вы вместе с командой работаете над каким-то общим проектом то другие участники всё ещё не видят те изменения что вы внесли в эти файлы не те версии что Вы сохранили поскольку ваш локальный репозиторий связан с удалённым на github Вы можете с помощью git взять все ваши коммиты которые вы сделали
и из локального репозитория на удалённый Чтобы другие участники вашей команды могли скачать эти коммиты себе из этого удалённого репозитория для того чтобы загрузить сделанные коммиты в удалённый репозиторий достаточно находясь внутри вашего локального репозитория в терминале выполнить команду git Push после этой команды нужно указать имя удалённого репозитория Куда вы хотите загрузить всё это любой локальный в гите знает свой под кодовым именем orig чтобы не писать каждый раз URL поэтому пишем orig также после имени удалённого репозитория нужно указать имя ветки изменений в которую вы загружаете коммиты о ветках мы поговорим чуть позже Пока можно написать Мастер Это
наша самая главная и единственная пока ветка изменений Она всегда есть жмм Enter и видим как начинает посылать наши коты файлов в них на сервера github в наш удалённый репозиторий теперь можно зайти на github в наш репозиторий и увидеть там как раз наш файл в актуальном состоянии здесь видно именно последний комит Но на самом деле на гитхабе хранится вся история тоже также доступна теперь Представьте что в вашей команде есть ещё один разработчик который хочет подтянуть себе из общего удалённого репозитория те изменения что вы сделали в файле rmi предположим он клонировал весь проект ещё до того как
Вы теперь запушил свои коммиты Поэтому у него на компе всё ещё старое состояние этого файла Я здесь просто на своём компе создал вторую папку с ещё одним локальным репозиторием который привязан к тому же самому удалённому репозиторию что и первый в общем-то Как вы можете видеть А тут состояние redmi dmd ещё старое самое первое что у нас было изначально теперь для того чтобы другому участнику вашей команды скачать ваши коммиты из удалённого репозитория нужно из директории его локального репозитория выполнить команду Get po после которой также нужно указать имя удалённого репозитория это orig у нас а также имя
ветки из которой мы погружаем Коми это у нас ма запускаем быстренько подкачивать нам все недостающие файлы и Вуаля мы видим у себя здесь самую последнюю версию изменений Хотя раньше мы смотрели на старые файлы как бы кто-то обновил их в репе И теперь мы их получили но мы получили не просто последнюю версию мы получили все коммиты всю историю если выполнить теперь команду git то мы увидим все те коты то мы до этого сделали в другом локальном репозитории и затем запушил их в удалённый поэтому теперь я из этого уже из нового локального репозитория могу перемещаться по ним
точно так же как и автор в оригинальном с помощью git checkout очень удобно теперь поговорим об ещё одном фундаментальном понятии в Гид о ветках по сути ветка в Гид это всего-навсего последовательность коммитов которая имеет определённое имя вот и всё Поэтому в любом локальном или удалённом репозитории который вы создаёте всегда есть как минимум одна ветка потому что комита они же откуда-то начинаются она эта ветка как правило называется мастер или Main то есть самое главная единственная ветка но вы можете создавать сколько угодно своих веток собственных зачем вам их вообще создавать представьте себе ситуацию что вы как разработчик
работаете над каким-то проектом и делаете огро новую фичу она длинная там много файлов приходится изменить вы их меняете постоянно делаете новые коммиты Чтобы не терять изменения итеративности а они не окончены что если вы там что-то поломали и тогда у других людей которые скачаю этот удалённый репозиторий с общими изменениями тоже их файлы будут возможно нестабильными приложения над которым вы Вместе работаете сломается и у них потому что у вас есть баг в неоконченной фиче поэтому такую разработку совершенно отдельной фичи очень удобно вести изолированно от а ваших стабильных коммитов Чтобы другие люди могли тоже работать с этим репозиторием
совершенно независимо от вас именно это и позволяет сделать ветки Когда вы создаёте ветку в git то вы как бы отпа ковы ете от какой-то существующей последовательности Коми тов в совершенно новую отдельную изолированную с каким-то особым именем И именно поэтому это и называется ветками то есть если вы их много на создаёте друг от друга то у вас визуально получится структура очень сильно напоминающая дерево и каждая последовательность коммитов там отдельная - это как раз ветка такого дерева Давайте теперь посмотрим как именно работать с ветками в git и что они вообще позволяют сделать во-первых в нашем локальном репозитории
Мы сначала можем посмотреть какие ветки У нас есть прямо сейчас для этого выполним команду Get branch эта команда покажет нам список всех веток доступных прямо сейчас в нашем локальном репозитории и сейчас у нас здесь всего одна ветка это масте та самая единственная самая главная ветка которая всегда есть в любом репозитории звёздочка отмечена в этом списке та ветка на которой мы находимся прямо сейчас мы на Мастере чтобы нам создать новую ветку из ветки мате достаточно выполнить команду G branch и после неё передать имя новой ветки которую мы хотим создать имя может быть любым совершенно но Я
рекомендую называть ветки сообразно тем изменениям что в них будут содержаться Теперь если мы снова получим список вето то Увидим что у нас их теперь две но находимся мы пока ВС ещё на ветке мастер потому что не переключались на новую просто создали её чтобы переключиться на новую ветку нужно выполнить команду Get checkout всё тот же и после неё передать уже не комит А имя ветки на которую мы хотим перейти А теперь если снова посмотрим на список веток тодо нам что мы действительно уже переключились когда мы создаём новую ветку то по умолчанию она создаётся на основе последнего
комита той ветки на которой мы находились в момент создания таким образом прямо сейчас файлы ветки Мастер и в нашей новой ветке абсолютно идентичные потому что новая в общем-то и была создана на основе мастера но теперь если мы находясь в новой ветке изменим наш фа и по старой схеме сделаем комит наших изменений то этот комит будет сделан именно в этой ветке изменений а не в Мастере что это вам даёт теперь если я хочу переключиться на стабильную версию изменений в Мастере то мне достаточно просто вернуться на ветку Мастер и все мои файлы автоматически будут соответствовать последнему коммиту
именно в Мастере делаем тчик и в общем-то видим что read F снова в начальном состоянии Откуда мы пришли а теперь если мы захотим снова вернуться на вторую ветку и продолжить Не окончен ную работу то просто делаем чекаут на неё и обнаруживаем наш файл в том состоянии где мы его и оставили Таким образом разные разработчики могут работать в своих собственных разных отдельных ветках не мешая друг другу если кому-то нужна стабильная версия то он просто берёт мастер а вся работа ведётся в отдельных ветках которые затем могут оказаться в Мастере Когда будут доведены до конца также Обратите внимание
что прямо сейчас наша новая ветка является локальной То есть она существует в нашем локальном репозитории но её ещё нет в удалённом Так что другие разработчики не смогут её пока увидеть чтобы опубликовать вашу новую ветку достаточно снова выполнить команду git Push находясь в локальной ветке которую вы хотите опубликовать но последним параметром указать уже не ветку мастер А то имя ветки которое вы хотите дать новой удалённой ветке на гитхабе в которую загрузите теперь вашу локальную обычно называют точно так же как она названа у вас и локаль чтобы то же самое появилось И на гитхабе запускаем в этот
момент комит из вашей локальной ветки так же как и раньше публикуются в удалённом репозитории но теперь и другие участники команды могут видеть вашу ветку и переключаться между ею и мастером также как и вы если сделают гит пол в общем-то теперь Представьте такую ситуацию что вы работали вот над этой большой фей В отдельной ветке делали Коми очень долгое время и наконец довели эту фичу До ума отте считаете что она полностью стабильна соответственно хотите теперь перенести все ваши изменения из ветки для разработки в основную ветку Мастер чтобы все получили к ним доступ То есть вы хотите изменени
всех файлов вашей рабочей ветки перенести по-быстрому в вашу основную ветку и соединить их там со всеми прочими изменениями из других веток которые другие разработчики тоже объединяют Мастер и такая процедура в гите называется слияние веток и есть два механизма для выполнения того что вы хотите сделать первый механизм - это рш рш - это и есть непосредственно слияние у нас всё ещё есть ветка с нашими комита И мы хотим перенести её состояние в ветку мастер Для этого нам сначала нужно сделать чекаут на ту ветку в которую мы будем делать мерж а затем выполнить команду git merge с
именем ветки из которой мы будем проводить слияние в этот момент git берёт Все изменения из переданной ветки и добавляет все их в ветку мастер в виде всего одного нового комита Но берёт вообще всё что было в той ветке которую мы мрм убедиться в этом легко в общем-то достаточно выполнить теперь из Мастера команду git Log и увидеть что сначала идут пара наших старых коммитов А здесь вот появляется новый где и написано что произошёл в общем-то рж также если мы находясь на ветке мастер взглянем на состояние нашего файла rmi то Увидим что оно ровно совпадает с тем
что мы до этого видели в нашей второй ветке То есть все эти изменения теперь попали в Мастер и существуют в виде одного нового комита здесь опять же важно заметить что всё это происходит в вашем локальном репозитории Если вы хотите опубликовать результат мережа то нужно сделать пуш мастера в удалённый репозиторий теперь но есть ещё второй механизм переноса изменений из одной ветки в другую Давайте вернёмся на нашу вторую ветку и сделаем в ней пару новых изменений в файле RM а затем ещ сделаем пару дополнительных коммитов Давайте глянем теперь в ло и убедимся в общем-то что там действительно
есть такие новые кометы которые мы только что сделали вот они с соответствующими сообщениями там теперь предположим что мы снова хотим затащить эти уже изменения тоже в ветку мастер Но помните что по факту создат в Мастере просто один новый кот лежат все изменения из второй ветки которую мы мержи но что если я хочу поддержать историю изменений и перевести вообще все комит из второй ветки в Мастер а не просто там сделать какой-то один новый комит для этого я могу использовать команду git rebase вместо команды git merch процедура там такая же как и с ржом переключаем се на
ту ветку куда будем делать Рей а потом запускаем эту команду указывая из какой ветки будем переносить комит в нашу теперь находясь в Ветке ма смотрим git Log в общем-то Как видите оба комита из нашей второй ветки теперь находятся здесь вместе со своими сообщениями таким образом Если для вас важна история комита вашей ветке то rebas лучше мережа в этом плане Вы можете выбрать для себя более удобный какой-то механизм оба из них рабо Я например использую МШ обычно Если для вас это был супер ценный разбор то Поставьте пожалуйста лайк этому видео Я обязательно сделаю ещё один видос
со всеми вот этими анимациями со всем вот этим крутым форматом со скринкаста со всем всем-всем про всякие аванс техники в гит типа Черри пиков а также расскажу о том как решать конфликты в гите что очень-очень больная тема для начинающих Я надеюсь что это видео было очень ценным для вас дорогие друзья будет здорово если подпишитесь на канал поставите коммент поставите лайк что угодно это правда очень сильно помогает также Приходите в мои Telegram и Instagram где я рассказываю огромное количество уникальных совершенно историй о моей работе в uber жизни в Амстердаме О других людях из бигтех теперь в
общем очень много интересного контента обязательно Приходите Спасибо вам и [музыка] увидимся а [музыка]