Hier stuiten we denk ik op een belangrijk verschil in filosofie. Als dev,
juist als dev, vind ik vrijwel iedere user error die veelvuldig voorkomt een fout in het design van de software. Het is leuk dat het gefixt kan worden, maar het blijft neerkomen op dat ik een heleboel van mijn tijd, energie, en aandacht moet besteden aan het bedenken wat git van mij wil, in plaats van dat het al werkt op een manier die aansluit bij mijn manier van doen.
Nou wil ik best erkennen dat het niet eenvoudig is om iets te maken dat goed aansluit bij de gebruikers... maar er zijn wel mogelijkheden.
Daarnaast is version control niet alleen "voor als iets misgaat". Het is gewoon een onderdeel van je workflow; je werkt in een aparte branch zodat je teamgenoten geen last hebben van je werk. Je kunt doen wat je wil op je eigen branch, die je ook kunt pushen zodat 'ie veilig gesteld is, en deze pas naar een gedeelde branch mergen als je klaar bent.
Sla de aanmatigendheid maar over, ik weet best waar version control voor is. Maar ook history, blame en dat soort dingen zijn vooral nuttig in contexten waar dingen mis gaan. (Bovendien heb je voor dergelijke basis dingen niet zoveel complexiteit nodig.
Zeker, het helpt ook wel om af en toe de code van anderen door te kijken als preventief middel, en soms is de geschiedenis ook best interessant op zich, maar dat is toch echt een stuk minder in tijd en een stuk minder in belangrijkheid.
Sorry maar er is echt niks gebruikersonvriendelijk aan git. Git add, commit, push, pull, merge en branch zijn eigenlijk de enige die je in een workflow echt nodig hebt. Daar is toch niks complex aan?
Nogmaals:
blijkbaar dus niet. Ik denk niet dat je hier zonder checkout kunt.
Je moet alleen ff weten wat die commando's doen. Of gebruik je alleen maar for-loops omdat while en do-while "gebruiksonvriendlijk" zijn? Die heb je toch ook leren gebruiken? Je weet wat het verschil is tussen een interface en een abstract class toch? Allemaal gewoon een onderdeel van je werk kunnen doen.
Nee, dat is het dus niet. Want interfaces en abstract classes zijn dingen die mijn doel zijn (nou ja, niet echt, omdat mijn focus op wat andere terreinen zijn) maar ze zijn deel zeg maar van de 'productie', van het eindresultaat. Git is een tool, geen doel op zich. Dat is een fundamenteel verschil.
(Maar ook wat code betreft heb ik de neiging om te gaan voor saai en degelijk, en niet voor de meest esoterische flexibele mogelijkheden van een taal.)
Versiebeheer is net zo goed een core skill als het schrijven van tests bijvoorbeeld. Dat jij het daar niet mee eens bent is je goed recht; maar je gaat je hiermee in interviews in je voet schieten als je niet uitkijkt.

Het is aanmatigend en het blijft aanmatigend.
Kijk ik snap best dat ik jouw mening waarschijnlijk niet ga veranderen (en da's je goed recht) maar ik hoop vooral te voorkomen dat beginners denken dat het acceptabel is nooit met git te werken.
Mooie stropop . Maar eh, beginners die meelezen: version control is nuttig en belangrijk, maar laat je niet aanpraten dat het altijd aan jou ligt als software complex is en veel tijd kost en een gigantische learning curve heeft. Soms is dat gewoon een resultaat van slecht design (of van design met hele andere prioriteiten dan die jij hebt.)
Dat maakt je niet minderwaardig, geen mindere ontwikkelaar, niet gek - helaas is de sfeer in de IT nogal eens erg gericht op het op een voetstuk plaatsen van kunstmatige en onnodige barrieres als een soort test van geschiktheid.
En daarom kijgen we veel software die weinig snapt van gebruikers, want daar kijkt men nogal op neer.
Hydra, ik ben bang dat ik je mening niet kan veranderen, maar ik hoop hiermee te voorkomen dat toekomstige IT'ers die rare houding internaliseren.