Я работаю над проектом на основе CakePHP, который размещен на GitHub. Мой проект размещен на Bitbucket. Оба они используют git. По сути, я хотел бы создать «вилку» (я не знаю, правильно ли я использую, поскольку я новичок в git) CakePHP в моем репозитории Bitbucket, чтобы чтобы иметь возможность получать обновления без необходимости загружать весь архив CakePHP zip / tar и заменять папку, затем фиксировать и нажимать, но, возможно, с помощью «слияния» (?).
См. stackoverflow.com/questions/1811730/ для хорошего подхода к этому виду рабочего процесса. — person entropid schedule 15.11.2011
Сегодня невозможно отправить «запрос на перенос» через разные сайты. Я добавил запрос функции для этого в трекере проблем Bitbucket: # 3288. Я предлагаю вам добавить себя в качестве подписчика, если вы хотите отслеживать это.
Однако вы по-прежнему можете переместить исходный код из GitHub в Bitbucket без необходимости загружать какие-либо zip-файлы или архивы. Вы делаете клон из GitHub и отправляете его в Bitbucket:
Сначала я создал
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
Если вы хотите обновлять репо, используйте два пульта ДУ: Github (
upstream
) и Bitbucket (origin
), например:Чтобы получить обновления CakePHP с Github:
Чтобы отправить изменения кода в Bitbucket:
Я думаю, вы имели в виду `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В приведенном ниже рабочем процессе репозиторий github добавляется как новый пульт с именем
sync
, а удаленный битовый пакет — какorigin
. Он также добавляет ветку под названиемgithub
для отслеживания репозитория github и ветку под названиемmaster
для отслеживания репозитория битбакетов. Предполагается, что у вас есть репозиторий битбакетов под названием «myrepository», который пуст.Пульты настройки
Настроить ветки
Теперь у вас должна быть локальная
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
Я предполагаю, что вы просто хотите легко загрузить репозиторий со своим проектом … и что вы НЕ будете вносить вклад в cakePHP, верно?
если это так, вам просто нужно добавить внешнюю ссылку на свое репо.
SVN: внешний эквивалент в GIT?
А позже, даже если вы хотите внести свой вклад в cakePHP, вы можете просто сделать это в исходном репо.
При создании нового репозитория в 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
Я заметил, что после ответа @Martin Geisler Bitbucket включил функцию импорта репозиториев с github.com
Мне удалось успешно импортировать частное репо с github.com в частное репо на bitbucket.org
Вот шаги:
Обратите внимание на ссылку на репозиторий импорта в правом верхнем углу снимка экрана