Pracuję nad projektem opartym na CakePHP , który jest hostowany na GitHubie . Mój projekt jest hostowany na Bitbucket . Obaj używają git . Zasadniczo chciałbym utworzyć „widelec” (nie wiem, czy używam właściwych terminów, ponieważ jestem nowy w git ) CakePHP w moim repozytorium Bitbucket, aby móc uzyskać aktualizacje bez potrzeby ściągania wszystkich zip / tar CakePHP i zastępowania folderu, a następnie zatwierdzania i wypychania, ale może z 'merge' (?).
161
Odpowiedzi:
Obecnie nie jest możliwe wysłanie „żądania ściągnięcia” do różnych witryn. Dodałem w tym celu prośbę o funkcję w narzędziu do śledzenia problemów Bitbucket: # 3288 . Sugeruję dodanie siebie jako obserwującego, jeśli chcesz to śledzić.
Jednak nadal możesz przenieść źródło z GitHub do Bitbucket bez konieczności pobierania jakichkolwiek plików zip lub tarballi. Tworzysz klon z GitHub i wypychasz do Bitbucket:
mg/cakephp
Najpierw utworzyłem jako puste repozytorium Git w Bitbucket. W ten sposób możesz push / pull zestawy zmian z GitHub do Bitbucket.źródło
cd cakephp
między tymi dwoma poleceniami. Oczywiście dla początkujących, tak, ale początkujący mogą się zastanawiać, dlaczego to nie działa.fork
. Gałęzie i tagi NIE są kopiowane do BitBucket.Poniższy przepływ pracy dodaje repozytorium github jako nowy pilot o nazwie
sync
i zdalny bitbucket jakoorigin
. Dodaje również gałąź wywoływanągithub
do śledzenia repozytorium github i gałąź wywoływanąmaster
do śledzenia repozytorium bitbucket. Zakłada się, że masz repozytorium bitbucket o nazwie „myrepository”, które jest puste.Konfiguruj piloty
Skonfiguruj gałęzie
Teraz powinieneś mieć lokalny
github
oddział śledzący gałąź repozytorium githubmaster
. Powinieneś mieć lokalnymaster
oddział śledzący repozytorium bitbucket (master
domyślnie oddział).Ułatwia to wyciągnięcie
github
gałęzi, a następnie scalenie tych zmian zmaster
gałęzią (chociaż preferowanemaster
jest ponowne bazowanie zamiast scalania), a następnie możesz wypchnąć gałąź (wypchnie ją do bitbucket).źródło
--set-upstream
jest przestarzałe ... Ale to działa tak długo, jak długo tworzyszgithub
gałąź przed próbą ustawienia repozytorium nadrzędnego.git fetch
git branch --track github sync/master
git checkout github
igit checkout -b master
po poleceniu git branch.git branch -a
Jeśli chcesz aktualizować swoje repozytorium, użyj dwóch pilotów: Github (
upstream
) i Bitbucket (origin
) w ten sposób:Aby pobrać aktualizacje CakePHP z Github:
Aby przekazać zmiany kodu do Bitbucket:
źródło
git
poleceniu, prawda? To jest droga do zrobienia ....git push --all --mirror origin
. Zaktualizowano odpowiedź.fatal: --all and --mirror are incompatible
Ponadto:git pull upstream master
generuje błąd krytyczny.fatal: Couldn't find remote ref master
Tworząc nowe repozytorium w BitBucket, kliknij przycisk
Import repository
w prawym górnym rogu. Wprowadź adres URL https znaleziony po kliknięciuClone or download
w Github dla repozytorium, które chcesz rozwidlić.Nadaj nazwę repozytorium, skonfiguruj ustawienia prywatności i gotowe!
źródło
Domyślam się, że chcesz po prostu łatwo pobrać repozytorium ze swoim projektem ... i NIE będziesz wnosić ciastaPHP, prawda?
jeśli tak, wystarczy dodać odwołanie zewnętrzne do repozytorium.
SVN: zewnętrzny odpowiednik w GIT?
A później, nawet jeśli chcesz wnieść swój wkład w cakePHP, możesz to zrobić w oryginalnym repozytorium.
źródło
Zauważyłem, że od odpowiedzi @Martin Geisler, Bitbucket włączył funkcję importowania repozytoriów z github.com
Udało mi się pomyślnie zaimportować prywatne repozytorium z github.com do prywatnego repozytorium na bitbucket.org
Oto kroki :
Zwróć uwagę na link do repozytorium importu w prawym górnym rogu zrzutu ekranu
źródło