Jeśli rozwidlę projekt hostowany na github. Czy rozwidlę wszystkie gałęzie? Skąd mam wiedzieć, na której gałęzi jest oparty mój widelec? Innymi słowy, która gałąź zostanie pobrana na mój komputer?
Jeśli rozwidlę projekt hostowany na github. Czy rozwidlę wszystkie gałęzie? Skąd mam wiedzieć, na której gałęzi jest oparty mój widelec? Innymi słowy, która gałąź zostanie pobrana na mój komputer?
Odpowiedzi:
Wszystkie gałęzie na GitHub zostaną skopiowane w forku. (Oczywiście nie obejmuje to gałęzi, które nigdy nie zostały przesłane do GitHub.)
Ale fork to operacja GitHub-to-GitHub; nic nie jest kopiowane na twój komputer. To nie to samo, co klon Git . Jeśli chcesz zapytać „co jest kopiowane podczas klonowania projektu?”, Zapoznaj się z instrukcją git-clone(1)
.
Pomyśl o tym w ten sposób:
Repozytorium [miejsce] odpowiada wspólnej pracy zespołu w jednym lub wielu oddziałach. Wszyscy współtwórcy mają własną kopię tego.
Każdy rozwidlenie głównego repozytorium odpowiada pracy współtwórcy. Rozwidlenie to tak naprawdę konstrukcja Github (nie Git), która przechowuje klon repozytorium na koncie użytkownika. Jako klon będzie zawierał wszystkie gałęzie w głównym repozytorium w momencie utworzenia forka.
Każda gałąź w forku i / lub w głównym repozytorium może odpowiadać kilku rodzajom rzeczy, w zależności od tego, jak chcesz pracować. Każda gałąź może odnosić się do wersji projektu, ale może również odpowiadać innym kanałom rozwoju, takim jak poprawki lub prace eksperymentalne.
Prośba przyciąganie (w ekosystemie GitHub) odpowiada zadania. Za każdym razem, gdy chcę wnieść odizolowane ukończone zadanie do głównego repozytorium, tworzę żądanie ściągnięcia odpowiadające zatwierdzeniom wykonanym w tym zadaniu. Te zatwierdzenia są pobierane z mojego forka lub mojej gałęzi do głównego repozytorium .
Popełnić to zestaw zmian w kodzie. To jedna z najciekawszych rzeczy w Git. Nie przesyłasz plików, przenosisz dzienniki zmian.
Fork jest klonem po stronie GitHub (klonuje wszystko).
Kiedy klonujesz repozytorium, otrzymujesz całą historię tego repozytorium wraz ze wszystkimi jego gałęziami.
Chociaż teoretycznie można zmienić domyślną gałąź zdalnego repozytorium , klon z repozytorium GitHub szuka głównie gałęzi głównej. Oznacza to, że aby zmienić „domyślną” gałąź, którą otrzyma klon GitHub, musisz zmienić nazwę gałęzi głównej.
Jeśli utworzysz rozwidlenie projektu ze strony Github, otrzymasz wszystkie gałęzie z projektu wyższego rzędu.
Jeśli sklonujesz z nowo wybitego widelca na lokalny komputer, będziesz mieć origin
pilota na swoim komputerze wskazującym na główną gałąź twojego widelca na Github.
upstream
gałęzi jest czymś, co musisz zrobić; i powiedzą ci, jak to zrobić.
Można to bardzo dobrze wyjaśnić. Masz centralne repozytorium na GitHub. Za każdym razem, gdy pobierasz jego klon na swój komputer osobisty, aby wprowadzić jakieś zmiany, ten lokalny klon głównego repozytorium nazywa się rozwidleniem.
Gałąź jest czymś innym i jest zawarta w fork / repo. W rzeczywistości branża to Twoja praca na różnym etapie rozwoju. Tworzy się je, gdy jest to wymagane, aby zapisać zestaw funkcjonalności, dać dostęp różnym użytkownikom, zademonstrować witrynę klientowi itp.
Chciałbym podzielić się przykładem z życia wziętego, kiedy używamy Branches i kiedy używamy Forks
W naszym sklepie mamy GitLab i czasami musimy pracować nad pakietami z projektu Laravel. Zwykle tworzymy gałąź i wprowadzamy zmiany do oddziału, który testowaliśmy w naszym lokalnym środowisku deweloperskim VM podczas pracy z rzeczywistym projektem Laravel.
Powiedzmy, że nasz projekt znajduje się pod adresem
https://github.com/yardpenalty/mainproject.git
Wykorzystanie oddziału:
Powiedzmy, że nazywa się oddział It_doesnt_matter
Gdy już mamy nasz oddział w taki sposób, w jaki chcemy, dla produkcji, następnie dokonujemy ostatecznego wypchnięcia do tej gałęzi i tworzymy żądanie scalenia, które następnie przechodzi do UAT w celu przetestowania. Po przejściu testu przez kontrolę jakości zmiany są wprowadzane do produkcji.
Scalania z It_doesnt_matter
oddziału jest teraz wciśnięty do projektu głównego
w https://github.com/yardpenalty/mainproject.git
Powiedzmy, że projekt pakietu znajduje się pod adresem
https://github.com/yardpenalty/mypackage.git
Pamiętaj, że mainproject używa tego pakietu w środowisku produkcyjnym, więc nie możemy wprowadzać zmian, po prostu wysyłając je do tego pakietu (między innymi). Powiedzmy, że twórca stron internetowych musi edytować ten pakiet, aby wprowadzić zmiany w produkcji.
Prosta gałąź również nie zadziała, ponieważ nie możemy zobaczyć naszych zmian bez opublikowania pakietu itp.
Użycie widelca: Teraz musimy zrobić trochę oszustwa z naszym pakietem, więc tworzymy klon pakietu produkcyjnego za pomocą rozwidlenia. Pliki composer.json można zaktualizować, aby wskazywały rozwidlenie, które znajduje się teraz w ścieżce użytkownika lub grupy
Więc stworzymy rozwidlenie https://github.com/yardpenalty/mypackage.git
i nazwij to https://github.com/yardpenalty/yards/mypackage.git
Teraz możemy zaktualizować nasz plik composer.json , aby wskazywał na ten pakiet w naszych „repozytoriach”: [tablica taka i gotowe!
{
"type": "github",
"url": "https://github.com/yardpenalty/yard/mypackage.git"
}
]