Przejdź do treści

Jak stworzyć Pull Request w terminalu?

Dziś artykuł z cyklu “Narzędzia świata”, bo opisuję tylko jedno narzędzia, ale za to jakie! Narzędzie nazywa się hub i jest oficjalnym klientem do GitHuba, który “pięknie” się z nim integruje, dzięki czemu mamy świetny CLI.

Baner promujący artykuł

Dla tych, którzy wolą oglądać, zamiast czytać zapraszam na film:

Mój problem

Moja praca developerska opera się na uruchomieniu 3 okien:

  • IDE
  • terminal
  • przeglądarka

Jeśli chcę dokonać zmiany w IDE albo w terminalu to dokonuję tej czynności w sposób płynny (bez opóźnień). Natomiast przeglądanie stron internetowych czy korzystanie z narzędzi w oknie przeglądarki daj mi opóźnienia związane z warstwą sieciową np. pobieranie całej strony, na której chcę tylko kliknąć 1 malutki przycisk Create Pull Request.

Chciałbym mieć możliwość tworzenia Pull Request-ów z terminala - traktuję tę warstwę jako tzw. sterującą. Z tego miejsca zarządzam projektami, pobieram aktualizacje, czy sprawdzam hasło do Wi-Fi.

Chciałbym wykorzystać terminal do tego, aby stworzyć Pull Request. Okazuje się to możliwe, a nawet przyjemne!

Instalacja narzędzia “hub”

W README.md projektu znajdziesz instrukcję jak zainstalować ten soft. W moim przypadku wydałem następujące polecenie:

brew install hub

Tworzymy Pull Request w terminalu

Wykorzystując hub stwórzmy Pull Request:

Sposób 1

  1. Tworzę feature-brancha

     git feature test-hub
    
  2. Tworzę dowolną rewizję (moim przypadku będzie pusta)

     git commit -am 'Empty revision' --allow-empty
    
  3. Publikuję branch na origin (w przeciwnym przypadku dostaniecie błąd Unprocessable Entity (HTTP 422))

     git push origin feature/test-hub
    
  4. Tworzę Pull Request definiując dla niego tytuł ⭐️

     hub pull-request -m "Test PR created with hub"
    

Efekt wykonania powyższych poleceń dostępny jest tutaj https://github.com/piecioshka/webinar-testowanie-kodu/pull/2

Sposób 2 (dla mnie optymalny)

  1. Tworzę feature-brancha

     git feature test-hub-2
    
  2. Tworzę dowolną rewizję (moim przypadku będzie pusta)

     git commit -am 'Empty revision' --allow-empty
    
  3. Tworzę Pull Request definiując dla niego tytuł ⭐️

     hub pull-request -pm "Test PR created with hub"
    
    • parametr -m pozwala na zdefiniowanie tytułu Pull Requestu
    • parametr -p publikuje lokalny branch na origin

Efekt wykonania powyższych poleceń dostępny jest tutaj https://github.com/piecioshka/webinar-testowanie-kodu/pull/3

Sposób 3

  1. Tworzę feature-brancha

     git feature test-hub-3
    
  2. Tworzę dowolną rewizję (moim przypadku będzie pusta)

     git commit -am 'Empty revision' --allow-empty
    
  3. Tworzę Pull Request ⭐️

     hub pull-request --no-edit -p
    
    • parametr -p publikuje lokalny branch na origin
    • parametr --no-edit kopiuje commit message z pierwszej rewizji i traktuje jako tytuł Pull Requestu

Efekt wykonania powyższych poleceń dostępny jest tutaj https://github.com/piecioshka/webinar-testowanie-kodu/pull/4

Feedback

Dajcie znać, jak Wam się korzysta z hub. Czy przyspieszył on Wasz workflow?