Pytanie Czy prośby o ściągnięcie są częścią Git, czy funkcją takich narzędzi jak GitHub, Gerrit i Atlassian Stash?


Żądania Pull wydają się być popularnym sposobem na sprawdzenie kodu za pomocą Git. Jednak nie jest jasne, czy ten termin oznacza to samo przy korzystaniu z wbudowanego git request-pulllub inne narzędzie.

Czy żądania pobrania są nieodłączną funkcją Git, czy też jest to termin wspólny dla takich narzędzi jak GitHub, Gerrit czy Atlassian Stash?

Czy dyskusja i "wynik" przeglądu kodu są przechowywane w historii zatwierdzania Git lub w osobnej bazie danych?


21
2017-11-29 16:05


pochodzenie




Odpowiedzi:


Żądania wycofania są prostą koncepcją, która powstała po utworzeniu Git, ale od tego czasu została przeniesiona na różne poziomy.

Istotą jest to, że nie masz praw do przesyłania do repozytorium, na które chcesz się przyczynić, więc zamiast tego rozwidlasz repozytorium, robiąc prywatną kopię (klon już to robi) i przyczyniasz się do tego. A później Ty zapytaj opiekuna oryginalnego repozytorium wciągać twoje zmiany. Więc zasadniczo przesyłasz łatkę.

Teraz, jak już powiedziałem, istnieją różne sposoby, aby to zrobić, ale wszystko sprowadza się do prośby opiekuna, aby wprowadził zmiany, stąd nazwa. Pierwotnym celem Git został stworzony dla jądra systemu Linux, a oni rozwijają się za pomocą list mailingowych na zawsze. Tak więc dla nich żądanie ściągnięcia faktycznie wysyła łatkę do wiadomości e-mail; te łatki są w rzeczywistości obiektami zatwierdzonymi przez zwykły materiał komunikacji e-mail - Git ma narzędzia do generowania tego.

git request-pull jest podobnym narzędziem do generowania wiadomości z prośbą o żądanie ściągnięcia. Ale w tym przypadku jest bliższy idei przyciągania. Chociaż łatki można po prostu zastosować, żądania utworzone przez request-pull w rzeczywistości powiedz opiekunowi, aby pobierał zmiany z innego zdalnego repozytorium.

The Git książka ma ten przykład:

$ git request-pull origin/master myfork
The following changes since commit 1edee6b1d61823a2de3b09c160d7080b8d1b3a40:
  John Smith (1):
        added a new function

are available in the git repository at:

  git://githost/simplegit.git featureA

Jessica Smith (2):
      add limit to log function
      change log output to 30 from 25

 lib/simplegit.rb |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

Tak naprawdę jest to tylko narzędzie do generowania wiadomości, aby wykonać podstawową koncepcję.

Inne hosty kodu źródłowego, takie jak GitHub, również to robią. Kiedy tworzysz żądanie ściągania na GitHub, po prostu tworzysz problem, który zawiera dalsze informacje, gdzie zatwierdzenia mogą być pobrane przez opiekuna. Oczywiście wszystkie te elementy znajdują się na jednej stronie internetowej, więc mogą łączyć ze sobą więcej elementów i udostępniać na przykład takie przyciski łączenia za pomocą jednego kliknięcia.

Ale podstawowa koncepcja jest wciąż taka sama: prośba opiekuna o wprowadzenie pewnych zmian, które wprowadziłeś. Jedyną różnicą jest sposób komunikacji tego żądania.


20
2017-11-29 16:16



Cześć, widzę, że cytujesz git-scm.com/book/ch5-2.htmlale ta strona była dla mnie nieosiągalna przez kilka dni. Czy nadal możesz to osiągnąć? - stackunderflow
@stackunderflow To dziwne. Mi to pasuje. Możesz przeczytać ją ze źródła na GitHub zamiast tego. Jest taki sam bez ozdobnej grafiki. - poke
Dzięki, to jest cenne! Tutaj też są dowody na jakiekolwiek problemy: colabti.org/irclogger/irclogger_log/git?date=2013-11-29;text=on Prawie wygląda na złe dla mnie cache DNS. Ktoś musiał to obserwować, ponieważ teraz mogę się do niego dostać git-scm.com/book/ch5-2.html jeszcze raz. - stackunderflow
@stackunderflow Hah! Cieszę się, że znowu działa, D - poke
ch5-2 jest świetny! Zapewnia mnie, że to, co wymyśliłem wczoraj, ma w zasadzie rację: github.com/anaran/LastScrollChrome/blob/master/contributing.md - stackunderflow


The git request-pull Polecenie może być użyte do utworzenia "żądania ściągnięcia" w natywnym git. Po uruchomieniu Git generuje podsumowanie zmian w projekcie i adres URL repozytorium Git, z którego można pobrać kod. Może to następnie zostać wysłane na listę mailingową lub opiekunów projektu, którzy mogą wtedy Ciągnąć w zmianach do ich własnych repozytoriów.

Ta sekcja z Pro Git książka zawiera bardziej szczegółowe informacje na temat git request-pull dowództwo.


3
2017-11-29 16:15