При создании файла/директории в локальном репозитории git, файл копируется во все ветки, а не в ту в которой создается (через консоль и редактор). Как этого избежать?
-
1в смысле вы создали файл, не добавили его в реп и при переключении веток он остается ? это так и задумано, сделайте коммит с этим файлом в нужной ветке. – zb' Jun 11 '17 at 09:45
-
Спасибо zb, разобрался – Кукушон Jun 11 '17 at 09:55
1 Answers
вообще, создаёте вы файлы/каталоги не в репозитории/хранилище, а в рабочем каталоге (working directory/tree).
в хранилище файлы (точнее, их содержимое) «попадают» только после команды git commit.
при переключении между ветками/коммитами программа git «вычисляет», какие изменения следует внести в рабочий каталог:
- файлы/каталоги, которые есть в текущей ветке/коммите, но отсутствуют в той, на которую переключаетесь, удаляются;
- файлы/каталоги, которых нет в текущей ветке/коммите, но которые присутствуют в той, на которую переключаетесь, извлекаются из содержимого хранилища;
- аналогично извлекается и содержимое файлов, которое отличается: в текущей ветке/коммите — одно, в той, на которую переключаетесь — другое.
все же остальные файлы/каталоги при переключении между ветками/коммитами вообще никак не будут затронуты.
это относится и к тем файлам/каталогам, которых нет ни в текущей ветке/коммите, ни в той, на которую переключаетесь.
Как этого избежать?
пока вы не сохранили эти файлы/каталоги внутри хранилища, программа git, по крайней мере, выполняя команду checkout, не будет «касаться» таких «неотслеживаемых» файлов/каталогов внутри рабочего каталога.
так что краткий ответ: никак не избежать. так задумано.
- 68,117
-
-
Есть более ранний вопрос https://ru.stackoverflow.com/q/327240/181472, но у вас здесь ответ подробнее. Сомневаюсь, в какую сторону дубликатить. – Nick Volynkin Jun 22 '17 at 04:22
-
@NickVolynkin, а какая, в общем, разница? на оба вопроса даны вполне исчерпывающие ответы. по-моему, можно закрывать (как дубль) любой из них. а с перекрёстной ссылкой и релевантностью пусть поисковики разбираются. – aleksandr barakin Jun 22 '17 at 06:30