Тёмный

3.3 Git - Ветки - Команда checkout при незакоммиченных изменениях 

JavaScript.ru
Подписаться 47 тыс.
Просмотров 45 тыс.
50% 1

Проблемы с checkout при наличии изменения, варианты их решения:
- удаление с checkout -f
- сохранение с git stash

Наука

Опубликовано:

 

30 апр 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 40   
@JavaScriptru-videos
@JavaScriptru-videos 3 года назад
Ссылки: - 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
@vakulasan4613
@vakulasan4613 Год назад
Отличная подача. Заранее подготовленный текст. Никаких "Ну" "Вот" и тому подобное. Чёткая речь и доходчивая подача. Благодаря коротким видео очень легко смотреть. После скитаний в ютубе решил остановиться именно здесь. Не понимаю почему так мало лайков.
@RavilKhalilov
@RavilKhalilov 2 года назад
На 05:20 автор скорее всего имел ввиду fix:index.html = master:index.html
@mrBars1kChannel
@mrBars1kChannel 4 месяца назад
Долго доходило, но теперь понял. Объясню на примере, если вы тоже столкнулись с недопониманием: 1. Ветка master, файл index.html: "Данные 1" Ветка feature, файл index.html: "Данные 1" 2. Мы вносим изменения в ветке master и пусть будет добавлено: "Данные 2" При переходе на ветку feature, у нас не возникает ошибки, потому что и там, и там, исходные данные одинаковые. В коммитах последних они идентичны Так что можно считать, что какая разница, в какую ветку мы перейдём, изменения, которые мы сделали, будут одинаково подходить обеим веткам и не возникнет конфликтов. 3. Но если бы исходные данные отличались, то файл в ветках уже не идентичен и могут возникнуть конфликты при переносе их, поэтому выдаст ошибку. Было master: "Данные один" Было в feature: "Данные два" Вот теперь исходные данные отличаются и при внесении изменении, при переходе будет конфликт. На следующем видео из плейлиста на 1:06 буквально наглядный пример того, как это работает.
@Ecto-Gamet
@Ecto-Gamet 3 года назад
Спасибо! Пожалуй, лучший курс по git!
@user-iz9sj1nn5q
@user-iz9sj1nn5q Год назад
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 Итог
@user-ki8mz4kj8q
@user-ki8mz4kj8q 2 года назад
Спасибо за ваш труд! Реально полезное видео. Я 100 раз сталкивался с описанной проблемой и всегда делал через ж.. (коммитил свои временные изменения, а потом перезаписывал полученный коммит с помощью ammend)
@xmelsky
@xmelsky 3 года назад
очень доступно и по делу. всем рекомендую
@olexklym4132
@olexklym4132 2 года назад
Друзья от ошибок в видосах чисто польза. Лучше усваивается материал, больше комментов продвигает курс) ну и мы общаемся помогаем друг другу все дела) курс же бесплатный, так что веселей)
@user-uf2ur4bw7m
@user-uf2ur4bw7m Год назад
Как же я ошибался, что раньше не смотрел этого! Спасибо большое за видео.
@vadim_tech
@vadim_tech 2 года назад
Топовый контент) Помню как пришел на первое место работы и сразу же возникла проблема с переходами между ветками) В итоге я просто комитил не завершенные изменениея, а затем отменял комит)) Этот видос многим поможет!)
@alexanonymous5823
@alexanonymous5823 2 года назад
спасибо огромное, очень полезная инфа по гиту
@revoluxe
@revoluxe Год назад
Очень крутой курс!
@eugenenovikov671
@eugenenovikov671 2 года назад
Илья, ничего непонятно: мы меняем индекс.хтмл, но чекаут спокойно переключается, потому что файлы одинаковые, это как вообще?? мы же его поменяли, он уже отличается от мастера, как он может видить, что индекс.хтмл в обоих ветках одинаковый??? мы же изменения внесли
@grishasidorov
@grishasidorov 2 года назад
Емеется в виду, что он одинаковый в последних коммитах обеих веток.
@evgeny-chugaev
@evgeny-chugaev 3 года назад
На 5:22 ошибка, не script.js = script.js, а index.html = index.html
@bukanaka
@bukanaka 3 года назад
+
@e001as_def
@e001as_def 10 месяцев назад
Класс!
@alexb.2616
@alexb.2616 2 года назад
спасибо
@user-Nadezhda
@user-Nadezhda Год назад
Редко пишу комменты, но ты просто огонь! До этого прослушала 2 длинных курса у других,тоже хорошие , в целом понимала, но ты все расставил по полочкам! Именно твоих объяснений и не хватало!
@user-ck9bx4sg1t
@user-ck9bx4sg1t Год назад
что то я не догнал про переключения. чем html от js отличается? и там и там изменения. но в js пропадают изменения при переключении а в html нет. почему?
@dino_source
@dino_source 10 месяцев назад
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).
@user-ez2yf3yd3z
@user-ez2yf3yd3z 2 года назад
OK!
@user-iz9sj1nn5q
@user-iz9sj1nn5q Год назад
Получается git checkout -f в рамках не ветки, но отдельного коммита - тоже самое, что и git reset --hard?
@noname_2108
@noname_2108 Год назад
вроде как да
@nefed-L
@nefed-L 9 месяцев назад
По-моему, сейчас уже checkout при незакоммиченных изменениях и одинаковых файлах работает по-другому. Либо гит ругается, если не добавить их в индекс, либо просто удаляет изменения и переключается на другую ветку, если добавить.
@user-yq3rz6ug7f
@user-yq3rz6ug7f 3 года назад
Хм, у меня не появляется 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 или я что-то делаю не так?
@r.3563
@r.3563 2 года назад
В гите ничего не изменилось, ваш случай подходит под то, о чем говорят в первые 2 минут. Если все же хотите перейти, добавьте фаг -f, но изменения будут потеряны. Переход между ветками без error будет совершен, если файлы одинаковые в репозиториях, то есть если index.html на ветке branch и index.html на ветке master одинаковы именно в коммитах, то ок. Изменения, которые сделаны потом не влияют, checkout просто перенесет их на выбранную ветку. Главное, чтобы файлы между которыми гуляют изменения были одинаковыми именно в коммитах.
@nisorek
@nisorek 2 года назад
Я сам сначала не понял. Объясню чуть более наглядно. Обрати внимание ИЗНАЧАЛЬНО index.html в обоих ветках один и тот же. А в script.js ранее после того как перешли на новую ветку сделали изменение и ЗАКОММИТИЛИ. Получилась ситуация, что script.js в ветках отличается, а index.html одинаковый :)
@sergeykornilov8949
@sergeykornilov8949 2 года назад
Скорее всего ты как и я находишься на коммите 'Run work' из предыдущего видео (там как раз мы прыгали между ветками и было видно что файл index.html разный), а данный пример показан на уровне коммита 'Create work', где эти файлы index.html одинаковые. На 3:06 видно при выполнении команды git stash, что работа идет на коммите 'Create work'.
@grekstar8666
@grekstar8666 2 года назад
@@sergeykornilov8949 автор просто перемудрил а зрителям потом "иди ошибку находи"
@olexklym4132
@olexklym4132 2 года назад
@@sergeykornilov8949 чётко) спасибо
@wockywocky3109
@wockywocky3109 2 года назад
Странно, меня гит не "защищает" я создал ветку features в ней создал файл index.html и в нем добавил заголовок h1 после этого я спокойно могу переключится на master
@wockywocky3109
@wockywocky3109 2 года назад
я понял, проблема была в том, что я после того как создал файл не закоммитил его.
@pycjlahi8370
@pycjlahi8370 9 месяцев назад
@@wockywocky3109 ты его не незакомитил а а просто не сохранил на компе. только создал.
@user-yy9wc5dj1s
@user-yy9wc5dj1s 11 месяцев назад
Если кому полезно будет Если мне необходими перепригнуть с ветки, и приеэтом не потерять незакомиченые изменения я быстро создаю еще 1 ветку там комичю изменеия и уже прыгаю на другую ветку так не мутируется ветка над которой я работал и сохраняются изменения
@pycjlahi8370
@pycjlahi8370 9 месяцев назад
ты просто не в курсе про stash , с ним удобнее.
@oleggorenkov
@oleggorenkov 10 месяцев назад
5:48 наверное ни файлы одинаковые, а эти файлы в крайних коммитах веток? Странно сделать изменение в одном из файлов, чтобы они отличались, и потом говорить, что они одинаковые.
@limb0kid
@limb0kid 2 года назад
Спасибо! Пожалуй, лучший курс по git!
Далее
Conquering fears and slippery slops on two wheels!
00:18
Git STASH Explained in Simple Words
9:45
Просмотров 121 тыс.
3.1 Git - Ветки - Введение
5:21
Просмотров 49 тыс.