Задать вопрос
@sw213

Как добавить отдельную папку в новую ветку?

заливаю проект на гитхаб git add . (все файлы)
потом хочу в новую ветку залить отдельную папку (проект содержит папку client,server)
хочу 1 ветку, в которой лежит и то и то и отедльно ветку где лежит client и где лежит server
Но при следующем добавлении git add client (когда уже на другую ветку переключился) ничего не происходит, и когда ввожу git status, то пишет нечего коммитить, нет изменений в рабочем каталоге
  • Вопрос задан
  • 1797 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Решение предельно простое. Допустим у нас есть проект в котором ветке main лежат две папки: client и server

Команда git subtree push --prefix client origin client отправляет ваш клиент из подкаталога client в локальном репозитории в ветку client внешнего репозитория origin.

Конкретно в этом случае:

git subtree push — запускает команду Git для отправки изменений из подкаталога во внешний репозиторий.
--prefix client — указывает на подкаталог client, который необходимо отправить во внешний репозиторий.
origin — имя внешнего репозитория, куда будет отправлено содержимое подкаталога.
client — название ветки, в которую будут отправлены изменения.

В результате выполнения этой команды, содержимое подкаталога client будет отправлено в ветку client внешнего репозитория origin, как если бы корень репозитория изначально был в каталоге client, т. е. в ветке не будет самого каталога client, там будет только его содержимое.

Аналогично с сервером git subtree push --prefix server origin server
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
yarkov
@yarkov
Помог ответ? Отметь решением.
Ну так всё верно, коммитить нечего. Папка client уже в репозиторий добавлена. Вы почитайте что делает git add. Да и желание странное, ветки под папки выделять. Вы какую проблему решить пытаетесь этим? Выглядит так, будто надо разделить репозиторий на 2 отдельных.
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
при следующем добавлении git add client (когда уже на другую ветку переключился) ничего не происходит

Так если ты добавил каталог со всем содержимым в одну ветку, а потом переключился на другую ветку, в которой их не было, они будут удалены из рабочей копии. Простой вариант обойти это -- скопировать каталог перед переключением веток, переключить, скопировать обратно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