Вилки из GitHub в Bitbucket

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

Ответ 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

Вот шаги:

  1. Нажмите кнопку "Создать" и выберите "Репозиторий" ("+"> "Репозиторий")
  2. Теперь вместо создания нового хранилища выберите хранилище для импорта в верхнем правом углу всплывающего окна.
  3. введите новый URL-адрес репозитория github и учетные данные для аутентификации в новом модале для импорта репозитория.
  4. Это. Все легко импортируется в битбакет из github.

Обратите внимание на ссылку на репозиторий импорта в правом верхнем углу экрана.