Ответ 1
Вы должны развивать проект, да. Однако это не означает, что вам нужно снова клонировать все содержимое локально.
Объяснение: простой способ просмотра репозитория git представляет собой график коммитов (он направлен и ацикличен, но это не имеет значения для этого обсуждения); и все узлы этого графа, т.е. коммиты, имеют уникальный идентификатор во всех репозиториях git в мире. Что касается ветвей, это просто символические ссылки на фиксацию (в выражении git, ветке - или теге - называется refspec).
Кроме того, вы никогда связаны с удаленным репозиторием. Единственное, на что вы действительно "связаны" - это граф фиксации. Удаленный репозиторий просто имеет набор refspecs (ветки, теги)... указывая на граф фиксации, который у них также есть - никто не любит свисающие ссылки. Когда вы клонируете репозиторий, вы получаете граф фиксации (и связанные деревья) и набор refspecs (т.е. Ветви, теги). Параметр refspec указывает на дерево. И об этом.
Это означает следующее:
- у вас есть исходный github repo: график коммитов и связанных деревьев, набор refspecs;
- вы клонировали его локально: тот же граф коммитов и связанных деревьев, тот же набор refspecs;
- вы написали локально: вы добавили этот граф и связанные деревья и добавили новый набор refspecs.
ОК, сделайте следующее:
- клонировать исходное репо на github: тот же граф коммитов и деревьев, что и оригинал; refspecs здесь, только предшествует удаленное имя, которое по умолчанию
origin
. И что теперь? - в вашем локальном репозитории, добавьте свою вилку в качестве удаленного;
- нажмите на эту вилку (это заставит refspecs и деревья);
- отправить запрос на перенос.
Добавление вилки в качестве пульта "просто":
git remote add myfork [email protected]:youruser/theproject
Нажмите на ссылку refspec (branch):
git push myfork mybranch
И затем отправьте запрос на перенос оригинальному автору.
Следует отметить, что теоретически вы можете добавить удаленный сервер в репозиторий git, который вообще не имеет никакого отношения к "оригинальному" репо: это просто, что обе диаграммы фиксации будут полностью не пересекаться друг с другом - однако, варианты использования этого редко встречаются