Синхронизировать два одинаковых проекта, но отдельные репозитории git и с другой структурой пакета - PullRequest
1 голос
/ 04 ноября 2019

Мне нужно синхронизировать два разных репозитория git, но оба репозитория имеют одинаковый код / ​​файлы проекта и разную структуру пакета.

В настоящее время проблема заключается в том, что мне нужно клонировать и отправить изменения 2 раза,Можно ли сделать push в оба репо одним нажатием

Пример

Repo1: com / example1 / demo / DemoService.java

Repo2: com / emample2/demo/DemoService.java

( Примечание: Файлы будут одинаковыми в обоих репозиториях, единственным изменением будет структура пакета)

Теперь, когда явнесите изменения в com / example1 / demo / DemoService.java и нажмите из локального файла в файл example1 и exmaple2, это возможно? Если да, пожалуйста, дайте мне знать, какие шаги необходимо предпринять.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Другим решением вашей проблемы может быть использование подмодулей git (https://git -scm.com / book / en / v2 / Git-Tools-Submodules ).

Вы быодно git-репо, содержащее ваш java-код из примера / demo path в вашем примере, и два других репозитория, по одному для каждого имени пакета.

Не могли бы вы также описать, почему вам нужно использовать один и тот же код в двух разныхрепо с разными пакетами? Может быть, мог бы быть даже лучший способ решить все это.

0 голосов
/ 04 ноября 2019

Это не возможно напрямую, так как изменение структуры подразумевает изменение истории (дерево SHA1 не будет таким же)

Что вы могли бы рассмотреть, это подтолкнуть к промежуточному локальному клону Repo1, который быиметь локальный хук пост-получения.

Этот хук будет:

  • протолкнуть на пульт Repo1
  • и перейти к локальному клонированному Repo2
  • скопируйте файл, который был только что изменен, и сделайте локальный коммит
  • push на удаленный Repo2

Таким образом: одно нажатие и дубликат файла автоматическиобновлено в обоих удаленных репозиториях.

...