Ссылки: - Git курс (playlist): ruclips.net/video/W4hoc24K93E/видео.html - Git разное (playlist): ruclips.net/video/8HxTHPkdedA/видео.html - Учебник и курсы по JavaScript и смежных технологиям: learn.javascript.ru
Отличная подача. Заранее подготовленный текст. Никаких "Ну" "Вот" и тому подобное. Чёткая речь и доходчивая подача. Благодаря коротким видео очень легко смотреть. После скитаний в ютубе решил остановиться именно здесь. Не понимаю почему так мало лайков.
Спасибо за ваш труд! Реально полезное видео. Я 100 раз сталкивался с описанной проблемой и всегда делал через ж.. (коммитил свои временные изменения, а потом перезаписывал полученный коммит с помощью ammend)
Долго доходило, но теперь понял. Объясню на примере, если вы тоже столкнулись с недопониманием: 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:454:32) 3:17 Вернуть изменения - git stash pop 3:31 изменения можно добавлять командой git stash pop не только в ту же ветку, но и в другие, так как они хранятся отдельно от веток 4:44 7:39 Итог
Топовый контент) Помню как пришел на первое место работы и сразу же возникла проблема с переходами между ветками) В итоге я просто комитил не завершенные изменениея, а затем отменял комит)) Этот видос многим поможет!)
Илья, ничего непонятно: мы меняем индекс.хтмл, но чекаут спокойно переключается, потому что файлы одинаковые, это как вообще?? мы же его поменяли, он уже отличается от мастера, как он может видить, что индекс.хтмл в обоих ветках одинаковый??? мы же изменения внесли
что то я не догнал про переключения. чем html от js отличается? и там и там изменения. но в js пропадают изменения при переключении а в html нет. почему?
Друзья от ошибок в видосах чисто польза. Лучше усваивается материал, больше комментов продвигает курс) ну и мы общаемся помогаем друг другу все дела) курс же бесплатный, так что веселей)
Редко пишу комменты, но ты просто огонь! До этого прослушала 2 длинных курса у других,тоже хорошие , в целом понимала, но ты все расставил по полочкам! Именно твоих объяснений и не хватало!
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 - в каком смысле checkout отработает с непроиндексированными изменениями, если файлы в ветках не различаются, если мы, как раз и наделали изменений в одной из веток? мне chatGPT объяснил так, что получится сделать checkout, если не возникает конфликта
По-моему, сейчас уже checkout при незакоммиченных изменениях и одинаковых файлах работает по-другому. Либо гит ругается, если не добавить их в индекс, либо просто удаляет изменения и переключается на другую ветку, если добавить.
Странно, меня гит не "защищает" я создал ветку features в ней создал файл index.html и в нем добавил заголовок h1 после этого я спокойно могу переключится на master
Хм, у меня не появляется 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'.
Если кому полезно будет Если мне необходими перепригнуть с ветки, и приеэтом не потерять незакомиченые изменения я быстро создаю еще 1 ветку там комичю изменеия и уже прыгаю на другую ветку так не мутируется ветка над которой я работал и сохраняются изменения
5:48 наверное ни файлы одинаковые, а эти файлы в крайних коммитах веток? Странно сделать изменение в одном из файлов, чтобы они отличались, и потом говорить, что они одинаковые.
Ссылки:
- Git курс (playlist): ruclips.net/video/W4hoc24K93E/видео.html
- Git разное (playlist): ruclips.net/video/8HxTHPkdedA/видео.html
- Учебник и курсы по JavaScript и смежных технологиям: learn.javascript.ru
Отличная подача. Заранее подготовленный текст. Никаких "Ну" "Вот" и тому подобное. Чёткая речь и доходчивая подача. Благодаря коротким видео очень легко смотреть. После скитаний в ютубе решил остановиться именно здесь. Не понимаю почему так мало лайков.
Спасибо! Пожалуй, лучший курс по git!
На 05:20 автор скорее всего имел ввиду fix:index.html = master:index.html
Спасибо за ваш труд! Реально полезное видео. Я 100 раз сталкивался с описанной проблемой и всегда делал через ж.. (коммитил свои временные изменения, а потом перезаписывал полученный коммит с помощью ammend)
Долго доходило, но теперь понял. Объясню на примере, если вы тоже столкнулись с недопониманием:
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 Итог
Топовый контент) Помню как пришел на первое место работы и сразу же возникла проблема с переходами между ветками) В итоге я просто комитил не завершенные изменениея, а затем отменял комит)) Этот видос многим поможет!)
На 5:22 ошибка, не script.js = script.js, а index.html = index.html
+
Илья, ничего непонятно: мы меняем индекс.хтмл, но чекаут спокойно переключается, потому что файлы одинаковые, это как вообще?? мы же его поменяли, он уже отличается от мастера, как он может видить, что индекс.хтмл в обоих ветках одинаковый??? мы же изменения внесли
Емеется в виду, что он одинаковый в последних коммитах обеих веток.
что то я не догнал про переключения. чем html от js отличается? и там и там изменения. но в js пропадают изменения при переключении а в html нет. почему?
Друзья от ошибок в видосах чисто польза. Лучше усваивается материал, больше комментов продвигает курс) ну и мы общаемся помогаем друг другу все дела) курс же бесплатный, так что веселей)
спасибо огромное, очень полезная инфа по гиту
Редко пишу комменты, но ты просто огонь! До этого прослушала 2 длинных курса у других,тоже хорошие , в целом понимала, но ты все расставил по полочкам! Именно твоих объяснений и не хватало!
Получается git checkout -f в рамках не ветки, но отдельного коммита - тоже самое, что и git reset --hard?
вроде как да
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 - в каком смысле checkout отработает с непроиндексированными изменениями, если файлы в ветках не различаются, если мы, как раз и наделали изменений в одной из веток? мне chatGPT объяснил так, что получится сделать checkout, если не возникает конфликта
По-моему, сейчас уже checkout при незакоммиченных изменениях и одинаковых файлах работает по-другому. Либо гит ругается, если не добавить их в индекс, либо просто удаляет изменения и переключается на другую ветку, если добавить.
Странно, меня гит не "защищает"
я создал ветку features в ней создал файл index.html и в нем добавил заголовок h1
после этого я спокойно могу переключится на master
я понял, проблема была в том, что я после того как создал файл не закоммитил его.
@@wockywocky3109 ты его не незакомитил а а просто не сохранил на компе. только создал.
Хм, у меня не появляется 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'.
@@sergeykornilov8949 автор просто перемудрил а зрителям потом "иди ошибку находи"
@@sergeykornilov8949 чётко) спасибо
Класс!
спасибо
Если кому полезно будет
Если мне необходими перепригнуть с ветки, и приеэтом не потерять незакомиченые изменения
я быстро создаю еще 1 ветку там комичю изменеия и уже прыгаю на другую ветку
так не мутируется ветка над которой я работал
и сохраняются изменения
ты просто не в курсе про stash , с ним удобнее.
5:48 наверное ни файлы одинаковые, а эти файлы в крайних коммитах веток? Странно сделать изменение в одном из файлов, чтобы они отличались, и потом говорить, что они одинаковые.
OK!
Спасибо! Пожалуй, лучший курс по git!