Вытягивание изменений из родителя fork в Git

Как вы извлекаете изменения из родительского элемента fork в Git, особенно в проекте, настроенном на github?

Например, скажем, что я отклонил http://github.com/originaluser/originalproject в http://github.com/myuser/myproject. Я не планирую, чтобы мой проект был постоянным вилкой, так как я хочу поддерживать ветку "dev", чтобы проверить некоторые экспериментальные функции, а затем, в конечном счете, объединить ее обратно в исходный проект.

Таким образом, всякий раз, когда совершаются фиксации в оригинальном проекте, я хочу, чтобы их можно было снести и объединить с myproject. Тем не менее, я также хочу, чтобы иметь возможность вносить изменения в myproject, но еще не сразу создать запрос на перенос, чтобы объединить их в originalproject, пока моя ветка не будет завершена и протестирована. Какой лучший способ сделать это?

Изменить: по умолчанию, когда я создаю локальную checkout/fork моей вилки github для локальной разработки, а затем push/pull изменения, эти изменения влияют только на мою личную вилку. Я никогда не получаю изменений в оригинальном проекте. Как это исправить?

Извините за неверную терминологию git.

Ответ 1

Вы можете добавить родительский репозиторий (вверх по течению) в качестве другой удаленной ветки. Что-то вроде

git remote add upstream ...

а затем вы можете просто git fetch видеть любые изменения, а затем rebase/merge... что угодно.

Ответ 2

Разбираясь с другими ответами, я предпринял следующие шаги на развилке tsc-watch:

git remote add upstream https://github.com/gilamran/tsc-watch.git
git fetch upstream
git merge upstream/master
git push

Разъяснение:

  1. добавление удаленного сервера в качестве апстрима
  2. получить все изменения из апстрима
  3. объединить изменения из ветки upstream в мою ветку master
  4. перенести все изменения в github