Це не папка, яка існує, це гілка . (Ну, десь може бути задіяна папка / каталог - а може, ні, оскільки посилання «упаковуються» і припиняють існування як файлів у каталогах.)
- Якщо гілка
bіснує, не b/anythingможна створити жодної гілки з іменем .
- Аналогічно, якщо гілка
dev/bіснує, dev/b/cне може бути створена.
Це внутрішнє обмеження git. У цьому конкретному випадку віддалений originмає гілку з назвою dev/sub(незалежно від того, є вона у вас чи ні, важливо те, чи є у віддаленого). Для того , щоб створити на originфілію імені dev/sub/master, необхідно спочатку видалити гілку з ім'ям dev/subна origin:
git push origin :dev/sub
(Звичайно, видалення цієї гілки може видалити щось важливе там, тому переконайтесь, що ви знаєте, що робите. Як правило, git fetch originспочатку ви можете захотіти , захопивши їх dev/subяк свої origin/dev/sub. Потім ви можете зробити локальну гілку з іменем, що dev/renamed-subвказує на той самий коміт. , створіть dev/renamed-subна пульті, видаліть пульт dev/sub, а потім створіть dev/sub/masterна пульті.)
Якщо ви можете ввійти на пульт (систему, на якій originрозміщено), ви можете зайти в сховище там і просто перейменувати локальну dev/subгілку. (Виходячи з коментарів нижче, я підозрюю, що там теж є непрацюючий сценарій автоматичного розгортання, який, мабуть, слід виправити лише для розгортання "розгортаються" гілок, а не всього, що штовхається. Але я тут лише здогадуюсь.)