Pobierz żądanie ściągnięcia Github jako zunifikowany plik różnicowy


277

Jak mogę pobrać zmiany zawarte w żądaniu ściągnięcia Github jako zunifikowany plik różnicowy?


Zwykle link do poprawki PR jest wysyłany do osoby, która akceptuje PR.
kenorb

Nie jest to jeszcze zaimplementowane w GitLab , ale utworzyłem żądanie funkcji, więc dodaj do niego swoje głosy.
colan

Odpowiedzi:


486

Aby wyświetlić zatwierdzenie jako plik różnicowy / poprawki, wystarczy dodać .difflub .patchna końcu adresu URL, na przykład:


13
Wielkie dzięki. I jest też .patch. Dlaczego nie jest to widoczne w GUI? Jak należy to odkryć?
Thilo

45
Nie jest udokumentowane utrzymanie przepływu stosu w biznesie. Szczerze mówiąc, to jest FAQ # 2
sehe

Również dlatego, że git pulljest preferowaną metodą pobierania i stosowania zmian.
Tekkub

Ooooch, dzięki, ta odpowiedź jest warta złota. (To także blogowanie.) Zastanawiam się, jak każdy zdrowy rozsądek może bez tego pracować i dlaczego nie jest ujawniany w tak kiepskim interfejsie internetowym.
mirabilos

8
Sądząc po tym, co te zwracają, i linkach w dokumentach na stronie developer.github.com/v3/media/... , .diffURL daje proste różnice w domyślnej gałęzi na podstawie git-diff danych wyjściowych git-scm.com/docs/git-diff , a .patchadres URL zawiera konkatenację poszczególnych zatwierdzeń w PR (każdy względem ich zatwierdzenia nadrzędnego) w formacie odpowiednim do wysyłania wiadomości e-mail na podstawie git-format-patch danych wyjściowych git-scm.com/docs/git-format-patch .
rakslice

49

W pewien sposób, aby pozwolić git pobrać żądanie ściągnięcia 123 i załatać je mylocalbranchlokalnie, uruchom:

git checkout -b mylocalbranch
git pull origin pull/921/head

10
Lub, aby uzyskać żądanie ściągnięcia w nowym oddziale PR, git fetch origin pull/921/head:PRa następnie połączyć się z bieżącym oddziałem, co daje szansę na przejrzenie zmian git merge PR --no-commit --no-ff
MoonStom

4

Wymaga to skonfigurowania Git przy użyciu poświadczeń. Nie możesz anonimowo przetestować proponowanej zmiany (tak jak możesz ręcznie zastosować różnicę). To kolejny przypadek, w którym Git bierze prosty przepływ pracy i utrudnia.
jww

2

Aby wprowadzić zmiany PR do lokalnego repozytorium w stanie przejściowym, ale niezaangażowanym, możesz przejrzeć:

git pull origin pull/123/head --no-commit

I z tego wygenerować plik łatki:

git diff --cached > pr123.diff    
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.