Z tego co wywnioskowałem to git branchless charakteryzuje się następującymi cechami:
- Każdy commit powinien reprezentować jakąś logiczną jednostkę kodu,
- Commity lokalnie składają się z mniejszych lokalnych commitów, które można dowolnie sobie modyfikować i zmieniać kolejność,
- Po spushowaniu na mastera tworzony jest pull request na mastera przy pomocy takich narzędzi jak Gerrit gdzie można sobie robić code review zanim commit finalnie trafi na mastera,
- Całe flow jest uproszczonym gitlab/github flow gdzie kroki, które można zrobić za pomocą amend lub stash oraz przy użyciu feature branchy są tak naprawdę robione pod spodem,
- Jest jeszcze mało tooli dla gita, które to wspierają taki workflow lub nie są one jeszcze zbyt popularne.
Czy dobrze to rozumiem?
Obstawiam, że w fangach ktoś pomyślał sobie, że każdy programista na gita zużywa np. 2 godziny dziennie i dzięki temu, że uproszczą te komendy to zaoszczędzą ten czas razy 20000 programistów, ale osobiście ciężko mi uwierzyć w ten zysk. U mnie flow wygląda z reguły tak, że robię sobie feature brancha i pierwszego commita, później z 10 razy git commit --amend --no-edit. A później jak dostanę approve w moim PR to zaznaczam squash i wychodzi mi na to samo.