Вопрос

У меня есть большой Git Reppo, и я хочу разделить это в 2. Я могу сделать это, используя «Git Filter-Fiving» или «GIT поддерева», но оба метода создают совершенно новые коммиты-идентификаторы (SHAS)ОтказЯ знаю, что мы переписываем историю, и это изменит идентификаторы коммимента.

Но мое требование необходимо иметь те же фиксаторы даже после разделения REPOS.Возможно ли это?

<Сильный> Пример:

есть Git Reppo foo-bar.git с ниже, коммиты

*foo-bar.git*
1fd3dsg refs #1 change-1 to foo
4sad2as refs #2 change-1 to bar
3edsads refs #3 change-2 to foo
5adsggh refs #4 change-2 to bar
.

Теперь мы разделяем Reppo foo-bar.git в foo.git и bar.git.Теперь Foo.git получит все коммиты, сделанные для foo и bar.git, получат все коммиты, сделанные для бара, но их идентификаторы фиксации изменились.

Что я получил:

*foo.git*
s43dfsa refs #1 change-1 to foo
a234s2f refs #3 change-2 to foo

*bar.git*
1s3ds3q refs #2 change-1 to bar
3re2ef2s refs #4 change-2 to bar
.

Что я ожидаю.

*foo.git*
1fd3dsg refs #1 change-1 to foo
3edsads refs #3 change-2 to foo

*bar.git*
4sad2as refs #2 change-1 to bar
5adsggh refs #4 change-2 to bar
.

Это было полезно?

Решение

Изменение идентификаторов фиксации неизбежно.Они основаны на изменениях в каждом коммитке, сообщении COMPANCE и родительского фиксатора ID.

Потому что этот родительский идентификатор фиксации изменится, когда вы переставляете один коммиты, идентификаторы коммита не могут оставаться прежней.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top