effect_tw
@effect_tw

Не даёт создать новую ветку git?

Создал новую ветку, сделал в ней коммит, переключился на основную (master) и из её не могу создать новую ветку, такая вот ошибка вылетает:
5e9da0696bf91458604917.png
В чем проблема?
  • Вопрос задан
  • 1261 просмотр
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Потому что изначально (да и сейчас) ссылки (т.е. ветки, теги и т.п.) хранятся как файлы в файловой системе (если не рассматривать сжатие). Посмотрите, например
ls .git/refs/heads

Соответственно, если у вас уже есть ветка frontEnd/bodyStart значит есть папка .git/refs/heads/frontEnd и очевидно создать файл с таким же именем нельзя.

P.S. конкретно у вас может ничего не быть в папке .git/refs/heads, потому что в git есть система оптимизации хранения. Но для совместимости ограничение на создание такого рода веток всё равно остаётся для совместимости.

пример

$ ls .git/refs/heads/
master

$ git branch test/head
$ tree .git/refs/heads/
.git/refs/heads/
├── master
└── test
    └── head

$ git branch test
fatal: cannot lock ref 'refs/heads/test': 'refs/heads/test/head' exists; cannot create 'refs/heads/test'

$ git branch -d test/head
Deleted branch test/head (was 58084de).
$ git branch test
$ tree .git/refs/heads/
.git/refs/heads/
├── master
└── test

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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