Od czasu do czasu napotykam ten problem.
Powiedzmy, że przeczytałem kod źródłowy railsów, ponieważ napotykam na pewne problemy.
git clone git://github.com/rails/rails.git
Podczas badań coś przetestowałem i teraz mam poprawkę, której chciałbym przyjrzeć się rdzennemu zespołowi railsów. Jak wprowadzić zmiany do rozwidlonej wersji szyn.
Pamiętaj, kiedy sklonowałem, nie sklonowałem wersji rozwidlonej, ale wersję tylko do odczytu.
Nie chodzi o to, że jestem przeciwnikiem rozwidlenia. Po prostu czasami myślę, że zamierzam po prostu przeglądać, a potem chcę coś dodać.
git
github
git-push
git-remote
Nick Vanderbilt
źródło
źródło
Odpowiedzi:
Kiedy klonujesz repozytorium, automatycznie ustawia zdalne wywołanie,
origin
które odnosi się do sklonowanego repozytorium. Wskazuje to teraz na projekt Railsów nadrzędnych, ale to, czego potrzebujesz, to stworzenie własnego rozwidlenia, do którego możesz nacisnąć, a następnie skonfigurowanie pilota, który wskazuje tam, abyś mógł do niego naciskać.Pierwszym krokiem jest kliknięcie przycisku „Fork” na stronie projektu GitHub (zdjęcie z instrukcji GitHub na temat rozwidlania ):
Gdy to zrobisz, znajdź i skopiuj adres URL tego repozytorium. Upewnij się, że używasz adresu URL SSH, który ma dostęp do odczytu i zapisu. Powinien wyglądać mniej więcej tak
[email protected]:nadal/rails.git
, zakładając, że twoja nazwa użytkownika tonadal
.Teraz możesz utworzyć pilota, który pozwoli Gitowi śledzić zdalne repozytorium, wyciągając z niego lub wysyłając do niego w zależności od posiadanego dostępu. Możesz zdecydować się na zastąpienie
origin
tego, do którego będziesz wciskać (czyli liczbę osób, które go skonfigurowały) lub pozostawićorigin
wskazanie na wyższym poziomie i zamiast tego utworzyć nowego pilota. Pokażę, jak wykonać pierwszą konfigurację; druga powinna być łatwa do odgadnięcia.Aby zmienić
origin
na swój fork w GitHub, prawdopodobnie będziesz chciał gdzieś zachować gałąź upstream, więc zmień jej nazwę naupstream
:Teraz utwórz nowego pilota wskazującego na widelec:
A teraz powinieneś być w stanie naciskać na swój nowy widelec:
Kiedy jesteś zadowolony ze zmian, które wprowadziłeś do GitHub i chciałbyś, aby ktoś z zespołu Railsów przyjrzał się temu, masz dwie możliwości. Jednym z nich jest wysłanie żądania ściągnięcia za pomocą GitHub; zobacz dokumentację, aby dowiedzieć się, jak to zrobić. Jeśli jednak masz tylko jedną lub kilka małych łatek, zespół Rails wolałby, abyś utworzył bilet do Lighthouse i załączył łatkę; zobacz instrukcje dotyczące współtworzenia Railsów, aby uzyskać więcej informacji.
edytuj Oto diagram pokazujący, co się dzieje. To, co zrobiłeś, to po prostu sklonowanie repozytorium Rails upstream; więc teraz masz własne repo na własnym komputerze, który odnosi się
git://github.com/rails/rails.git
jakoorigin
:Oto, co otrzymasz, jeśli rozwidliłeś, a następnie sklonowałeś widelec:
Jeśli zastosujesz się do moich instrukcji, oto, co otrzymasz:
To jest tak samo jak wersja, którą otrzymujesz przez rozwidlenie, z tym wyjątkiem, że ma również
upstream
pilota, dzięki czemu możesz śledzić oficjalne zmiany i scalać je z kodem (jeśli utworzyłeś wersję rozwidloną, prawdopodobnie chciałbyś dodaćupstream
pilota jako dobrze).źródło
Bardzo prostym sposobem przełączenia się z trybu sklonowanego do trybu rozwidlonego jest użycie
hub
wrappera z http://hub.github.com/ .Po zainstalowaniu po prostu uruchom
z klonu tylko do odczytu.
źródło
To nie powinno mieć znaczenia. Jeśli chcesz, możesz dodać innego pilota, określając swoje nierozdzielone repozytorium. Wprowadź zmiany w tym.
źródło
Lub, jeśli nie chcesz rozwidlać i zależnie od zespołu konserwacyjnego, możesz stworzyć i przesłać do nich łatkę. Ogólnie rzecz biorąc, udostępniłbyś repozytorium albo przez rozwidlenie na githubie, jak wyjaśniono w innych komentarzach, lub przez własne repozytorium git i przekazanie opiekunom oryginalnego repozytorium informacji do repozytorium i gałęzi, w których chcesz, aby się scalili.
źródło