Я работаю над проектом на основе CakePHP, который размещен на GitHub. Мой проект размещен на Bitbucket. Они оба используют git. По сути, я хотел бы создать 'CorkPHP' (не знаю, правильно ли я использую термины, поскольку я новичок в git) в моем хранилище Bitbucket, чтобы иметь возможность получать обновления без необходимость скачать все CakePHP zip/tar и заменить папку, затем зафиксировать и нажать, но, возможно, с помощью 'merge (?).
Вилки из GitHub в Bitbucket
Ответ 1
Сегодня невозможно отправить "запрос извлечения" на разные сайты. Я добавил запрос функции для этого в трекере проблем Bitbucket: # 3288. Я предлагаю вам добавить себя в качестве последователя, если вы хотите отслеживать это.
Однако вы все равно можете переместить исходный код из GitHub в Bitbucket без необходимости загружать какие-либо zip файлы или архивы. Вы делаете клон из GitHub и отправляете в Bitbucket:
$ git clone https://github.com/cakephp/cakephp
$ cd cakephp
$ git push [email protected]:mg/cakephp.git master
mg/cakephp
я создал mg/cakephp
как пустой Git-репозиторий в Bitbucket. Таким образом, вы можете выдвигать/извлекать наборы изменений из GitHub в Bitbucket.
Ответ 2
В приведенном ниже рабочем документе добавляется репозиторий github в качестве нового удаленного устройства, называемого sync
, а удаленный битбакнет - origin
. Он также добавляет ветвь с именем github
для отслеживания репозитория github и ветки с именем master
для отслеживания репозитория битбакет. Предполагается, что у вас есть репозиторий bitbucket, называемый "myrepository", который пуст.
Настройка пультов
# setup local repo
mkdir myrepository
cd myrepository
git init
# add bitbucket remote as "origin"
git remote add origin ssh://[email protected]/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 "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
отслеживала ветвь github repo master
. И вы должны иметь локальную ветвь master
, отслеживающую ретрансляцию битбакет (ветвь master
по умолчанию).
Это позволяет легко втянуть ветвь github
, затем объединить эти изменения в ветвь master
(предпочтительнее перебаза над слиянием), а затем вы можете нажать ветвь master
(она будет нажимать на нее BitBucket).
Ответ 3
Если вы хотите поддерживать репо в актуальном состоянии, используйте два пульта: 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
Ответ 4
При создании нового репозитория в BitBucket, нажмите кнопку Import repository
в правом верхнем углу. Введите URL-адрес https, найденный при нажатии кнопки " Clone or download
в Github репозиторий, который вы хотите разветкить.
Дайте вашему хранилищу имя, настройте параметры конфиденциальности, и все!
Ответ 5
Я предполагаю, что вы просто хотите легко загрузить репозиторий с вашим проектом... и что вы НЕ будете вносить свой вклад в cakePHP, правильно?
Если это так, вам просто нужно добавить внешнюю ссылку на свое репо.
SVN: эквивалент externals в GIT?
И позже, даже если вы хотите внести свой вклад в cakePHP, вы можете просто сделать это в оригинальном репо просто отлично.
Ответ 6
Я заметил, что с момента ответа @Martin Geisler Bitbucket включил функцию импорта репозиториев с github.com
Мне удалось успешно импортировать частное репо с github.com в частное репо на bitbucket.org
Вот шаги:
- Нажмите кнопку "Создать" и выберите "Репозиторий" ("+"> "Репозиторий")
- Теперь вместо создания нового хранилища выберите хранилище для импорта в верхнем правом углу всплывающего окна.
- введите новый URL-адрес репозитория github и учетные данные для аутентификации в новом модале для импорта репозитория.
- Это. Все легко импортируется в битбакет из github.
Обратите внимание на ссылку на репозиторий импорта в правом верхнем углу экрана.