Ссылки: - Git курс (playlist): ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-W4hoc24K93E.html - Git разное (playlist): ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-8HxTHPkdedA.html - Учебник и курсы по JavaScript и смежных технологиям: learn.javascript.ru
Отличная подача. Заранее подготовленный текст. Никаких "Ну" "Вот" и тому подобное. Чёткая речь и доходчивая подача. Благодаря коротким видео очень легко смотреть. После скитаний в ютубе решил остановиться именно здесь. Не понимаю почему так мало лайков.
Долго доходило, но теперь понял. Объясню на примере, если вы тоже столкнулись с недопониманием: 1. Ветка master, файл index.html: "Данные 1" Ветка feature, файл index.html: "Данные 1" 2. Мы вносим изменения в ветке master и пусть будет добавлено: "Данные 2" При переходе на ветку feature, у нас не возникает ошибки, потому что и там, и там, исходные данные одинаковые. В коммитах последних они идентичны Так что можно считать, что какая разница, в какую ветку мы перейдём, изменения, которые мы сделали, будут одинаково подходить обеим веткам и не возникнет конфликтов. 3. Но если бы исходные данные отличались, то файл в ветках уже не идентичен и могут возникнуть конфликты при переносе их, поэтому выдаст ошибку. Было master: "Данные один" Было в feature: "Данные два" Вот теперь исходные данные отличаются и при внесении изменении, при переходе будет конфликт. На следующем видео из плейлиста на 1:06 буквально наглядный пример того, как это работает.
1:21 Переключение С УДАЛЕНИЕМ текущих изменений (1:53 можно на тот же файл, чтобы вернуть прежнее состояние до изменений ) - флаг -f Переключение С СОХРАНЕНИЕМ текущих изменений - git stash (2:45 4:32) 3:17 Вернуть изменения - git stash pop 3:31 изменения можно добавлять командой git stash pop не только в ту же ветку, но и в другие, так как они хранятся отдельно от веток 4:44 7:39 Итог
Спасибо за ваш труд! Реально полезное видео. Я 100 раз сталкивался с описанной проблемой и всегда делал через ж.. (коммитил свои временные изменения, а потом перезаписывал полученный коммит с помощью ammend)
Друзья от ошибок в видосах чисто польза. Лучше усваивается материал, больше комментов продвигает курс) ну и мы общаемся помогаем друг другу все дела) курс же бесплатный, так что веселей)
Топовый контент) Помню как пришел на первое место работы и сразу же возникла проблема с переходами между ветками) В итоге я просто комитил не завершенные изменениея, а затем отменял комит)) Этот видос многим поможет!)
Илья, ничего непонятно: мы меняем индекс.хтмл, но чекаут спокойно переключается, потому что файлы одинаковые, это как вообще?? мы же его поменяли, он уже отличается от мастера, как он может видить, что индекс.хтмл в обоих ветках одинаковый??? мы же изменения внесли
Редко пишу комменты, но ты просто огонь! До этого прослушала 2 длинных курса у других,тоже хорошие , в целом понимала, но ты все расставил по полочкам! Именно твоих объяснений и не хватало!
что то я не догнал про переключения. чем html от js отличается? и там и там изменения. но в js пропадают изменения при переключении а в html нет. почему?
4:44 - возникло. Пытаюсь воспроизвести поведение из примера автора, не получается (3 сентября 2023, git 2.42.0, Ubuntu 22.04.3 LTS). Добавляю в index.html один символ, смотрю состояние: $ git status On branch feature Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: index.html no changes added to commit (use "git add" and/or "git commit -a") Пытаюсь перейти на ветку master: $ git checkout master error: Your local changes to the following files would be overwritten by checkout: index.html Please commit your changes or stash them before you switch branches. Aborting Cтоит хоть один символ поменять в файле index .html - сразу же гит не даёт сделать git checkout, оповещая об ошибке (опасности потери сделанных изменений) И это вне зависимости от того, добавлен index.html в индекс гита или нет. Свитчнуться на другую ветку получается только через git checkout -f или через git stash А вот если на ветке feature добавить новый файл azaza.html, то действительно вполне спокойно можно будет переключиться на ветку master. И на ветке master тоже будет этот же самый azaza.html, поскольку данный файл просто присутствует в working tree, но при этом является неотслеживаемым (untracked).
По-моему, сейчас уже checkout при незакоммиченных изменениях и одинаковых файлах работает по-другому. Либо гит ругается, если не добавить их в индекс, либо просто удаляет изменения и переключается на другую ветку, если добавить.
Хм, у меня не появляется M index.html вместо этого выходит ошибка: error: Your local changes to the following files would be overwritten by checkout: index.html Please commit your changes or stash them before you switch branches. Aborting И переключение между веток не происходит. Это какое-то обновление у GIT или я что-то делаю не так?
В гите ничего не изменилось, ваш случай подходит под то, о чем говорят в первые 2 минут. Если все же хотите перейти, добавьте фаг -f, но изменения будут потеряны. Переход между ветками без error будет совершен, если файлы одинаковые в репозиториях, то есть если index.html на ветке branch и index.html на ветке master одинаковы именно в коммитах, то ок. Изменения, которые сделаны потом не влияют, checkout просто перенесет их на выбранную ветку. Главное, чтобы файлы между которыми гуляют изменения были одинаковыми именно в коммитах.
Я сам сначала не понял. Объясню чуть более наглядно. Обрати внимание ИЗНАЧАЛЬНО index.html в обоих ветках один и тот же. А в script.js ранее после того как перешли на новую ветку сделали изменение и ЗАКОММИТИЛИ. Получилась ситуация, что script.js в ветках отличается, а index.html одинаковый :)
Скорее всего ты как и я находишься на коммите 'Run work' из предыдущего видео (там как раз мы прыгали между ветками и было видно что файл index.html разный), а данный пример показан на уровне коммита 'Create work', где эти файлы index.html одинаковые. На 3:06 видно при выполнении команды git stash, что работа идет на коммите 'Create work'.
Странно, меня гит не "защищает" я создал ветку features в ней создал файл index.html и в нем добавил заголовок h1 после этого я спокойно могу переключится на master
Если кому полезно будет Если мне необходими перепригнуть с ветки, и приеэтом не потерять незакомиченые изменения я быстро создаю еще 1 ветку там комичю изменеия и уже прыгаю на другую ветку так не мутируется ветка над которой я работал и сохраняются изменения
5:48 наверное ни файлы одинаковые, а эти файлы в крайних коммитах веток? Странно сделать изменение в одном из файлов, чтобы они отличались, и потом говорить, что они одинаковые.