2013-02-11 10 views
48

Jestem ciekawy, dlaczego GitHub wzywa zgłoszenia do scalenia, "Wycofaj żądania".Dlaczego GitHub wywołuje zgłoszenia zagraniczne, "Żądanie pobrania"?

Z mojego zrozumienia, git pull spowoduje przeniesienie wszystkich zmian ze zdalnego repozytorium do bieżącej działającej gałęzi. Następnie połącz te zmiany z FETCH_HEAD. (Git Pull)

Spojrzenie na git push ... push spowodowałoby przeniesienie zatwierdzonych zmian do repozytorium. I czy to nie jest to, co robisz z repozytorium Git? Przesłanie "prośby" o scalenie kodu? Dlaczego więc nie nazywa się "Żądaniem wypychania"?

Odpowiedz

57

Termin "żądania pobrania" wynika z rozproszonego charakteru organizacji otwartych projektów. Zamiast przesyłać zmiany do repozytorium (tak jak w przypadku scentralizowanego repozytorium, np. Z Subversion), publikujesz swoje zmiany osobno i prosi opiekuna o o wprowadzenie zmian w ustawieniach. Opiekun może wtedy przejrzeć zmiany i wykonać polecenie ciągnięcia.

+5

Więc w zasadzie "prosisz" chłopaków, którzy mają dostęp do repo, które chcesz wnieść, aby "wyciągnąć" z ciebie repo? –

+1

@ Bluesm To dokładnie to :) – poke

+0

Dziękujemy! Najlepsze wytłumaczenie! Termin "żądanie ściągnięcia" był dla mnie zagadkowy, aż do teraz. –

4

Po wysłaniu łatki do kogoś innego, chcesz ją zmienić na scalić swoją zmianę w jego repozytorium. Teraz, pull jest pobieraniem i scalaniem. Jeśli ta osoba pociągnie twoją zmianę, on też ją zintegruje, a tego chcesz.

1

Po przesłaniu prośby o odciągnięcie, poprosisz właściciela repo, aby wyciągnął zmiany w lokalnym repozytorium (tj. Scalił je). Wtedy to repo zostanie opublikowane (przez git push) do publicznego repo, ale jest to domyślne.

Nie można nazwać tego "żądaniem wypychania", ponieważ nikt nie przesyła zmian, oni je wyciągają.

9

Żądanie pobrania występuje wtedy, gdy osoba, która nie ma dostępu do repozytorium, chce przesłać kod do włączenia do projektu. Na przykład, jeśli masz projekt na github i jesteś jedyną osobą, która ma prawa do zatwierdzania, a ja chcę dołączyć kod do projektu, co mam zrobić?

Rozwidnę twoje repozytorium github i utworzę nowy dział dla mojej pracy. Gdy będę zadowolony z aktualnej implementacji, wyślę do Twojego repozytorium wniosek o numer git pull (ponieważ nie mam uprawnień do bezpośredniego przesyłania). Kiedy robisz git pull masz opcję, którą gałąź chcesz ciągnąć i dokąd chcesz ciągnąć. Być może nie chcesz ciągnąć bezpośrednio do gałęzi master, ale do innej gałęzi, aby zbadać kod.

Ten git book ma ładną sekcję o różnych przepływach pracy w ten sposób.

1

Pchasz zatwierdzenia z prywatnego repozytorium do publicznego repozytorium. Nie możesz jednak wymuszać zmian w repozytorium innej osoby, dlatego prośba o ich pobranie z publicznego repozytorium do ich repozytorium.

Powiązane problemy