Príkaz squash (skratka s) spojí commit s tým, ktorý je priamo nad ním v zozname (teda so starším,
predchádzajúcim commitom).
Pri bežnej práci často vznikajú drobné commity typu oprava preklepu, este jedna oprava, naozaj posledna
oprava. Tieto commity majú zmysel počas vývoja, ale vo výslednej histórii len robia neporiadok. squash ti
umožní spojiť ich do jedného zmysluplného commitu.
pick 4d66c25 Pridanie prihlasovacieho formulára
squash aebabf5 oprava preklepu
squash 915e2da este jedna oprava
pick 89f779a Pridanie testov
Pred squashom:
gitGraph
commit id: "4d66c25"
commit id: "aebabf5"
commit id: "915e2da"
commit id: "89f779a"
Po squashi:
gitGraph
commit id: "4d66c25'"
commit id: "89f779a'"
Commity aebabf5 a 915e2da sa zlúčia do commitu 4d66c25, takže vo výslednej histórii ostanú len 2 commity
namiesto pôvodných 4.
Po uložení zoznamu ti Git ukáže kombinovanú commit message zo všetkých zlučovaných commitov a dá ti možnosť ju upraviť do finálnej podoby:
# This is a combination of 3 commits.
# This is the 1st commit message:
Pridanie prihlasovacieho formulára
# This is the commit message #2:
oprava preklepu
# This is the commit message #3:
este jedna oprava
Väčšinou tu vymažeš nepodstatné správy a necháš len tú hlavnú - Pridanie prihlasovacieho formulára.
Note: Skratka
fixup(f) funguje rovnako akosquash, len automaticky zahodí správu zlučovaného commitu bez toho, aby sa ťa čokoľvek pýtala - hodí sa, keď vopred vieš, že chceš ponechať iba správu commitu vyššie.
Dôležité: Aby si mohol niečo squashnúť do predchádzajúceho commitu, musí byť commit, s ktorým sa spája, vyššie (staršie) v zozname.
squashvždy zlučuje smerom “nahor”.