Клонируйте репозиторий Git, чтобы я мог обновлять его с оригиналом, но хранить свои изменения отдельно

Заранее извиняюсь за неправильное использование терминологии git...

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

Что я хочу:

  • Чтобы иметь возможность обновлять мой сайт из главной ветки phpbb на мое усмотрение.
  • Чтобы мой репо был приватным (используя bitbucket).

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

  • Клонировать phpbb на мою локальную машину
  • Применить мои текущие изменения
  • Сделайте новый репо на BitBucket
  • И вот тут я в замешательстве - я знаю, что нужно что-то делать с репозиториями remote / origin, но большинство доступных руководств, если вы знаете, как сделать стандартный fork / pull или клон, хотя я хочу, чтобы мой код, возможно, обновлялся происхождение, но я никогда не хочу обновлять их оригинальный код.

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

1 ответ

Обычно нужно держать два пульта: origin (ваша личная вилка) и upstream (настоящий).

  1. Создайте свой приватный форк и клонируйте его (он будет пустым)
  2. Добавьте "настоящий": git remote add upstream <url-of-the-real-one>
  3. Скачать вышестоящие коммиты: git fetch upstream
  4. Принудительно применить вышестоящие коммиты: git reset --hard upstream/master
  5. Теперь ваш локальный репозиторий больше не пуст. Нажмите коммитов для origin: git push
  6. Применить ваши локальные правки, git commit их и git push их

Теперь, если upstream/master изменения ветки, вам необходимо:

  1. Загрузите снова обновленные коммиты: git fetch upstream
  2. Объединить upstream/master перейти на ваш местный master ветка: git merge upstream/master
  3. Если шаг 2 порождает конфликты, вы должны разрешить их
  4. Обновите свой приватный форк: git push
Другие вопросы по тегам