Articles

5 Git workflows and branching strategy you can use to improve your development process

Nie spotkałem dewelopera, który patrząc na wiadomość o konflikcie nie wyrywał sobie włosów z głowy z powodu frustracji.

Próbowanie rozwiązania każdego konfliktu scalania jest jedną z tych rzeczy, których każdy deweloper nienawidzi. Zwłaszcza, gdy pojawia się on w momencie, gdy szykujesz się do wdrożenia produkcyjnego!

To właśnie tutaj posiadanie odpowiedniego przepływu pracy Git może zrobić wiele dobrego dla Twojego przepływu pracy.

Oczywiście, posiadanie odpowiedniego przepływu pracy git nie rozwiąże wszystkich problemów. Ale jest to krok w dobrym kierunku. W końcu, z każdym zespołem pracującym zdalnie, potrzeba wspólnego budowania funkcji bez zakłócania pracy bazy kodu jest krytyczna.

Jak go skonfigurować zależy od projektu, nad którym pracujesz, harmonogramu wydań, wielkości zespołu i nie tylko!

W tym artykule przeprowadzimy Cię przez 5 różnych przepływów pracy git, ich zalety, wady i kiedy powinieneś ich używać. Wskakujmy!

Podstawowy przepływ pracy Git

Najprostszym przepływem pracy git jest ten, w którym istnieje tylko jedna gałąź – gałąź główna. Deweloperzy commitują bezpośrednio do niej i używają jej do wdrażania do środowiska staging i produkcyjnego.

Podstawowy przepływ pracy Git
Podstawowy przepływ pracy Git z wszystkimi commitami dodawanymi bezpośrednio do gałęzi master

Ten przepływ pracy nie jest zwykle zalecany, chyba że pracujesz nad projektem pobocznym i chcesz szybko zacząć.

Ponieważ jest tylko jedna gałąź, nie ma tu żadnego procesu. To sprawia, że rozpoczęcie pracy z Gitem nie wymaga wysiłku. Jednak niektóre wady, o których należy pamiętać przy korzystaniu z tego przepływu pracy to:

  1. Współpraca nad kodem doprowadzi do wielu konfliktów.
  2. Możliwość wysłania błędnego oprogramowania na produkcję jest większa.
  3. Utrzymanie czystego kodu jest trudniejsze.

Git Feature Branch Workflow

Obieg Git Feature Branch staje się niezbędny, gdy nad tą samą bazą pracuje więcej niż jeden programista.

Wyobraź sobie, że jeden programista pracuje nad nową funkcjonalnością. A drugi programista pracuje nad drugą funkcjonalnością. Teraz, jeśli obaj deweloperzy pracują nad tą samą gałęzią i dodają do niej commit’y, sprawiłoby to, że w bazie danych zapanowałby ogromny bałagan z mnóstwem konfliktów.

Git feature branch workflow
Git workflow z gałęziami funkcji

Aby tego uniknąć, dwaj deweloperzy mogą stworzyć dwie oddzielne gałęzie z gałęzi głównej i pracować nad swoimi funkcjami indywidualnie. Kiedy skończą swoją funkcję, mogą połączyć swoją gałąź z główną i wdrożyć ją bez konieczności czekania na ukończenie drugiej funkcji.

Zaletą tego przepływu pracy jest to, że git feature branch pozwala na współpracę nad kodem bez konieczności martwienia się o konflikty kodu.

Git Feature Workflow z gałęzią Develop

Ten przepływ pracy jest jednym z bardziej popularnych przepływów pracy wśród zespołów programistów. Jest on podobny do przepływu Git Feature Branch z gałęzią deweloperską, która jest dodawana równolegle do gałęzi głównej.

W tym przepływie pracy, gałąź główna zawsze odzwierciedla stan gotowy do produkcji. Za każdym razem, gdy zespół chce wdrożyć produkt na produkcję, wdraża go z gałęzi master.

Gałąź deweloperska odzwierciedla stan z najnowszymi zmianami rozwojowymi dla następnego wydania. Deweloperzy tworzą gałęzie z gałęzi deweloperskiej i pracują nad nowymi funkcjami. Kiedy funkcjonalność jest już gotowa, jest testowana, łączona z gałęzią developerską, testowana z kodem z gałęzi developerskiej w przypadku wcześniejszego scalenia, a następnie łączona z gałęzią master.

Git workflow z gałęziami feature i develop
Git workflow z gałęziami feature i develop

Zaletą tego przepływu pracy jest to, że pozwala zespołom konsekwentnie scalać nowe cechy, testować je w staging i wdrażać na produkcję. Podczas gdy utrzymanie kodu jest łatwiejsze, może stać się nieco męczące dla niektórych zespołów, ponieważ może czuć się jak przechodzenie przez żmudny proces.

Przepływ pracy gitflow

Przepływ pracy gitflow jest bardzo podobny do poprzedniego przepływu pracy, który omówiliśmy w połączeniu z dwoma innymi gałęziami – gałęzią wydania i gałęzią hot-fix.

Gałąź hot-fix

Gałąź hot-fix jest jedyną gałęzią, która jest tworzona z gałęzi master i bezpośrednio scalana z gałęzią master zamiast z gałęzią develop. Jest ona używana tylko wtedy, gdy musisz szybko załatać problem produkcyjny. Zaletą tej gałęzi jest to, że pozwala ona na szybkie wdrożenie problemu produkcyjnego bez zakłócania pracy innych osób lub bez konieczności czekania na następny cykl wydania.

Po tym jak poprawka zostanie połączona z gałęzią master i wdrożona, powinna zostać połączona zarówno z gałęzią developerską jak i bieżącą gałęzią wydania. Robi się to po to, aby zapewnić, że każdy kto rozwidla się z gałęzi develop, aby stworzyć nową gałąź z nowymi funkcjami, ma najnowszy kod.

