Форкинг из GitHub в Bitbucket - PullRequest
       6

Форкинг из GitHub в Bitbucket

149 голосов
/ 15 ноября 2011

Я работаю над проектом, основанным на CakePHP , который размещен на GitHub . Мой проект размещен на Bitbucket .Они оба используют git .По сути, я хотел бы создать «форк» (я не знаю, правильно ли я использую термины, поскольку я новичок в git ) CakePHP в моем хранилище Bitbucket, чтобыиметь возможность получать обновления без необходимости загружать все CakePHP zip / tar и заменять папку, затем фиксировать и отправлять, но, возможно, с помощью 'merge' (?).

Ответы [ 5 ]

138 голосов
/ 11 декабря 2011

Сегодня невозможно отправить «запрос на извлечение» на разные сайты. Я добавил запрос функции для этого в трекере проблем Bitbucket: # 3288 . Я предлагаю вам добавить себя в качестве подписчика, если вы хотите отслеживать это.

Однако вы все равно можете переместить источник из GitHub в Bitbucket без необходимости загружать любые zip-файлы или архивы. Вы делаете клон из GitHub и отправляете в Bitbucket:

$ git clone https://github.com/cakephp/cakephp
$ cd cakephp
$ git push git@bitbucket.org:mg/cakephp.git master

Сначала я создал mg/cakephp как пустой Git-репозиторий в Bitbucket. Таким образом, вы можете выдвигать / извлекать наборы изменений из GitHub в Bitbucket.

74 голосов
/ 27 февраля 2013

Приведенный ниже рабочий процесс добавляет репозиторий github в качестве нового пульта с именем sync, а битбакета - как origin. Он также добавляет ветку с именем github для отслеживания репозитория github и ветку с именем master для отслеживания репозитория bitbucket. Предполагается, что у вас есть хранилище bitbucket с именем «myrepository», которое пусто.

Настройка пультов

# setup local repo
mkdir myrepository
cd myrepository
git init

# add  bitbucket remote as "origin"
git remote add origin ssh://git@bitbucket.org/aleemb/myrepository.git

# add github remote as "sync"
git remote add sync https://github.com/aleemb/laravel.git

# verify remotes
git remote -v
# should show fetch/push for "origin" and "sync" remotes

Настройка веток

# first pull from github using the "sync" remote
git pull sync

# setup local "github" branch to track "sync" remote's "master" branch
git branch --track github sync/master

# switch to the new branch
git checkout github

# create new master branched out of github branch
git checkout -b master

# push local "master" branch to "origin" remote (bitbucket)
git push -u origin master

Теперь у вас должна быть локальная ветка github, отслеживающая ветку master репозитория github. И у вас должна быть локальная ветка master, отслеживающая репозиторий Bitbucket (по умолчанию ветка master).

Это облегчает выполнение ветки github, затем объединяет эти изменения с веткой master (хотя перебазирование предпочтительнее слияния), а затем вы можете нажать ветку master (подтолкнет ее к Bitbucket).

28 голосов
/ 25 января 2013

Если вы хотите поддерживать репо в актуальном состоянии, используйте два пульта: Github (upstream) и Bitbucket (origin), например:

# Clone original CakePHP source code from Github
git clone --mirror https://github.com/cakephp/cakephp
cd cakephp
# Rename remote from `origin` to `upstream`
git remote rename origin upstream
# Add your Bitbucket repo (this is where your code will be pushed)
git remote add origin https://bitbucket/your/repo.git
# Push everything to Bitbucket
git push --mirror origin

Чтобы получать обновления для CakePHP из Github:

git pull upstream master

Чтобы вставить ваш код в Bitbucket:

git push origin master
15 голосов
/ 25 мая 2014

При создании нового хранилища в BitBucket нажмите кнопку Import repository в правом верхнем углу. Введите URL-адрес https, найденный при нажатии Clone or download в Github для хранилища, которое вы хотите создать.

Дайте вашему хранилищу имя, настройте параметры конфиденциальности, и все!

0 голосов
/ 12 мая 2013

Полагаю, вы просто хотите легко загрузить репозиторий вместе с вашим проектом ... и что вы НЕ будете вносить свой вклад в cakePHP, верно?

если это так, вам просто нужно добавить внешнюю ссылкув ваше репо.

SVN: внешний эквивалент в GIT?

И позже, даже если вы хотите внести свой вклад в cakePHP, вы можете просто сделать это в оригинальном репопросто отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...