LINUX.ORG.RU

Как грамотно вытащить мини-проект из гит-репозитория

 


0

1

В общем, есть у меня один большой гит-репозиторий со всеми моими лабораторными (все оформлено по отдельным директориям), курсовыми и еще чем-то со всех курсов, но есть у меня один проект, в рамках учебного курса, который я бы хотел удалить из большого гит-репозитория, оформить как отдельный и добавить его как сабмодуль в репозиторий со всеми лабами. Как мне это правильно сделать ничего не сломав?

Я бы и сам попробовал сделать, но мой опыт использования гита сводится к коммитам, пушам и созданием/сливанием веток, и я не хочу сломать себе репу (окончательно).

А в чём проблема? Тут никакой магии нет. Удаляешь файлы из одной репы, добавляешь их в другую и делаешь вторую субмодулем первой.

eternal_sorrow ★★★★★
()
git subtree split -P <name-of-folder> -b <name-of-new-branch>

И ещё несколько способов. Гугли «git split directory into new repository».

ЗЫ: а суб-модули – это ты зря. Намучаешься ещё больше.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

а суб-модули – это ты зря. Намучаешься ещё больше.

Ну я ими не пользовался, поэтому не знаю. В общем, мне просто нужно чтобы большой репозиторий мог «видеть» маленький. Лучше subtree?

snake266 ★★
() автор топика

Кстати, как можно ветку, которая сейчас стоит на старом коммите master’а, подтянуть к последнему коммиту master’а?

snake266 ★★
() автор топика
Ответ на: комментарий от snake266

Вариант А:

git rebase master
# по дороге чинить, что сломается
git push --force

Вариант Б:

git merge master

Я предпочитаю А (чистая история, но нужен force), но люди которые боятся git делают Б (получается guitar hero в коммитах, но более безопасно для непосвящённых).

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 2)
Ответ на: комментарий от snake266

Лучше или полностью разделить и подтягивать зависимости другим способом.

Либо не мучать попу и оставить всё в mono-repo.

beastie ★★★★★
()
Ответ на: комментарий от slovazap

Человек только освоил git на уровне трёх-колёсного велосипеда.

мой опыт использования гита сводится к коммитам, пушам и созданием/сливанием веток

А ты ему сразу уницикл подсовываешь. ;D

beastie ★★★★★
()
Ответ на: комментарий от beastie

Ну я пока принял для себя такое решение, что я пока делаю репозиторий независимым, ну и параллельно сделаю копию этих репозиториев и будет у меня некоторый локальный playground, в котором я сделаю саб-модуль

snake266 ★★
() автор топика
Ответ на: комментарий от slovazap

Согласен. Сабмодули не уницикл, а независимый камень на шею.

t184256 ★★★★★
()

Вроде git filter-repo для этого. Ну, подразумевая что ты хочешь получить новую репу с нормальной историей и готов убить совместимость со старым репозиторием.

khrundel ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.