Как я могу объединить мое отдельное репо, как если бы оно начиналось как форк? - PullRequest
4 голосов
/ 03 апреля 2011

У меня есть два репозитория github, оба из которых я администратор:

Оба были созданы с использованием git-svn из ... svn-репозитория, конечно. Теперь я хотел бы объединить два репозитория в одно связное представление (извините, если моя терминология не точна). Я хотел бы иметь один репо (https://github.com/sghael/OSQA), с несколькими ветками:

  • master - этот файл автоматически синхронизируется с svn и не получает никаких собственных коммитов git. (У нас уже есть эта автосинхронизация с помощью задания cron, которое выполняет git svn rebase)
  • «другой мастер» (назовем его osqaplus ) - мы будем выполнять нашу интеграционную работу в этой ветви, и время от времени мы будем объединять новый контент из мастера.
  • Любое количество веток разработки / возможностей, которые будут разветвлены от osqaplus.

Теперь я хотел бы взять изменения из моего собственного репозитория (ripper234) и добавить их в репозиторий sghael , как если бы я изначально разветвлялся от него . Я полагаю, что это будет достигнуто путем создания нового форка и объединения моих изменений, но я слишком новичок, чтобы пытаться сделать это самостоятельно. Кроме того, когда я просматриваю проект sghael и нажимаю «форк», меня просто перенаправляют в мой собственный репозиторий , и настоящий форк не создается. Нужно ли переименовывать мой существующий репо, чтобы это работало?

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Я понимаю, что вы хотите, чтобы sghael / OSQA был форком ripper234 / osqa.Если это так, то вы должны переименовать sghael / OSQA (например, sghael / OSQA_renamed) и создать новый форк из ripper234 / osqa.

Тогда единственное, чего не хватает, это нажать нужные изменения из sghael /OSQA_renamed к ripper234 / osqa.Одним из способов сделать это является добавление изменений в ваш новый форк (sghael / OSQA) и создание запросов на извлечение или отправка непосредственно в ripper234 / osqa путем добавления его в качестве удаленного в ваш репозиторий sghael / OSQA_renamed.

1 голос
/ 03 апреля 2011

если оба репозитория были созданы с использованием одинаковых опций с git-svn, то коммиты будут идентичны, и оба репозитория уже должны быть форками (в смысле git)

, чтобы увидеть, так ли это, вы можете сделать следующее:

git clone …/OSQA # this will clone the repo and create a remote named 'origin'
git remote add ripper …/osqa
git fetch
gitk --all # you should see all branches, check the svn-history is in fact the same between origin and ripper remotes
...