Gałąź release

Gałąź release jest rozwidlana z gałęzi develop po tym, jak gałąź develop ma wszystkie funkcje zaplanowane dla wydania, które zostały pomyślnie do niej wcielone.

Żaden kod związany z nowymi funkcjami nie jest dodawany do gałęzi release. Tylko kod, który odnosi się do wydania jest dodawany do gałęzi wydania. Na przykład dokumentacja, poprawki błędów i inne zadania związane z tym wydaniem są dodawane do tej gałęzi.

Po połączeniu tej gałęzi z master i wdrożeniu jej na produkcję, jest ona również scalana z powrotem do gałęzi develop, tak że gdy nowa funkcjonalność zostanie rozwidlona z develop, będzie miała najnowszy kod.

Przepływ pracy Gitflow
Przepływ pracy Gitflow z gałęziami hotfix i release

Ten przepływ pracy został po raz pierwszy opublikowany i spopularyzowany przez Vincenta Driessena i od tego czasu jest szeroko stosowany przez organizacje, które mają zaplanowany cykl wydawniczy.

Ponieważ git-flow jest opakowaniem wokół Gita, możesz zainstalować git-flow w swoim obecnym repozytorium. Jest to prosty proces i nie zmienia niczego w repozytorium, poza tworzeniem gałęzi dla użytkownika.

Aby zainstalować na komputerze Mac, wykonaj brew install git-flow w swoim terminalu.

Aby zainstalować na komputerze Windows, musisz pobrać i zainstalować git-flow. Po zakończeniu instalacji, uruchom następujące polecenie Git git flow init aby użyć go w swoim projekcie.

Git Fork Workflow

Przepływ Fork jest popularny wśród zespołów, które używają oprogramowania open-source.

Przepływ zazwyczaj wygląda tak:

  1. Deweloper rozwidla oficjalne repozytorium oprogramowania open-source. Kopia tego repozytorium jest tworzona na ich koncie.
  2. Deweloper następnie klonuje repozytorium ze swojego konta na swój lokalny system.
  3. Zdalna ścieżka do oficjalnego repozytorium jest dodawana do repozytorium, które jest klonowane na lokalny system.
  4. Deweloper tworzy nową gałąź funkcji w swoim lokalnym systemie, wprowadza zmiany i je zatwierdza.
  5. Te zmiany wraz z gałęzią są wypychane do kopii repozytorium dewelopera na jego koncie.
  6. Prośba o ściągnięcie z oddziału jest otwierana do oficjalnego repozytorium.
  7. Menadżer oficjalnego repozytorium sprawdza zmiany i zatwierdza je do połączenia z oficjalnym repozytorium.

Automatyzacja przepływu pracy Git i strategii rozgałęziania dla lepszej produktywności

Jedną z rzeczy, którymi deweloperzy muszą nieustannie żonglować, jest aktualizowanie narzędzia do zarządzania projektami, aby ich koledzy z zespołu byli na bieżąco. Dlatego w Zepel, nasi programiści automatyzują swój przepływ pracy, dzięki czemu mogą poświęcić więcej czasu na budowanie oprogramowania.

Oto jak zautomatyzowaliśmy nasz przepływ pracy w git, aby wszyscy byli zsynchronizowani:

Przepływ pracy deweloperów z integracjami GitHub, Zepel i Slack
Prosty schemat przepływu pracy deweloperów zautomatyzowany dzięki GitHub, Zepel, i Slack

Pomimo, że Zepel integruje się głęboko z GitHubem, Bitbucketem i GitLabem, my używamy GitHuba wewnętrznie. Tak więc, gdy już zintegrujemy GitHub z Zepelem, nasz zespół programistów konfiguruje automatyzację git workflow w Zepelu. Oto jak to wygląda dzisiaj:

Automatyzacja przepływu pracy git
Automatyzacja Zepel do aktualizacji statusów w oparciu o przepływ pracy Git.

Kiedy programiści robią postępy, nasz zespół automatycznie otrzymuje powiadomienie ze Slacka, a ich zmiany są rejestrowane w historii użytkownika.

Git workflow aktualizuje historię użytkownika w czasie rzeczywistym
Aktualizacje w czasie rzeczywistym dotyczące każdego commitu, pull requestu i zmian w gałęzi.

Twój własny przepływ pracy i strategia rozgałęziania Git!

Przepływy pracy git, które pokazałem w tym artykule, są przykładami niektórych popularnych i najlepiej działających przepływów pracy dla zespołu programistów. Niektóre zespoły tworzą gałąź dla Staging i działa to dla nich idealnie.

Jeśli używasz innych przepływów pracy, które działają dobrze dla Ciebie, tweetnij do nas @getzepel. Chętnie je zaprezentujemy!

development workflow cta button

Pomocne artykuły

Working with Branches: How to Create a Branch in GitHub?
Przewodnik krok po kroku, jak utworzyć nowy oddział w GitHubie, korzystając z ich strony internetowej, aplikacji na pulpit i poleceń terminala.
Vikash KoushikThe Zepel Blog
Git Commit: How to Commit Code Changes to GitHub?
Wyobraź sobie, że Twój wielogodzinny kod znika w ciągu kilku sekund. 😱 Powstrzymaj ten koszmar przed staniem się rzeczywistością, popełnij swój kod na GitHubie. Oto jak możesz to zrobić.
Ranjali RoyThe Zepel Blog
Jak tworzyć pull requesty na GitHubie
Naucz się, jak tworzyć pull requesty na GitHubie i bez wysiłku współpracować na tej samej bazie kodu. Przeczytaj przewodnik krok po kroku.
Ranjali RoyThe Zepel Blog

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *