Разветвление с GitHub на Bitbucket

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

См. stackoverflow.com/questions/1811730/ для хорошего подхода к этому виду рабочего процесса.   —  person entropid    schedule 15.11.2011

См. также:  Конвейер Jenkins: как проверить удаленную ветку без запуска оболочки
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 6
  1. entropid

    Сегодня невозможно отправить «запрос на перенос» через разные сайты. Я добавил запрос функции для этого в трекере проблем 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 как пустой репозиторий Git в Bitbucket. Таким образом, вы можете отправлять / извлекать изменения из GitHub в Bitbucket.

    Тогда как мы можем вытащить из восходящего потока? person entropid; 17.07.2014

    @RuchirShukla: в основном так же. Вы должны перемещать коммиты через свою собственную машину, извлекая их из своего восходящего потока. Затем вы отправляете его на другой хостинг-сайт, тем самым синхронизируя их. person entropid; 17.07.2014

    Это отлично сработало для меня, за исключением того, что мне нужно было cd cakephp между двумя командами. Да, это очевидно для не новичков, но новички могут задаться вопросом, почему это не работает. person entropid; 12.02.2015

    Можете ли вы сделать видео на YouTube, чтобы продемонстрировать это? Я не мог повторить это. Я смог выполнить эти инструкции, но когда я нажимаю и фиксирую, он все еще пытается отправить его мастеру вместо разветвленной ветки. person entropid; 26.12.2016

    Это не работает как fork. Ветви и теги НЕ копируются в BitBucket. person entropid; 23.08.2018

    В новом репозитории, в котором нет ничего значительного, что нужно переопределить, вы можете добавить —force после master. например git push https: // [email;protected]/user-name/repo-name.git master —force. Это может вызвать проблемы, но позволяет избежать отклонения при первоначальной фиксации. person entropid; 22.04.2021

  2. entropid

    Если вы хотите обновлять репо, используйте два пульта ДУ: 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
    

    Я думаю, вы имели в виду `git clone mybitibucket / cakephp / cakephp` в первой git команде, верно? Это путь … person entropid; 15.09.2017

    Это просто здорово! Благодаря тонну! Очень признателен person entropid; 14.05.2018

    Это тоже не работает. Ветви и теги не включены в Bitbucket. person entropid; 23.08.2018

    @JoelKarunungan Хорошее замечание! Чтобы протолкнуть все, включая ветки и теги, я думаю, это должно сработать: git push --all --mirror origin. Ответ обновлен. person entropid; 24.08.2018

    @Zubin ты пробовал это? fatal: --all and --mirror are incompatible Также: git pull upstream master Выдает фатальную ошибку. fatal: Couldn't find remote ref master person entropid; 25.08.2018

    @JoelKarunungan Ой, извини, я не понял, что их нельзя использовать вместе. Похоже, что лучше использовать тег --mirror с начальным клонированием восходящего потока и первым нажатием на Bitbucket. Ответ обновлен. person entropid; 26.08.2018

  3. entropid

    В приведенном ниже рабочем процессе репозиторий github добавляется как новый пульт с именем sync, а удаленный битовый пакет — как origin. Он также добавляет ветку под названием github для отслеживания репозитория github и ветку под названием master для отслеживания репозитория битбакетов. Предполагается, что у вас есть репозиторий битбакетов под названием «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'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 ветка, отслеживающая репозиторий битбакетов (по умолчанию master ветка).

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

    Похоже, это не работает, но это хорошая идея. В любом случае исправить, чтобы он заработал? person entropid; 12.05.2013

    Локальная ветка github отслеживает удаленную главную ветку github, а затем вы нажимаете на удаленный мастер битбакета? Когда происходит отправка на github? @aleemb person entropid; 12.05.2013

    @aleemb, значит, если я добавлю репозиторий на github, например, sync, он будет синхронизироваться как push to origin == push to sync? или мне нужно вручную нажать на синхронизируемый репозиторий? person entropid; 27.05.2014

    Я застрял на git push -u origin master. Намек? person entropid; 29.01.2015

    ФАТАЛЬНАЯ ОШИБКА: отключен: поддерживаемые методы аутентификации недоступны (сервер отправлен: открытый ключ) person entropid; 29.01.2015

    Это отлично работает, но не хватает одного шага. вы должны сначала создать ветвь github, чтобы вывести пульт синхронизации в начало раздела Setup Branches. person entropid; 31.03.2015

    В Git 2.2.1 --set-upstream устарел … Но это работает до тех пор, пока вы создаете ветвь github перед попыткой установить репозиторий восходящего потока. person entropid; 16.05.2015

    Вместо —set-upstream выполните: git fetch и git branch --track github sync/master person entropid; 16.12.2015

    Я думаю, что не хватает git checkout github и git checkout -b master после команды git branch. В итоге вы получите эти ветки (git branch -a): github, master, remotes / origin / master, remotes / sync / master. person entropid; 08.06.2016

    @aleemb ваши инструкции работают, но я запутался в том, как сделать git rebase после этого с веткой github, не забудьте объяснить немного больше? Благодарность!! person entropid; 18.07.2018

  4. entropid

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

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

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

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

  5. entropid

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

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

    Это клонирование, а не разветвление, а это совсем другое дело. person entropid; 25.05.2014

    На данный момент на Bitbucket эта функция помечена как «Импортировать репозиторий». person entropid; 20.06.2015

    @entropid вилка — это клон исходного репо. В мире git Forking == клонирование person entropid; 29.06.2016

    @ enorl76 Но не особенно, когда дело доходит до общего пользования. person entropid; 11.11.2017

    @ enorl76 да технически это так. Но fork — это способ сохранить клон подключенным к исходному репозиторию, чтобы получить от него обновления и, в конечном итоге, нажать на него. Именно здесь комбинация «исходных» и «восходящих» ссылок играет фундаментальную роль. Затем Github и Bitbucket создали весь набор инструментов для апстрима, чтобы сделать форк более продуктивным и дружелюбным, например, push-запрос :) person entropid; 04.12.2017

  6. entropid

    Я заметил, что после ответа @Martin Geisler Bitbucket включил функцию импорта репозиториев с github.com

    Мне удалось успешно импортировать частное репо с github.com в частное репо на bitbucket.org

    Вот шаги:

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

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

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: