Как автоматически разделить коммиты на разные ветви? - PullRequest
1 голос
/ 06 октября 2010

Для моих школьных проектов у меня было одно большое репо с несколькими подкаталогами для конкретных проектов.Поскольку у меня не было времени, я всегда что-то фиксировал в ветке master.

Проблема в том, что это оказывается невыполнимым, так как становится все труднее вернуть старые коммиты или выяснить, какиеКоммит относится к тому, что без чтения сообщения.

В настоящее время это выглядит так:

Dir-tree:

projects/
  projectA/
  projectB/
  projectC/
  ...

Репо:

A---B---C---D---E---F---G<master>

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

Есть ли простой (автоматизированный?) Способ (скрипт?)Какая болезненная работа по автоматическому назначению коммитов проектам и созданию разных веток?Я хочу иметь что-то вроде этого в конце:

Репо:

A---C---G<project A>
|\
| \
|  \
|   B---D<project B>
E---F<project C>

1 Ответ

1 голос
/ 06 октября 2010

Вы ищете git filter-branch, используя опцию --subdirectory-filter.

Создание трех веток для трех проектов, которые вы хотите, а затем запуск git filter-branch --subdirectory-filter projectX в этих ветвях должен дать вам желаемый результат.

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

...