разветвить разветвленный проект с оригинальной учетной записью

У меня есть проект на GitHub под названием A, и мой пользователь user1. Позже другой пользователь user2 разделил мой проект A на свой новый проект B. Теперь он достаточно изменил мой первоначальный проект (и название проекта), и я хочу разветвить его проект B на другой проект в моем аккаунте. Я ожидал, что когда я нажму кнопку fork, в моей учетной записи будет создан проект C, но вместо этого браузер перенаправил меня на исходный проект A.

Я знаю, что могу снова перенести изменения, сделанные в проекте B, в свой проект A, но изменения в B важны, и я хочу создать другой проект. Я могу создать новую ветку в проекте A, но мне такой подход не нравится.

Реально ли создать проект C в моей учетной записи (может быть, с 3-м новым именем)? Как я могу достичь этой цели?


person logoff    schedule 16.04.2013    source источник
comment
Я не думаю, что это на самом деле возможно на GitHub, так как у вас будет шанс вернуться к исходному проекту только из форка user2. Возможно, этого можно добиться с помощью API (поскольку GitHub часто скрывает необычные функции интерфейса). Другой способ — просто создать новый проект C в своей учетной записи и добавить в него свой разветвленный репозиторий. Таким образом, у вас не будет ссылки на исходные проекты на сайте GitHub.   -  person poke    schedule 16.04.2013
comment
По каким причинам не перетаскивать изменения проекта B в новую ветку проекта A? ИМО, это путь к философии git!   -  person greydet    schedule 16.04.2013
comment
Проект @greydet B изменился достаточно, чтобы считать его другим проектом, и я хочу изменить проект B настолько, чтобы создать новый проект C. Я написал это соображение, чтобы избежать этого ответа и иметь альтернативы.   -  person logoff    schedule 16.04.2013


Ответы (1)


Вы столкнулись с этой проблемой по той же причине, по которой вы не можете github fork дважды github fork выполнить один и тот же проект из одной и той же учетной записи. Это связано с тем, как github на самом деле определяет форк и как он его обрабатывает. Когда вы разветвляете аля Github, ваше личное репо, полученное в результате разветвления, фактически имеет тот же идентификатор, что и родительский проект. Таким образом, попытка разветвить C из B обратно на ту же учетную запись, которой принадлежит A, невозможна.

Вы должны использовать команды git, очень часто приходится взаимодействовать с несколькими пультами. В локальном репозитории добавьте как A, так и B в качестве удаленных (git remote add <alias_B> <url_B>), а затем извлеките/объедините/перенесите изменения из одного репо в другое.

person Sébastien Dawans    schedule 16.04.2013
comment
да, это реальный ответ, НЕ невозможно разветвить разветвленный проект в той же учетной записи. лучший вариант - создать новый репозиторий C и добавить удалённый в проект B (кроме того, можно добавить проект A). спасибо @poke и @greydet тоже! - person logoff; 16.04.2013