Кодинг - это искусство...
64 / 64 / 42
Регистрация: 07.01.2013
Сообщений: 156
|
|
1 | |
Git Забрать/перенести все коммиты, относящиеся к определённому файлу/директории11.01.2018, 09:44. Показов 1933. Ответов 4
Доброго времени суток, форумчане
Дело было так: Разрабатывался средненький по размеру проект, содержащий весьма приличное количество коммитов. Примерное дерево проекта на рисунке(спойлер): Каждая директория является подпроектом основного проекта (НЕ git-submodule), и каждым подпроектом занимались разные разработчики в разных ветках. Но все эти проекты были в одном репозитории. Так как каждый занимался своим, то при merge проблем не возникало. И выходит, что в репозитории получилась целая свалка коммитов, поочерёдно относящихся к разным подпроектам... Теперь появилась задача выделить каждый из подпроектов в отдельные репозитории. Один из этих подпроектов был очень небольшим (где-то 30-40 коммитов). Поэтому я решил поработать ручками:
После чего успешно выгрузил этот подпроект в отдельный репозиторий и сделал его git-submodule-м . Однако другие подпроекты весьма ёмки (несколько сотен коммитов) для того, чтобы маяться с ними подобным образом (вручную) . Сам вопрос(наконец-то): Можно ли перенести коммиты, относящиеся к определённому(-ой) файлу/директории из одного репозитория в другой средствами git? Альтернативный вопрос №1: Ну или, хотя бы, в другую ветку в пределах этого репозитория...? Вопрос последней надежды: В общем... Ну хоть как-то вырвать их из всего проекта с сохранением истории изменений только этих(-ой) файлов/директории НЕ вручную? Заранее большое спасибо всем откликнувшимся !
0
|
11.01.2018, 09:44 | |
Ответы с готовыми решениями:
4
Как перенести коммиты из одной ветки в другую Переместить все коммиты с master в developer В локальной ветве были комиты, но потом сделал check out с origin, в результате все локальные коммиты потерялись Разрешение доступа к определенному файлу в .htaccess |
11.01.2018, 09:55 | 2 |
Решение в лоб: можно написать скрипт, который прокрутит историю пошагово для общего репозитория, и запишет изменения в отдельных каталогах (если изменения есть, что можно определить по выводу
git status ) в отдельные же репозитории. См. параметр --git-dir .
1
|
Кодинг - это искусство...
64 / 64 / 42
Регистрация: 07.01.2013
Сообщений: 156
|
|
11.01.2018, 10:23 [ТС] | 3 |
Ух, да тут уже рождается идея утилитки для решения подобной задачи .
Вариант весьма интересный, спасибо Но пока подожду немного, вдруг кто еще знает какое-нибудь страшное заклинание для решения
0
|
11.01.2018, 10:33 | 4 |
Сообщение было отмечено Sckrejjet как решение
Решение
Можете filter-branch попробовать: https://help.github.com/articl... epository/
1
|
Кодинг - это искусство...
64 / 64 / 42
Регистрация: 07.01.2013
Сообщений: 156
|
|
11.01.2018, 11:12 [ТС] | 5 |
100 баллов Гриффиндору!
Круто, получилось, Вы волшебник! Спасибо огромное!
0
|
11.01.2018, 11:12 | |
11.01.2018, 11:12 | |
Помогаю со студенческими работами здесь
5
Вывести в консоль все файлы и директории, какие есть в текущей директории Ssh команда, на выявление запросов к определённому файлу (с каких ip) Как привязать файл .less к определенному файлу .css? (sublime) Показать все Расширения в директории и суб директории. Путь к файлу относительно директории Помогите отключить юзеров прицепившихся к определенному файлу в расшаренной папке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |