Основная проблема в том, что Я не могу переключать ветви , поэтому я не могу восстановить код, который я сделал в другой ветви.
Вы можете использовать git worktree
вместо работы с одной папкой, по вашим словам, это позволит вам переключать ветви
git worktree
Что такое рабочее дерево?
worktree
позволяет иметь несколько экземпляров одного и того же хранилища в разных папках .
git worktree add <second path>
создаст другую папку на вашем компьютере, которая позволит вам одновременно работать в другой ветке, в которой вы сможете установить свой npm и вам не нужно удалять / переключаться на другую ветку.

git worktree
создаст новую рабочую папку, что позволит нам работать над несколькими ветками одновременно.каждая копия будет указывать на исходный репозиторий, в то время как 3-states
является новой и свежей копией.Это избавляет нас от необходимости использовать git stash
или даже для клонирования нового репозитория, поскольку эти рабочие ветви разделяют одно и то же хранилище, мы можем оформить любую ветку на любом рабочем дереве, мы можем выполнить выборку или объединение, и все будет выполнено локально на нашемmachine.
Это позволит вам проводить любые эксперименты с новым рабочим деревом, не оказывая влияния на сам репозиторий.
На прилагаемом изображении вы можете видеть, что 2 разделены рабочая папка, но оба используют один репозиторий и делятся контентом.
