Älä koskaan git force pushaa

Git push –force on erittäin vaarallinen komento, ja pohdiskelimme olisiko sitä mahdollista teknisesti estää, mutta ilmeisesti ei. Jos tiimissä on useampi kuin yksi kehittäjä, git –force push käytännössä tuhoaa aina muiden tiimiläisten tekemää työtä kirjoittamalla etäpalvelimen historian uudestaan poistamalla muiden tekemän koodin. Jos olet ainoa kehittäjä projektissa, –force:a ei tarvitse koskaan käyttää, koska kaikki commitit menevät aina suoraan fast forward:na origin:lle. Tässä Gitlab:n esimerkki eräästä Jenkins-kehittäjästä.

Git is very easy to use and abuse. A single git push --force command can easily ruin the day for a lot of people:
On November 10, 2013, a Jenkins developer had accidentally forced pushed to 186 repositories, bringing them back two months in time.

The power that Git gives you to change history is great when you're working alone, but potentially disrupting if you're working with others, as shown by a poor Jenkins developer.

Kyseinen kehittäjä ehkä force pushasi tosin 186 branchiin eikä repositorioon, mutta kuitenkin on hyvä poistaa –force selkärangasta ja git aliaksista, jos se on sinne päätynyt ja olla koskaan käyttämättä sitä missään tilanteessa. Jos sinulle tulee houkutus käyttää –force:a, luultavasti löytyy joku toinen tapa korjata tilanne käyttämättä voimaa. Tie pimeälle puolelle on nopea ja houkutteleva, mutta johtaa tuhoon.

Koska git:ssä ei näytä olevan mitään tapaa estää teknisesti –force -pushin käyttöä, ainoa mahdollisuus sen estämiseksi on sosiaalinen paheksunta ja Coding Convention. Yksi pieni estä on kytkeä Protected branchit päälle, mikä auttaa vähän, mutta ei varsinaisesti estä force pushia.