Используете «базовый» репозиторий для проекта?

1

Всем доброе утро!

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

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

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

Есть ли какой-либо предложенный метод решения этой проблемы? Спасибо всем за ваше время!

  • 0
    Мой друг предложил вилку. Каждый DashboardRepo, который я создаю, может быть ответвлением ShellRepo, и затем я могу подключить ShellRepo к каждому ответвлению, как при обновлении. Поскольку я стараюсь не перезаписывать файлы в создаваемом мной DashboardRepos, не должно быть конфликтов слияния. Обновлюсь после того, как смогу проверить!
Теги:
github

1 ответ

0

Вы можете сохранить два разных URL-адреса удаленных, один для вашего ShellRepo и второй для вашего DashboardRepo, и перенести изменения из DashboardRepo в ShellRepo.

Например, пусть предполагается, что:

  • Вы уже находитесь в DashboardRepo на master ветке.
  • Вы создали коммит с хешем a1b2c3 с некоторыми общими изменениями, которые вы хотите применить к ShellRepo специально в его master ветке.

Я бы следовал этим шагам:

  1. Добавьте ShellRepo remote в ваш локальный репозиторий: git remote add shell <your remote url>
  2. Переключитесь на ветку, в которую вы хотите применить изменения: git checkout remotes/shell/master.
  3. В этот момент вы будете в автономном режиме, поэтому давайте создадим локальную ветку с помощью git checkout -b shell-master.
  4. Теперь примените изменения: git cherry-pick a1b2c3
  5. Наконец, вы можете отправить это изменение в свой ShellRepo, используя: git push -u shell master.

Затем в любой момент, когда вы захотите переместить изменение, вы можете переключиться на shell-master и выбрать коммиты, содержащие эти изменения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню