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

Поделиться
HTML-код
  • Опубликовано: 21 дек 2024

Комментарии • 41

  • @JavaScriptru-videos
    @JavaScriptru-videos  3 года назад +11

    Ссылки:
    - Git курс (playlist): ruclips.net/video/W4hoc24K93E/видео.html
    - Git разное (playlist): ruclips.net/video/8HxTHPkdedA/видео.html
    - Учебник и курсы по JavaScript и смежных технологиям: learn.javascript.ru

  • @vakulasan4613
    @vakulasan4613 2 года назад +40

    Отличная подача. Заранее подготовленный текст. Никаких "Ну" "Вот" и тому подобное. Чёткая речь и доходчивая подача. Благодаря коротким видео очень легко смотреть. После скитаний в ютубе решил остановиться именно здесь. Не понимаю почему так мало лайков.

  • @mrBars1kChannel
    @mrBars1kChannel 9 месяцев назад +2

    Долго доходило, но теперь понял. Объясню на примере, если вы тоже столкнулись с недопониманием:
    1.
    Ветка master, файл index.html:
    "Данные 1"
    Ветка feature, файл index.html:
    "Данные 1"
    2. Мы вносим изменения в ветке master и пусть будет добавлено: "Данные 2"
    При переходе на ветку feature, у нас не возникает ошибки, потому что и там, и там, исходные данные одинаковые. В коммитах последних они идентичны
    Так что можно считать, что какая разница, в какую ветку мы перейдём, изменения, которые мы сделали, будут одинаково подходить обеим веткам и не возникнет конфликтов.
    3. Но если бы исходные данные отличались, то файл в ветках уже не идентичен и могут возникнуть конфликты при переносе их, поэтому выдаст ошибку.
    Было master:
    "Данные один"
    Было в feature:
    "Данные два"
    Вот теперь исходные данные отличаются и при внесении изменении, при переходе будет конфликт.
    На следующем видео из плейлиста на 1:06 буквально наглядный пример того, как это работает.

  • @Ecto-Gamet
    @Ecto-Gamet 3 года назад +20

    Спасибо! Пожалуй, лучший курс по git!

  • @ВиталийМорозов-в5ъ
    @ВиталийМорозов-в5ъ 3 года назад +8

    Спасибо за ваш труд! Реально полезное видео. Я 100 раз сталкивался с описанной проблемой и всегда делал через ж.. (коммитил свои временные изменения, а потом перезаписывал полученный коммит с помощью ammend)

  • @xmelsky
    @xmelsky 3 года назад +11

    очень доступно и по делу. всем рекомендую

  • @RavilKhalilov
    @RavilKhalilov 3 года назад +19

    На 05:20 автор скорее всего имел ввиду fix:index.html = master:index.html

  • @Леонид-с5з
    @Леонид-с5з 2 года назад +5

    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 Итог

  • @АзатИмаев-ь4п
    @АзатИмаев-ь4п Год назад

    Как же я ошибался, что раньше не смотрел этого! Спасибо большое за видео.

  • @vadim_tech
    @vadim_tech 2 года назад +3

    Топовый контент) Помню как пришел на первое место работы и сразу же возникла проблема с переходами между ветками) В итоге я просто комитил не завершенные изменениея, а затем отменял комит)) Этот видос многим поможет!)

  • @evgeny-chugaev
    @evgeny-chugaev 3 года назад +18

    На 5:22 ошибка, не script.js = script.js, а index.html = index.html

  • @alexanonymous5823
    @alexanonymous5823 3 года назад +2

    спасибо огромное, очень полезная инфа по гиту

  • @dino_source
    @dino_source Год назад +1

    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-Nadezhda
    @user-Nadezhda Год назад

    Редко пишу комменты, но ты просто огонь! До этого прослушала 2 длинных курса у других,тоже хорошие , в целом понимала, но ты все расставил по полочкам! Именно твоих объяснений и не хватало!

  • @eugenenovikov671
    @eugenenovikov671 3 года назад +11

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

    • @grishasidorov
      @grishasidorov 2 года назад +7

      Емеется в виду, что он одинаковый в последних коммитах обеих веток.

  • @ВалерийФроловский

    что то я не догнал про переключения. чем html от js отличается? и там и там изменения. но в js пропадают изменения при переключении а в html нет. почему?

  • @revoluxe
    @revoluxe Год назад

    Очень крутой курс!

  • @olexklym4132
    @olexklym4132 2 года назад +5

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

  • @Леонид-с5з
    @Леонид-с5з 2 года назад +6

    Получается git checkout -f в рамках не ветки, но отдельного коммита - тоже самое, что и git reset --hard?

  • @AndreiKratovich
    @AndreiKratovich 4 месяца назад

    не понятно про checkout - в каком смысле checkout отработает с непроиндексированными изменениями, если файлы в ветках не различаются, если мы, как раз и наделали изменений в одной из веток? мне chatGPT объяснил так, что получится сделать checkout, если не возникает конфликта

  • @nefed-L
    @nefed-L Год назад

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

  • @wockywocky3109
    @wockywocky3109 3 года назад +4

    Странно, меня гит не "защищает"
    я создал ветку features в ней создал файл index.html и в нем добавил заголовок h1
    после этого я спокойно могу переключится на master

    • @wockywocky3109
      @wockywocky3109 3 года назад +4

      я понял, проблема была в том, что я после того как создал файл не закоммитил его.

    • @pycjlahi8370
      @pycjlahi8370 Год назад

      @@wockywocky3109 ты его не незакомитил а а просто не сохранил на компе. только создал.

  • @ВикаКоко-р8ю
    @ВикаКоко-р8ю 3 года назад +8

    Хм, у меня не появляется 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 3 года назад +6

      В гите ничего не изменилось, ваш случай подходит под то, о чем говорят в первые 2 минут. Если все же хотите перейти, добавьте фаг -f, но изменения будут потеряны.
      Переход между ветками без error будет совершен, если файлы одинаковые в репозиториях, то есть если index.html на ветке branch и index.html на ветке master одинаковы именно в коммитах, то ок. Изменения, которые сделаны потом не влияют, checkout просто перенесет их на выбранную ветку. Главное, чтобы файлы между которыми гуляют изменения были одинаковыми именно в коммитах.

    • @nisorek
      @nisorek 3 года назад +13

      Я сам сначала не понял. Объясню чуть более наглядно. Обрати внимание ИЗНАЧАЛЬНО index.html в обоих ветках один и тот же. А в script.js ранее после того как перешли на новую ветку сделали изменение и ЗАКОММИТИЛИ. Получилась ситуация, что script.js в ветках отличается, а index.html одинаковый :)

    • @sergeykornilov8949
      @sergeykornilov8949 3 года назад +3

      Скорее всего ты как и я находишься на коммите 'Run work' из предыдущего видео (там как раз мы прыгали между ветками и было видно что файл index.html разный), а данный пример показан на уровне коммита 'Create work', где эти файлы index.html одинаковые. На 3:06 видно при выполнении команды git stash, что работа идет на коммите 'Create work'.

    • @grekstar8666
      @grekstar8666 3 года назад +1

      @@sergeykornilov8949 автор просто перемудрил а зрителям потом "иди ошибку находи"

    • @olexklym4132
      @olexklym4132 2 года назад

      @@sergeykornilov8949 чётко) спасибо

  • @oleggorenkov
    @oleggorenkov Год назад

    5:48 наверное ни файлы одинаковые, а эти файлы в крайних коммитах веток? Странно сделать изменение в одном из файлов, чтобы они отличались, и потом говорить, что они одинаковые.

  • @e001as_def
    @e001as_def Год назад

    Класс!

  • @alexb.2616
    @alexb.2616 2 года назад +1

    спасибо

  • @АренШмакр
    @АренШмакр Год назад

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

    • @pycjlahi8370
      @pycjlahi8370 Год назад +1

      ты просто не в курсе про stash , с ним удобнее.

  • @Макс523
    @Макс523 2 года назад +1

    OK!

  • @limb0kid
    @limb0kid 2 года назад +1

    Спасибо! Пожалуй, лучший курс по git!