@stanislavkm

Почему изменения сохраняются и на новой ветке и в main?

В ветке main делаю команду:
git checkout -b feature
Вношу изменения на этой ветке, но изменения применяются и на ветке main. Спокойно без коммита с ветки feature пускает в ветку main. В чем проблема?
  • Вопрос задан
  • 692 просмотра
Решения вопроса 2
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Вам показалось. Изменения рабочего каталога не принадлежат никакой ветке, это просто каталог с файлами. Если вы что-то изменили, не закоммитили, и переключитесь на main, то гит не уничтожает эти изменения а оставляет их в рабочем каталоге и попытается слить с файлами из main. Это не значит что они попали в main. Без коммита они никуда не попадут.
Если вы сейчас сделаете git status, то увидите что файлы в рабочем каталоге изменены, т. е. в рабочем каталоге не содержимое main, а какие-то другие файлы.
Если сбросить рабочий каталог git reset --hard, то увидите реальное содержимое main, а ваши изменения окончательно потеряются.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Git
software engineer
без коммита, вы не фиксируете изменения в ветке, а только в working directory
Проверьте все изменения, добавьте их в коммит, закоммитьте, а уже потом переключайтесь в другую ветку

Либо юзайте git stash
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы