¶ Hinweise
Moin zufolge 25 von einfach komplex. Burkhard ist wieder da. Mein Burkhard Moin Gerrit so und zwar soll es heute gehen um Versionsverwaltung spezifischer sogar um Git, wahrscheinlich die berühmteste Versionsverwaltungs so geht. Aber Burkhard, in der Historie gab es ja auch noch andere Systeme, hab ich schon gehört, die dazu verwendet wurden, oder? Also ja ja, mich gibt es schon länger als geht, insofern auseinander Sachen genau, ja ich
hoffe wir werden euch nicht. Also Gerd hat schon hier so n hat mich heute schon n bisschen demotiviert heute morgen meinte ich hab schon geguckt Podcasts über Git. Aber ich glaube, er fand sie alle noch nicht so richtig überzeugend. Also haben wir, also bin ich doch wieder motiviert, um zu gucken, ob wir geht irgendwie auch mal n bisschen lustig und überzeugend erklären können.
OK, ich wollte nicht demotivieren, das tut mir leid, wenn ich das gemacht habe, demotiviert auch, aber mir ist das Wort nicht eingefallen, aber demotivierend, bevor du schneidest k genau bevor wir dann aber ein G reingehen und die versionsverwaltungs lasst mich einen Hinweis geben, wir haben ja Discord Server wo wir ja mit ja Hörerinnen und Hörer diskutieren können, so viel wird der Discord Server noch nicht genutzt, aber wir haben jetzt dort Feedback.
Bekommen, das wären Folge 20 und 22, hier und da mal kleine Fehler eingebaut haben, natürlich nicht und nicht mit Absicht, ja, aber das passiert natürlich bei den ganzen Inhalten, kann können wir kann wird auch nicht alles auf dem Schirm haben, ja wen interessiert was genau
schiefgelaufen ist. Soll sich bitte bei Discord anmelden, der Link ist in den Show Notes und wir haben überlegt wir wollen jetzt nicht folgende kleine Korrektur wieder einspielen, sondern wir machen vielleicht irgendwann eine große Ja Shame on US Folge wo wir dann irgendwie fehlerchen korrigieren die aufgelaufen sind ist aber nichts gravierendes 4 lustige Idee, da freu ich mich schon drauf haben auf jeden Fall ein bisschen dabei heute morgen also heute ist nämlich morgen ist ihr
nicht. Heute können wir nicht nebenbei Kaffee, sonst dahin ne gut das nur zur Vorrede. Ja und dann lass uns in die Versionsverwaltung einsteigen
¶ Versionsverwaltung
und ich vermute du hast irgendeine Art von Einführung, aber ich würde erstmal interessieren was ist Versionsverwaltung beziehungsweise warum ist sie eigentlich so wichtig und wie sieht die Welt ohne
Versionsverwaltung aus? Du hast dann wahrscheinlich nicht schon Erfahrung gemacht ne o. Die Welt ohne Versionsverwaltung, die kenne ich fast gar nicht, ich glaube die haben die Entwickler manchmal immer noch, so ist relativ, das wäre schon krass, ja ohne Versions, also Versionsverwaltung in der Software ist Brot und Butter. Also es gibt eigentlich keine Software mehr, die die ohne Versionsverwaltung geschrieben wird. Ja, weil das so essentiell ist.
Ja, selbst wenn du alleine schreibst, ist es noch essentiell irgendwie, warum weil weil weil, weil du so eine Software ja nicht außer der Autor von G. Selber hat das irgendwie n paar Monaten zusammengestellt hat, vielleicht sogar verzichten können, nämlich Linus Torvalds aber gleich ne, weil du, weil du ja an einem Softwareprojekt irgendwie das machst du nicht an einem Tag fertig und dann ist fertig, sondern das dauert ja im Moment und du gehst ja auch
nicht, also es sei denn du bist der Mozart, der Softwareentwickler geht das ja nicht ohne Fehler von vorne nach hinten, sondern du stellst dann irgendwann fest meine Entscheidungen vor einer Woche. Ich weiß auch nicht, dann nicht hin und dann musst du wieder zurück, damit er auch nicht alles zurück machen hast. Vielleicht anderen Teilen der Software gearbeitet und so weiter. Das heißt, du brauchst irgendwie was dabei hilft. Genaue Historie zu wissen wann hast du was gemacht?
Damit musst du auch selber ein bisschen was rein, also nicht nur das kann nicht komplett abgenommen werden, muss halt immer schreiben, was hab ich gemacht tatsächlich und warum kommen wir gleich zu? Aber wenn du das hast, dann du. Willst halt sauber was rückgängig machen können. Ja bestimmte astala Aspekte sogar vielleicht rückgängig machen können, ne. Das ist das eine, was du auf jeden Fall brauchst. Dann hab ich schon genommen. Ich weiß gar nicht, welche Folge ist auch egal.
Wenn du Software im schreibst, was der typischer typischerweise der Fall ist, dann kann man sich so vorstellen, als würden irgendwie 1020 Leute nach dem großen Team ist an einem Buch schreiben, was gefälligst irgendwie dann, wenn es fertig
ist sehr lesbar ist. Ne Einleitung hat einen roten Faden und so und wo du auch gar nicht merkst, dass 20 Autoren waren, sondern im besten Fall liest sich das wie aus einem Guss und jetzt kannst du überlegen n probieren, würdest irgendwie 20 Leute die ein Buch schreiben, ja und dazu eine Idee. Äh, die dürfen ja alle Ideen haben zu allen Kapiteln. Also du willst nicht auch du schreibst Kapitel 1, du Kapitel 2, das wäre einfach, aber die schreiben alle gleichzeitig im ganzen Buch rum.
So so kann man sich vorstellen Software und wenn du das nicht koordiniert mit dem System wo die wo die ihre Konflikte, ja sie wollen an der gleichen Stelle editieren im Buch, ja weil der weil der eine findet, die Geschichte soll so weitergehen und der andere so, wenn du das nicht irgendwie koordinierst technisch, dann kannst du dir schon vorstellen wie das dann aussieht und lesbar ist.
Zum Schluss ja, also dafür brauchen wir wir brauchen, dafür sind Kontrolle, Software ist einfach quasi Texte entsteht großer Langer. Den Text von vielen Leuten geschrieben und die Versionskontrolle sortiert, den ganzen Kram aus, sodass zum Schluss irgendwie sauber wird. Ja, dass du uns zurückgeben kannst und dass du siehst, wer hat was gemacht. OK, ich glaube das Beispiel hast du in einer der echt letzten Folgen, also noch nicht so lange her, dass du dieses Buch Beispiel gesagt hast.
Und jetzt hat vielleicht jeder schon mal ein Buch geschrieben, aber ich glaube, wir kennen ja alle die ganzen Office Dateien, weiß ich, Verträge, irgendwelche Pamphlete, irgendwelche, ja memos die man vielleicht schreibt und dann auch im Team schreibt der Google Street oder wie das heißt von Google oder
Halt bei bei. Office 365 inzwischen kann man sich ja heutzutage dieses ganze V 1 v 2 v 3 V final V, final final und so weiter irgendwelchen Bachelorarbeit oder Masterarbeit irgendwas geschrieben hat, der überhaupt einen längeren Aufsatz vielleicht schon kennt, das vielleicht so ne und ich noch dazu.
Wenn ihr stell dir mal vor, du schreib und dein Hauptquartier heißt irgendwie, will ja jetzt hast du irgendwie eingeschrieben und das ist immer da und dann vielleicht noch die seine Freundin, die oder so ja kommt auch vor und jetzt überlegst du dir a Bild n richtig blöder Name aus irgendeinem Grund ja jetzt den Umbenennen, der soll halt Werner heißen oder so ja. Das ist mal Factoring bei der Software und jetzt musst du halt an jeder Stelle wo Bild vorkam den Werner einführen.
Das geht jetzt einfach bei Word auch, also Search replace kennen wir, das heißt aber, dass du halt quer durch das ganze Buch wurde, immer aufkommt, ne kleine Veränderung machst.
Ja und und wenn du halt mit mehreren Leuten machst, die dann vielleicht auch schon ne, also zum Beispiel du bist dein, du schreibst nicht alleine und mindestens zu zweit und dein Kollege, der ist irgendwie gerade auf der Insel, er sich gut entspannen kann, einen tollen Beitrag zu deinem Buch schreiben, der kriegt ja gar nicht mit, dass du jetzt gerade mal den Bild zum Werner gemacht hat und der schreibt immer noch
einen mit. Bilder und und wenn ihr dann wieder quasi in die Hauptlinie des Buches Reinpackt, dann hast du einen Werner und Buche, das ist der, dann ist der Leser, der komplett verwirrt so und genau das alles wird dann aussortiert durch. Durch Technik und auch durch Prozesse, die da drüben etabliert werden und auf beides
gehen, glaube ich. OK, das war ne coole Einleitung, also Versionsverwaltung erlaubt, Anpassungen diese transparent zu machen in diesen Code oder in was am Ende auch Textdateien letzten Endes sind und sorgt dafür, dass es dann eben auch für alle nachvollziehbar ist, was dort passiert ist, indem man vielleicht kommentiert oder irgendwelche Notizen mit abspeichert, das glaub ich so angerissen gerade ja prima, hast
noch hinzufügen sonst. Ja, ich hab was auf der Zunge, was ich vorbereiten will, ich nämlich. Ich hab nämlich eine dieser Folge eine Wendung zu geben, eine vielleicht überraschende, aber das ich will eine sagen was das System technisch leisten muss ist quasi kleine Blöcke von
Editierungen verwalten. Wenn ich jetzt nicht anfange und fange anzuschreiben, dann schreib ich vielleicht eine halbe Seite, oh da habe ich Wein getrunken, Schwein oder so und dann will ich diese 2 Seiten einspielen in dieses dieses Versionierungssystem also habe ich wieso ne Art Block von von Content. Bei uns Software als Code. Und dann mach ich weiter. Und was dieses System leisten muss, ist, dass die das immer diese Blöcke sauber aneinander
hängt. Ja in einer Kette quasi einen Block nach dem anderen und dass ich quasi immer und zu jederzeit
manipulationsfrei weiß. Ich kann auch zurückgehen ja also ich kann dann quasi wenn ich ich sag mal 10 abschnitte geschrieben hab 10 Blöcke gemacht hab mal geschrieben habe ich gerade gemacht, dann kann ich halt ganz transparent zurückgehen und gucken an welchem Tag, zu welcher Uhrzeit hab ich was verändert in diesem Buch, ja weil diese Blöcke quasi kryptographisch sauber aneinandergereiht sind, so funktioniert geht intern auch ja.
Mehr sag ich mal nicht. Also vielleicht der gewiefte Zuhörer, der bei dem, bei dem schon irgendwas geklingelt mit Block und einander hängen und kryptographisch und so, aber wenn es klingt, ja gut, lustigerweise ist in einem der Podcast ich zur Vorbereitung gehört habe, auch die Blockchain dann entsprechend h sehr schön ja jetzt auf ein aufmerksamer mit Podcast, das ist cool, ja, die die Blockchain, die werden wir nochmal kurz anrufen und dann machen wir noch eine
Blockchain, aber wer geht gut verstanden hat, der hat schon 90% der Blockchain verstanden und das geile ist ja ich, ich sag jetzt. Wir haben das coole ist ja das Git. Ich würde sagen, ja, klar, also wir können ja alle jetzt irgendwie die Bitcoin und so. Das ist ein bisschen speziell, aber wirklich in der krassen Anwendung und verteilt und und und.
In vollen Einsatz ist die Blockchain und ich, ich sage es ist nicht ganz eine Blockchain, da streiten sich die Geister, was ist wann Blockchain, aber g ist schon. Ziemlich krasse Block also ziemlich nach einer Blockchain und das ist voll im Einsatz, überall ja, und zeigt den coolen Nutzen von so einer Technologie, ja. Also an dieser Stelle ist es richtig, richtig nice so.
Ich erzähle nachher noch mal, warum es nicht ganz so ist wie Blockchain, die wir heute unter Blockchain verbinden, weil das ganze Proof of Work nicht dabei ist.
Das wäre schlecht, es ist nämlich, das ist nämlich jetzt, mache ich gerade Überleitung, das ist nämlich einer der Designgründe überhaupt, der Hauptgründe gewesen, warum geht entstanden ist, nämlich Performance, müssen wir ganz kurz, wenn ich einhaken darf, dann noch mal zu kommen oder von Versionsverwaltungs zu git und dann nachher, ich glaube, wenn, dann geht, erklärt ist oder noch mal das Ganze wäre sowie jetzt verwendet wird, dann wahrscheinlich den Schließen.
Zur Blockchain. Aber wir machen ja genau Versionsverwaltung ist klar, jetzt haben wir schon gehört, es gibt Ähnlichkeiten zur Blockchain auch, aber dann lass doch anfangen mit Einführung git ja was ist git, ja warum ist gerade das das Versionsverwaltungssystem was wir uns jetzt herausgepickt haben und wie ist es so gekommen, da hast du auch schon Linus Torvalds erwähnt.
Ja genau, also wir wollen nicht so lange Geschichten machen, das kann jeder auch bei Wikipedia nachlesen, aber genau so grob gesprochen ist der Linus Torvalds ist ja der ja der Hauptautor des Linux Betriebssystems und wacht quasi auch über diesen ganzen Linux. Wie heißt der Kanal? Sind quasi das Betriebssystem von von Linux und da kann man
¶ Historie zu Git
sich vorstellen, dass er nicht alleine, sondern eine riesige Menge von von Mitentwicklern entwickelt an dem Linux System und machen das besser, also Veränderungs quasi und der arme Linus Torvalds, der ist auch so ein bisschen invent dictator irgendwas aber den also man kann sich vorstellen, dass die ja dass fast alles an Veränderungen bei ihm irgendwann auf dem Schreibtisch vorbeikommt und sich das angeguckt, ob das
passt. So ja, und wenn das so sein soll, dann braucht er halt ne versionssystem ja weil die Sachen kommen ja synchron ja vorbei und dann gibt es noch eine Anmerkung, dann geht das. Zurück kommt nochmal vorbei und in der Zwischenzeit sind andere Sachen vorbeigekommen und so weiter und sofort. Ja, für den ist das, für den ist so ein System zu haben, das total transparent und sehr schnell diese ganzen Sachen irgendwie darstellt.
Was würde jetzt passieren, wenn dieser Schnipsel noch eingefügt wird und so also das sogenannte Ding ne also sowas vorher sieht es danach aus und so weiter für den ist das Ultra wichtig ja und Linus Torvalds selber mega genervt um um 2000 muss ich n bisschen um 2005 herum gab es nämlich zwar Systeme die Versionsverwaltung gemacht haben, aber die waren halt alle irgendwie auch n bisschen langsam. Ja, und der liegt in der Linux Con ist auch mal richtig dickes
Buch so das braucht halt. Also wenn du dann langsam bist, dann dauert es halt einfach Zeit bis also durch waren die langsam wahrscheinlich weil es in ein zentrales System war.
Ja genau das war ein zentrales System, was heißt zentral, also das heißt quasi, dass dein, dass deine Single Source of Truth, also dein Buch quasi an einer Stelle auf einem zentralen Server quasi gehalten wird und alle die daran arbeiten, die schicken quasi ihre Blöcke, also ihre Änderungswünsche quasi gegen diesen zentralen Server. Das setzt voraus, dass du
irgendwie Internet hast. Das setzt voraus, dass diese Zentrale. Könnt ihr irgendwie relativ performt ist und so weiter so waren die meisten und dann kam noch dazu, dass auch ein, ich glaube es war Bitkeeper genau 1 von diesen Control Management System wie man sagt es CM auch die Abkürzung die haben glaub ihre Lizenz noch wechselt irgendwie und es war irgendwie frei und sollte nicht mehr sein und dann hat dann hat irgendwas gesagt nee jetzt wir brauchen
irgendwas schnell ist was frei ist und was alles diese was meine großen Anforderungen System erreicht dann nicht gibt keins was machst du Softwareentwickler sich selber? Weise hatte das, Glaube ich, in ein 2 Monaten unter Gekickert so. Ja, also die erste funktionierende Station von Gitta hatte glaube ich im April 2005 angefangen und ich meine irgendwie Monat später hat das Ding schon den ersten Release gemacht, quasi wann hast du das erste Mal davon gehört oder warst du da schon aktiver
Softwareentwickler 30 nicht? Ja, mich hat das voll, mich hat das auch voll aus dem Hocker gehauen, ich habe vorher SVN benutzt, das war das Subversion hieß das wardas.de facto System, zu der Zeit habe ich noch am European XL programmiert, auch mit einer ganzen Gruppe und hatten unsere Versicherung quasi und das war ein zentrales System darauf. Gestellt mit den ganzen Nachteile.
Ich hatte die jetzt hier nicht ausbreiten, aber das war schon schmerzhaft, auch für mich als Gruppenleiter drauf zu gucken und so und alles zu koordinieren. Wir hatten auch ein mega Fail kurze Anekdote im. Ich hab da mal nicht aufgepasst irgendwie und das war auch nicht ganz so sicher gegen du konntest das auch richtig auseinander treten irgendwie wenn du da nicht aufpasst hast.
Das wurde irgendwie in sich gehabt oder nicht korrupt vielleicht, aber so unüberschaubar mit den Kommerz, dass irgendwie nicht mehr und nicht gekommen bist.
Und ich hab tatsächlich, und jetzt kann man mal sehen, wie wichtig so ein versicherungssystem, ich musste tatsächlich fast n fahren, ganzer Monat Entwicklungsarbeit die Bäche Runtertreten von meinem Team, weil wir jetzt nicht mehr geschafft haben, aus diesen ganzen verzettelten Branches, wie man das nennt, also aus diesen Einzelanforderungen ein gesamtes Bild zu schaffen.
Wir haben es nicht geschafft. Du kannst dir vorstellen, also es wurden so viele Extrakleine Kapitälchen geschrieben und wir haben es nicht geschafft, dieses eine Buch so hinzufügen, dass das Buch halt fehlerfrei lesbar, also der Code funktioniert nicht mehr und mussten zurück an die Stelle, wo es noch ging. Ja natürlich mein Fehler. Aber vielleicht auch ein bisschen von der Technologie, weil die halt nicht so
überschaubar war. Ja, und das und das ist einfach, ja, ich würde sagen mit kann heute sowas nicht passieren, weil das nicht dazu, also das lässt sich nicht dazu führen, dass du irgendwie komplett in die Hölle trittst.
So, ja, und das ist mein Team, war natürlich sehr dankbar dafür, dass ich gesagt habe, jetzt müsst ihr noch mal anfangen und Entschuldigung, die letzten 2 Tage waren für n Arsch so, jetzt könnt ihr nochmal neu machen und so krass ich hoffe, dass sie mir nie wieder in meinem Leben, aber lernt so, ja und das zeigt wie komplex und wie also der Prozess an sich auch schon im großen Team Software entwickelt und wie gut man das Tool verstanden haben muss.
Damit umgehen muss damit s. Klappt es dann so, dass tatsächlich, ich sag jetzt mal an einem Feature, zum Beispiel wenn du sagst Kapitel, aber ich würde jetzt einfach ein Feature, das irgendwas mit der Software, das typischerweise an diesem Feature auch mehrere Entwickler und Entwicklerinnen arbeiten oder hat, dann schon jeder seine Domäne und es gibt nur bestimmte Bereiche im Code, wo dann doch wieder mehrere zusammenkommen.
Das ist total individuell, das ist so wieder wie die Entwickler das Team Bock hat oder der Manager von dem Team und das darf überhaupt keinen Einfluss haben auf das Tool, was wir heute besprechen muss abbilden genau kommen, aber ich n bisschen dieses Thema. Es gibt natürlich konfliktreichere Prozedere mit so einem Team, mit so einem Tool
zu arbeiten als andere. Machen wir Schluss, passt völlig, hat mich interessiert, weil man könnte ja auch sagen, warum hat nicht jeder wirklich an die Entwicklerin einfach ein Kapitel und macht das fertig, Enns zusammenbauen, aber es gibt offensichtlich die Anforderungen, dass auch gemeinsam an Themen einfach gearbeitet wird, an den gleichen Themen genau und du hast ja solcher Programming.
Manchmal hast du Features ziemlich dick ist ne, also ein Feature kann ja was ganz Kleines sein, manchmal einfach einen Teil sagt irgendwie keine Ahnung, der Knopf der soll jetzt noch das können das kann ein Entwickler an einem halben Tag. Frauen plus Tests und dann hast du ein anderes Feature, keine Ahnung irgendwie. Wir müssen hier das Authentifizierungssystem umstellen, dauert auf einmal 2 Monate und schafft gar nicht einer alleine.
Ja so Feature ist nicht gleich Feature und ist auch nicht gleich Bug, aber da wie gesagt lass uns noch ein bisschen verschieben total sprechen wir nachher ja gut dann ist 2005 und Linus Torvalds hat er gesagt Mensch hier Linux Kernel lässt sich mit mit Bitkeeper hast du gesagt ich soll verwalten und versionieren ich habe es raus genau und dann war da und hat sich dann verbreitet in der Community.
Ja, wieso ein? Das ist so wie in den sozialen Medien, das Ding ist viel gegangen und heute, ich glaube, es gibt nichts mehr anderes als geht auf der ganzen Welt, es ist also alle nutzen geht, ich habe jetzt gehört, dass hier und da dann vielleicht auch gerade da, wo er auf Windows vielleicht entwickelt wird, vielleicht hier und da noch mal Subversion benutzt wird, aber aber das sind ja die sollten dann bitte
schnell umsteigen. OK, es gab früher Versionsverwaltungs, gibt auch heute noch andere, aber geht ist der Branchenstandard und der Branchenprimus und voll und zu recht ja und wenn jetzt irgendwo als Entwicklerin oder Entwickler anfängt, dann sollte man das auch gefällt, das muss man erst mal lernen und tatsächlich gibt und da braucht man eine Minute. Das ist, weil dieses Tool, was muss man erstmal verstehen, es
ist gar nicht so einfach. Ja, also da das wenn man noch nie was von gehört, ich brauche das tatsächlich auch, ich kann mir auch Subversion und dann haben wir gesagt, das geht so nicht weiter, du musst jetzt gehen, wir wollen alle gehen, OK, dann machen wir jetzt so und ich hab echt Schmerzen gehabt, so dass ich musste ich mir also das ist echt schon ein Konzept dings und jetzt fangen wir an, lass mal kurz verstehen was geht ungefähr ist wir müssen ein paar Glossaries machen, also das Wort
¶ Funktionsweise Git
repository müssen wir können in Repository ist quasi. Kannst du dir vorstellen, wie ein Pfeil System oder wird sie? Ja genau das sind quasi die Daten die du über eine Versionskontrolle verwalten möchtest. Das ist das Repository, ja. So und in diesem Repository gibt es sogenannte Branches. Wir verstehen ne, also du kannst quasi, ich glaub mal dieses Beispiel ne, also du, typischerweise gibt es einen Master Branch. Das ist so ne Art. Ja, der ist immer da.
Ist so der Hauptbranchen überhaupt so genannt, denn der macht halt Versionskontrolle und ein Branch ist quasi. Jeder Branche für sich macht eine eigene Versionskontrolle.
Ganz so sagen. Du kannst dann immer quasi kleine Blogs sind so nette hinzufügen, ne n Gespräch ist wenn du n wenn du nen Block hinzufügt, dann machst du einen Commit tut mir auch sagen ja also wenn du wenn du jetzt bei 0 anfängst sag ich mal so ein Projekt, dann hast du den Masterbranch jetzt noch gar nix drauf und dann macht man so einen Initialen Commit sagt man Initial commit ja dann hast du also quasi vielleicht hast du so ne gemacht so steht was du jetzt
zu tun hier was wird das für ein neues Projekt und dann gehst du quasi hinschreibst deine Rede als Text und jetzt hast du einen. Das ist wichtig, dass Repository lebt. Mit dem du sprichst zunächst erst mal ganz lokal bei dir, dass die Idee auf deinem Rechner, auf deinem Rechner ja, das heißt, du brauchst kein Internet und Versionskontrolle zu machen, ist total wichtig. Ja, und es gibt es gibt halt auch Speed.
Ja, du kannst erst mal ganz lokal bei dir anfangen, ja, das heißt ja, aber jetzt sagst, du hast mich nächstes Jahr, wie krieg ich dann irgendwie irgendwie die die Sachen
zusammen. Lilly hat auch ein lokales Repository. Ja, und jetzt ist die jetzt ist die Kunst und jeder hat ein lokales Repository bei Git und deswegen kann jeder irgendwie schon mal arbeiten, jeder kann irgendwie kommts machen, also Blöcke von Code in dieses in das Repository einfügen und dann gibt es ein zentrales oder auch mehrere Zentrale ich lass mal weg, sonst wird es kompliziert, aber sagen wir mal, es gibt ein zentrales Repository, das auf
einem Server liegt in der Cloud, wo ich tatsächlich dann irgendwie mal zu einem gewissen Zeitpunkt Internetverbindung brauche. Denn irgendwann will ich das mal synchronisieren. Ja zu der Wahrheit, dem zu meinem, zu meinem, zu meinem zentralen Repository.
Und so funktioniert git also das deswegen ist es am Anfang ein bisschen kompliziert, weil du verschiedene Levels hast, der Synchronisierung ja, also du, wenn du deinen Teil editiert, und heute ist das so, dass das Geld ist quasi, das ist eigentlich Kommandozeilentool, das reicht auch völlig aus, wenn das mit der Kommandozeile bedient, aber wir wissen kommandozeilen musst n bisschen, das ist halt supergeil eingebaut und alles was irgendwie heute in Editor ist oder auch in diese
Weboberflächen und so da da. Es geht quasi mit grafisch eingebaut und du kannst es halt einfach klicken und so. Und wenn du das jetzt benutzt, sagen wir mal du hast also also was passiert, du musst halt natürlich erstmal quasi.
Normalerweise ist das ein Ordner, du hast einen ganz normalen Ordner auf dem Windows oder Linux für dich Wurst und in diesem Ordner sagst du mal geht nit also initialisierst diesen Ordner, dass du jetzt quasi von diesem Repository, also quasi unter Versionskontrolle kommen so ja und dann entsteht in in in Linux wahrscheinlich ein kleiner Ordner, der ist versteckt, der heißt Punkt Git in diesem Ordner und da steckt die ganze Magic
drin, so ja ganz lokal. Das ist quasi eine Datenbank drin, die quasi dann, wie ich es gesagt habe, die quasi blockartig quasi Track. Was hast du verändert, ja. Und wenn du jetzt einen Editor hast, wie zum Beispiel Visual Studio Code und Du schreibst dann was dann schreibt, dann ist das schon direkt grün an einem Pfeil oder Rot oder mit Farben markiert. So ist das neues Pfeil was ich nicht kenne, das muss also neu eingefügt werden.
Im Repository ist das ein Fall wo ich drum editiert hab und dann siehst du schon, dann siehst du irgendwie markers dann weil das so integriert ist kannst du auch drauf die roten Dinger und dann siehst du direkt wie sieht es denn vorher aus? Also das macht gleich eine Veränderung ja so ne Vorschau kennt man auch schon bisschen wird und so, aber das ist halt mega cool integriert, so dass du immer genau siehst was hast du hier gemacht ja und wenn du ausversehen mal was.
Wenn du hast nicht geguckt und der hat auf der Natur rum ja und verschwindet wieder, setzt du dich an Rechner und siehst so roten Balken an der Seite das modifiziert wurde, dann alarmiert die schon das System da irgendwie Käse ist auch schon ganz ist passiert deswegen Danke Frederik hatte Papa arbeiten und wollte mitarbeiten, wollte Mitarbeiter nicht gerade irgendwie draußen irgendwie ich hab ne Tochter hab ich geguckt und hatte gestern die Kinder alleine und in der Zeit wo ich
dachte ich hatte Recht machen wenn Kinder sehr wichtig nicht nur im Büro Tipps der auf der Tastatur rum. Hat den editiert, haben wir auch wieder geholfen und gesagt, Oh, das ist ja noch irgendwo anders. OK, du ganz kurze Zusammenfassung bevor noch weitere hast. Also das das Repository oder ich glaube repo dann häufig auch umgangssprachlich genannt, gibt es lokal auf jeden Beteiligten bei jedem beteiligten Entwickler Entwicklerin Plus.
Es gibt dann diesen Master oder Main der irgendwo zentral ist.
Ne Vorsicht, der Master ist der Branchen haben sich alle also die alle Branchen sind auch quasi ist alles dupliziert ja es gibt das man Repository ja. Dass wir vorsichtig sind, den Begrifflichkeiten Repository Repository hält beliebig viele Branches und hält quasi diese das gesamte Konglomerat von allem, was ich versionieren werde, werde ich sag zu dem Brand des gleich noch ja, aber dieses Repository gibt einmal zentral und für jeden Mandanten, der irgendwie teilnehmen will an
diesem, an diesem Repository und ein Repository Manager zu typischerweise ein Softwareprojekt, ein Produkt, ein irgendwas auch immer richtig genau, ja, ja, genau, typischerweise hat man für eine für ein geschlossenes Softwareprodukt und dann hast du die ganze Branche und dann gibt es irgendein Flow. Im Prozess um diese Branches dann wieder zusammenzubringen, und das ist dann wahrscheinlich der nächste Schritt, pass auf, genau, also du kannst.
Normalerweise hast du den Master Branch und jetzt gibt es
¶ Feature Branch Workflow
verschiedene Modelle. Das ist ja alles beliebig.
Ja was du damit machst. Du und ich nenne mal das Modell was ich immer nutze, es gibt ganz viele andere noch, das hat auch einen Namen, den ich gerade vergessen hab, das ist der featurebranch Workflow ich hier gerade gespielt hat doch vor mir gehabt ich hab wenn man sagt zum Beispiel den Masterbranch, da ist immer der ist immer die Wahrheit, so dass die Akte der aktuellste Stand der Entwicklung ne der wird auch manchmal Main Branch genannt heute aus politisch korrekten Gründen,
weil Master aus der Zeit von Master und Slaves ist. Aber ich glaube man hat sich wieder zurück. Dann Master, weil man schon weiß, dass jetzt das nicht meinte, aber das ist quasi der Haupt Master Branch, wo die ganze aktuelle Entwicklung stattfindet.
So und jetzt kann man sich überlegen, wie Krieg ich das jetzt gebacken alles wenn ich zum Beispiel und ich, ich mag das Beispiel, also was haben wir eigentlich meistens zu tun, entweder entwickeln wir ein Feature oder wir fixen Bug in meiner Welt ist das ist das, so mache ich mir das so einfach, ja, also alles was an der Software an Veränderungen passiert ist entweder ein neues Feature oder einen fix von einem Bug so und wenn ich jetzt nen Bug fixen möchte jetzt könnte
ich ganz naiv. OK, dann nehme ich jetzt halt den Master Branch, der quasi synchronisiert ist über alle. Fangen wir an, Master Branch Code zu editieren. Ja und machen einen Commit, also schicke diese Veränderung direkt auf den Master Branche. Das kann ich machen, wenn ich alleine bin, weil ansonsten ist das ne schlechte Idee.
Wenn ich jetzt zum Beispiel mit dir arbeite, Gerrit und im Wir haben jetzt beide einen neuen Feature und Du entwickelst ein Feature, ich n Bug ja und und und blöderweise muss ich bei deinem muss ich den Bug zu fixen auch an Kosten ran, die in
deinem Feature vorkommen. Ja und jetzt bin ich etwas schneller als du entwickelst dein Feature da und ich fix n Bug, dann ist das ziemlich doof für dich ja weil du dann weil du dann irgendwie wenn ich den jetzt in den Masterbranch im zentralen Repository gespielt hab, bist du quasi out of Sync. Dann musst du quasi, dann ist die echte Wahrheit dem Master Branch schon neue, während du deinen Feature machst.
Auf einer alten Version des des Masters ja S geht man, weil ich diesen Master vorher zu mir rüber kopiert habe und dass dann mein Branches, in dem ich arbeite, genau das muss ich gleich sagen, dann mach das war für mich so ein aha Erlebnis, also die dieses ganze Geld gram, das funktioniert tatsächlich in dem Ordner und dieses Kit selber sorgt dafür, dass die die Dateien in dem Ordner sind tatsächlich ändern, also trägt on the Fly in diesem Ordner ja also wenn man sagt zum Beispiel
Checkout wenn du Checkout vom von einem von einem also Checkout. Quasi eine Kopie einer gewissen Stelle eines Branches. Ja, wenn du jetzt, wenn du jetzt angefangen hast, dein Feature zu machen, dann würdest du quasi den den Master auschecken an der Stelle, wo er ganz aktuell ist, also am letzten Commit, ja. Warum solltest du auch ne will nicht alteer ja genau und dann passiert tatsächlich, dass die ganzen Pfeile um dich rum, die sind dann so verändert, dass sie
genau diesem Stand entsprechend ne, was du aber auch was du
machen könntest einfach machst. Du könntest quasi Checkout an einer beliebigen anderen Stelle machen, an deren Stelle zum Beispiel von dieser Branche, was dann passiert ist dann unter deinem Hintern dies geändert, so dass sie wieder spiegeln den Status zu einem anderen Zeitpunkt, ja das passiert immer alles auf dem gleichen, Wir werden nicht mehrere nebeneinander angelegt, so war es so Version mäßig, ja da musst du das alles in verschiedenen Ordnern selber verwalten.
Gibt, ändert einfach deine Files unter dir so. Ja und du kannst dann auslesen mit geht was zeigt sich denn
gerade, wo bist du gerade? Ja so wenn wir das jetzt ordentlich organisieren wollen und das sage ich nur heute, das funktioniert normalerweise so. Du hast den Master Branch und wenn ich jetzt den Bug mache, dann dann geh ich hin, dann muss ich erstmal dafür sorgen, dass mein, dass mein lokaler Master Branche gibt mir auch nochmal erstmal synchron ist mit dem jetzigen zentralen Masterbranch. Ja, das nennt man dann mache ich ein sogenanntes mache ich einen g Fetch sagt man also fetch
heißt ich hol mir erstmal alle Informationen vom zentralen Repository runter, dass die da sind bei mir lokal ist dann quasi Synchronisation und dann sage ich geh pullern geh ich quasi selber, gehe ich quasi lokal auf den Masterbranch. Sage Gepult und dann zieht er quasi von dem zentralen Repository die alle Informationen in mein Lokales rein. Ja, und dann bin ich erst mal, dann bin ich erstmal mit dem Master Branch synchronisiert und
nicht das hab. Dann mach ich einen neuen Brunch, also quasi ich fange quasi eine neue Entwicklung, man kann sich so ein Zweig also wenn der Master irgendwie Linie ist mit LA LA LA und dann sind das immer Punkte normalerweise dargestellt sind quasi Einspielung neue Commits, also neue Blöcke von Änderungen in den Code ja Punkt Punkt, Punkt die Linie und jetzt brauche ich jetzt mache ich n Bug jetzt zeig ich ab jetzt zeig ich nach unten.
Quasi von der Linie. Nenne den die haben immer Namen diese Branches, also Master heißt der Master und dann Branch heißt typischerweise so wie dieser Bug ist irgendwie was weiß ich. Das ausloggen da bei uns zum Beispiel ja genau fix Lock out ist oder irgendwas.
Ja und dann ist und der hat normalerweise auch eine Nummer und das wird dann alles muss nicht aber das verwalten ordentlich so und jetzt und jetzt kann ich ganz in Ruhe diesen Bug fixen und mache das so ja und bin quasi auf einer parallelen Spur unterwegs und du hast zu der gleichen Zeit irgendwann gesagt, hier in meinem Alter und so weiter und du hast den Feature Branch erstellt an einer bestimmten Stelle vom Master. Ja und das ist auch quasi n
Seiten, also auch quasi runter gebracht und dann machst du deine Entwicklung ja und jetzt können wir unabhängig voneinander machen. Du bist nicht gestört und jetzt, kurz bevor du fertig wirst, macht man es meistens so, dass man sagt, so, jetzt muss ich erst mal gucken, bevor ich das jetzt irgendwie in den Master reiner, musst du jetzt noch mal deinen Branch mit dem Master synchronisieren und das ist wieder eine private Sache für dich.
Ja, das heißt du wirst jetzt hier fertig mit deinem Feature ja doch genau das Feature gemacht und dann sagst du, OK, jetzt Spiel mir mal den neuen Master rein in meinen Code in diesem neuen Master ist unter Umständen noch gar nicht drin, was du gefixt hast. Nee, aber da ist da ist alles das der kann genauso aussehen wie vorher, vielleicht hat keiner gearbeitet, hast du einfach da? Musst du dich nicht kümmern, sagt ihr, ist alles Aufstand perfekt. Gerrit so alles prima, ja, oder?
Und das gibt dir das alles oder gibt es so ja hier sind irgendwie 2345 commits auf dem Mars zwischendurch eingegangen von deinen Mitentwicklern so, und die spielen wir jetzt mal ein so ja und jetzt kommt's das kann, das kann im schlechtesten Fall für dich schlecht sein, weil es kann ja sein, dass jemand rumeditiert hat, ohne dass du wusstest auf Files, die du jetzt selber gespielt hast und auf einmal funktioniert nicht mehr so wie du gedacht hast.
Ja und im schlimmsten Fall ist sogar ein Konflikt und das kann auch, gibt dir nicht helfen. Wenn du mit jemandem anders genau an der gleichen Zeile Code an der gleichen Stelle jetzt verschiedene verschiedene Ideen habt, was stehen soll, ja dann ist das ein sogenannter Konflikt.
Den muss man manuell lösen, ne und zeigt dies aber an, da steht dann hier Gerrit, hast du das editiert und Lilly hat irgendwie andere editiert, so was willst du denn jetzt haben das von Lilly oder das von dir oder was ganz Neues irgendwie ein Kompromiss zwischen Soja und jetzt musst du mit Lilly n bisschen kommunizieren hilft nichts ja hat Entwickler muss man ein bisschen an der Stelle und rausfinden wie kriegen wir das hin, dass beides funktioniert ja so und alles und
alles dies transparent zu machen. Dann brauchen wir Versionskontrolle. Krass, und jetzt kommst du mit dem Bund gleiches Prinzip, du Prinzip, ich werde mit meinem fertig so dann muss ich auch meinen Master quasi erstmal synchronisieren. Ja und jetzt gibt es auch noch 2. Ich erwähne das nur ich den G ist wirklich kompliziert, ich hab gerade ich hab am Anfang von Blockchain gesprochen, es ist ja nicht so, dass Blockchain irgendwie in einem Atemzug
¶ Rebasing vs. Merging
versteht und dann auch noch die sind echt kompliziert jetzt kann ich mir auch überlegen wie ich das mache, es gibt bei gibt 2 Möglichkeiten man das sogenannte Basing und das Marging ja also ich kann quasi dann sagen OK ich Merch. Meine Änderungen quasi mit den mit den vorherigen Sachen
zusammen. Ja und dann gibt es einen neuen Commit und die kommen ID, das ist quasi der kryptographische Schlüssel ish oder ich rebase und das Rebase heißt quasi, das will ich nochmal erklären, dass wir hier und da hab ich von einem ich hab das früher nicht gemacht, das habe ich, ich kann den Mal erwähnen Christian Sting gelernt ein ich würde sagen der hat den schwarzen Gürtel in Git Karate und der hat gesagt es ist viel schicker weil reason was da passiert ist quasi die einzelnen
Änderungen. Jetzt zum Beispiel am Master vorgenommen wurden, während ich meinen Bug gefixt hab und hab ich gar nicht mitgekriegt, erst so, da kann ich sagen OK pass mal auf Linearisieren die rein, also spiele die zum richtigen Zeitpunkt einfach so rein als hätte ich die gemacht.
Ja in meinem Brunch so, ja das heißt da wird nichts gemerkt, sondern es bleibt quasi von einer von der Historie lineare Punkte, ja, aber die werden quasi an der richtigen Stelle retro, mäßig reingefügt ja und diese ganze Kette wieder neu aufgebaut, so ja das irgendwie noch hört sich jetzt noch synchrone an irgendwie als es ist halt schick weil es halt dann dann dann bleibt, quasi wenn du dann später auf deinen Master. Brunch guckst, dann sieht es so
aus, als hätten alle einfach sequenziell. Tack, Tack, Tack neue Comics gemacht. Ja, ist. Dieses zeitgleiche und ineinander geschobene wird dann quasi durch das Reason aufgelöst und du kannst dann später, wenn du von außen guckst, diesen diesen Master Branch lesen und der hat zur richtigen Zeitpunkt immer die richtigen Einfügungen gemacht.
So ja das ziemlich schick, das machen wir auch fein teiliger am Ende letzten Endes auch die Historie, dann ist es ja genau die Historie ist Clara, du hast nicht diese Mergers, weil die Mercedes beinhalten wiederum von anderen und so weiter und so kannst du immer genau sehen welche Nase hat was, wann wie irgendwie da in diesem in diesen Master irgendwie reingehängt so also Releasing sagtest du. Leasing, Merching oder Mercedes
sind die. Man kann Releasing kann man quasi, man kann es wirklich so verstehen, als würdest du schon die du in der Kette hattest wieder auflösen, die Kette quasi und das kurz kurz in der Hand halten, dann die Änderungen an den richtigen Stellen die von anderen einspielen und deine und deine Änderungen wieder einfügen. Ja also du brichst einmal die ab bis zu der Stelle wo wo es noch synchron war und dann willst du das neu und bringt es in der
¶ Releases und Tags
richtigen Reihenfolge wieder zusammen ne das nennt sich jetzt hätte ich noch eine Frage zu git bevor wir dann vielleicht zum nächsten Punkt dann auch kommen und weitergehen. Jetzt verstehe ich das so, dass dann jede Menge Ärger ist oder so Releasing passiert und irgendwann entscheidet mal jemand. Jetzt gibt n Release dieses Maß wieder und also eine neue Softwareversion wird irgendwie
veröffentlicht. Richtig also das ist dann richtig Liebig irgendwann oder es wird vorher festgelegt, wenn das wenn das ist ne also jetzt nicht Thema, aber irgendwann muss ja passieren das ist ne gute Frage, habe ich noch gar nichts gesagt und du fragst dich wie funktioniert das jetzt in diesem Bild? Ja genau wie funktioniert das Bilder Wischer auch gelöst in Teams also ja also über dem also bei dem Flo den ich gerade gesprochen habe.
Bei diesem also der featurebranch Workflow, wo du quasi einen zentralen Master hast und immer die Bugs und Features aus Branchen wieder reinbringst.
Ne, gehst mal raus und wieder raus und wieder rein, da funktioniert n Release so, dass quasi auf dem Master Branch da laufen übrigens die ganzen ich mal kurz NICD und so weiter ne also ja das müssen wir nicht im Detail im Detail, aber die passieren auf dem Master Branch, also immer wenn der Master Branch quasi neuen Comic Bubble erhält, neue Änderungen erfährt, dann wird quasi im besten Fall automatisiert alles testen, Test
Gedöns drumherum angeschmissen. Und auf dieser neuen Version des Masters wird der ganze Software getestet.
So ja und sagen wir mal, jetzt ist alles toll und der Master Chief oder irgendwer entscheidet, jetzt müssen wir machen, was man im besten falle immer machen kann, das ist die das schicke an dieser an diesem Flow, ja weil dein Master wenn der ständig durchgetestet ist und wenn diese Prozesse des neuen Code einfügen, da hab ich noch nichts gesagt, auch im Review Prozess unterhalten, dann heißt es quasi der ist immer die Software dahinter steht ist immer Release fähig ist einfach
nur eine Entscheidung, eine politische Entscheidung, dann sage ich mach das Release. Wie viele Features und Bugfixes fasse ich zusammen, die mehr wert sind im neuen Release zu erscheinen, so dass dann noch ein Politikum, aber kein Technikum ist? Wichtig, wenn es passiert, dann gibt es neues Wort nicht das sogenannte Tag.
Also ich hab jetzt von Branches gesprochen und von Comics gesprochen und so weiter und einen Tag ist quasi auch ein Commit, also quasi auch so n Bubble auf dieser Linie ja mit einem Namen und dieser Tag Name ist dann quasi den Namen des Releases 1.2.4 oder so zum Beispiel. Und damit setze ich einfach nur n Zeitstempel. Ja, damit ich da auch zurückverfolgen kann, was wie sah der Code genau aus bei diesem Release.
Ja total wichtig so ja ne und und auch dieser dieser Tag, diese Bubble ist quasi auch dann stelle wo ich dann Branchen würde, denn jetzt wird es noch komplizierter, haben vielleicht unsere Zuhörer gar nicht so auf dem Zettel, aber es ist halt so, wenn ich zum Beispiel mehrere Versionen einer Software maintain, wie man so schön sagt, also ich hab vielleicht ne Version 2 Komma x ja und ne Version 1 für die noch nicht 2
migriert sind. Ich hab auf beiden ne und wenn ich die also meine dann muss ich ja quasi für beide. Personen gleichzeitig wachse fixen und alles sauber managen so ja und auch diese dieser Tag den ich dann setze, der erlaubt quasi auch noch mal Brunch zu machen, das wäre dann kein Feature oder Bug Brunch, sondern dass dieser eine andere Branche nicht erlaube in diesem Flow zu entstehen um das Release.
Weiterzuentwickeln. Ein altes an dieser Stelle, davon sollte man nicht zu viel haben, weil das ja mega aufwendig ist für das Team. So ja, also am besten ist, wenn 100 sollten die im allerbesten Fall auf der gleichen Version sein, aber wir wissen es ja, wissen wie es ist genau, aber ich habe immer gesagt so ich bin damit durch eigentlich Software ich habe gesagt so allerhöchstens 2 Version OK aber selbst dafür bietet gilt noch technische Lösungen an total ja
du kannst, aber der Aufwand steigt, der Aufwand steigt weil man also man kann auch immer von zwischen Branchen und diese Dinger verschieben und so, aber man kann sich vorstellen jetzt wenn ich das jetzt erzähle also du fickst zum Beispiel eine Branche in der neuesten Version im Feature 2.
Und dann denkst du so A den hatten wir garantiert in 1 auch so und jetzt willst du diesen fix quasi rückwärts reinspielen in Version 1. Da ist aber schon deine ganze Umgebung anders, weil alles anders ist. Jetzt musst du da ziemlich aufpassen, dass händisch einfügen und so, das kannst du nicht einfach, den kannst einfach nicht die Änderung darüber spielen und so, jetzt merkt man dann was das für ein Aufwand ist.
Ja also also Softwareentwicklung und dieses ganze Maintain von dem Kram und als als Softwareanwender erwarte ich alles schön, funktioniert ja im Hintergrund ist das eine hochkomplexe Projektmanagementproblem so ja, es gibt bestimmt anderen auch und deswegen ist vielleicht ganz andere Bereiche, aber es hat sich halt vor allen Dingen
¶ UI für Git: GitHub, GitLab und Co.
darüber, weil das echt. Wenn man drüber nach sinniert, was da alles passieren muss und was sie alles richtig machen muss im Team mit mehreren Versionen, mit Bugs und gleichzeitig asynchronen und so, das ist schon relativ komplex.
Ja ja OK, du auch in Anbetracht der fortschreitenden Zeit würde ich dann dich erst fragen, gibts noch was wichtiges zu gehen hinzufügen, ansonsten lass uns kurz über die gängigsten Plattformen mal dass wir anreisen, es gibt ja dann github und Gitlab und die haben irgendwie auch gut im Namen schon und es gibt auch Bucket und ich hab nochmal geschaut sourceforge und und und diverse andere Plattformen die wahrscheinlich dann irgendwie dieses Open Source.
Produkt oder tue git nutzen und wiederum nochmal also dafür sorgen, dass man sich selbst hosten muss. Nämlich jetzt mal selber aufbauen muss, sondern einfach nur Plattformen, die Cloud basiert ist oder ich warte, dass man einen Satz alle diese Tools sind im Prinzip Web Plattformen, die genau das tun was du gesagt hast. Die die Sorgen dafür, dass ein zentrales Repository gehostet wird und transparent anschaubar wird, indem da ne webfunktionalität drumherum gebacken ist.
So und du kannst dann genau angucken, was ist da los, ja und die erlauben, also die basieren alle auf dem Git unten drunter. Und das hatte auch Linus Torvalds schon so vorgesehen, hat gesagt, ich mache hier x quasi die, die Technik kann, da gibt es keine UI zu und es soll einfach sein für alle möglichen Leute ganz tolle Oberflächen dazu zu machen um das zu
bedienen. Ja und das sind Sie alle in Ihrer in ihren Varianten so ja einer so der andere so ja und es gibt halt quasi diese ganzen Tools, dafür gibt es welche, sind besonders dafür, dass du quasi ein zentrales Repository gegen die alle Managed. Und da gibt es viele andere grafische Tools auch ich hatte schon die Editoren genannt, ja, also die, die es selber die haben, das hat auch, die machen quasi die die liefern die UI. Und die Transparentmachung für
die verteilten anderen Repositories für die lokalen Repositories, mit denen du entwickelst und die Sachen änderst. Ja, und alles ist voneinander völlig unabhängig und du kannst das wild miteinander kombinieren, weil es einfach nur Grafik über immer das Gleiche
geht. Unterliegende Kernsystem ist es voll schön so. Ja, das funktioniert einfach herrlich, ja, aber jetzt könnte man, auch wenn man jetzt ganz besonders nervig ist oder ganz besonders das mag sich, dann gehts selber irgendwie aufsetzen, voll, ja klar, also haben wir das Anfang Ende OI benutzt OI ganz genau, du brauchst nichts sagen. Das ist auch total schmal und richtig effizienter, hat kaum Baum Speicher.
Es ist total schnell, ist gemacht und einer mit einem Befehl hast du ein zentrales Postfach, Server irgendwo zentral erreichbar ist. Mit einem Befehl hast du deinen Repository erstellt, ich denke, dass dann auch github und gitlab und so dann doch noch wieder einmal mehr hier und da unterstützen und noch einfacher viele Dinge machen, je größer das Team wird, desto eher würde man vielleicht auch gehen.
Ja voll es ist nicht, es ist nicht zu empfehlen heutzutage, dass ohne UI zu machen, warum auch ja also die so so kann ich jetzt nicht sagen, soll ich ja beisteuern, also zumindest kann ich bei uns im. Repository oder im github Bugs anlegen. Ja kommt ja auch mal vor oder
¶ Code Review
neuen Features reinschreiben und den du oder jemand anderes aus der Entwicklung dann aufgreift und und und weiterverfolgt.
Ich will noch ein wichtiges Konzept sagen was wofür auch gerade diese Web Oberflächen sehr gut sind und wo dich da sich vielleicht auch die beiden trennt obwohl die mittlerweile muss sagen früher war es vielleicht noch krasser unterschiedlich, heute sind die alle sehr sehr gut ja das Reviewing ist ein wichtiger Punkt, sowas hab ich noch gar nicht erwähnt ja hab ich weggelassen aber jetzt wir nochmal kurz den Faden auf von du bist fertig mit deinem Headset. Und willst jetzt und hast auch
sauber den Master synchronisiert. Alles ist fertig, technisch, dass dein Feature quasi wirklich in den Master rübergehen kann, dann wird auch dann wird quasi dein Feature Branch Gemerged je nachdem am besten falle based und gibt quasi neue Bubble in den Master, also ein neuer Blog wird quasi angehängt an die Entwicklungskette ja des Mars bis dahin. Das könntest du jetzt machen. Dumm und fertig so, dann ist es verändert.
Ja, das wäre aber dann krass, das hätte ich ja gar keiner drauf geguckt, weil bis jetzt hast du lokal gebrannt, hast du das gemacht, hast vielleicht irgendwie mit jemandem gesprochen oder auch nicht, ja, und wenn du jetzt das einfach da rein knallen würdest, dann hättest du quasi dieses Buch, was entsteht das Software Buch verändert, ohne dass jemand Mitsprache gehabt hätte, das passiert typischerweise nicht in der Software zum zum Glück genau, sondern jetzt passiert
quasi in dem Moment wo du technisch fertig bist es mit dem Master quasi zu verheiraten dein deine Änderungen. Passiert Review Prozess, das heißt, jetzt kommt normalerweise ein anderer Entwickler mit ins Spiel. Das machen die Tools jetzt ziemlich toll. Ja, da kannst du dann quasi sagen, bitte lieber liebe Lilly, ja ich bin jetzt fertig mit Dee, kannst du bitte mit drauf schauen? So ja kannst du das mal Review
und macht das Sinn? Habe ich hier irgendwo n Fehler oder irgendwas ja. Kannst du dir das angucken und dann kriegt, dann kann Lilly quasi sich auf sie nimmt dann quasi lokal. Sie macht dann wieder falsch, so dass sie alle Informationen hat, die Du, die du mit dem hast.
Du Chronist hat sich alles da und dann Lilly sich ja auch auf Deinen auf deinen Feature Branch setzen, sie checkt den aus, dann hat sie alles so wie du es sehen würdest und kann quasi den Code durchgehen, so wie du ihn vor dir hast da und diese Tools wie geht hab und so weiter die können das sogar im Web machen, das heißt Lilly muss gar nicht mehr zu Hause machen weil ihr sie kann sie Review Prozess auch in auf der Weboberfläche machen
was ziemlich. Was ziemlich elegant, weil ich gesagt habe, wenn wenn du, wenn du jetzt quasi wenn du jetzt quasi dich hinsetzt, auf einen anderen Branchen anderen mit, dann wird quasi der ganzen Files, die du hast, während du entwickelst, wenn neue hingeschrieben, so dass sie dementsprechend wie der Status ist.
Jetzt kannst ja sein, ist mittendrin im Bug fix und hat 3 oder 45 Files modifizierten angefangen das alles was sie jetzt nicht will ist das quasi wie das alles wegspeichern muss kurz, dann kriegt sie ganz andere Codebase vor der Nase, weil sie dann review machen soll, ja und dann wieder alles zurück so ja da hat sie vielleicht überhaupt kein Bock, hab ich auch kein Bock drauf und dann ist es einfach zu
verhandeln. Dann geht halt Lilly loggt sich halt auch mit ein in Github so und dann und dann sieht sie quasi in github schon diesen Review Prozess und das sind dann einfach 2 Fenster sie genau was Herr gemacht und da gemacht und dann könnt ihr quasi auch mit so einem Ding natürlich n Chat Funktionen, dann kann sie mit dir sprechen und sagen Gerrit Warum hast du das gemacht und du antwortest das und und dann wäre das so wenn wenn wenn Lilly einen validen Änderungswunsch
hat, dann würdest du sagen OK cool dass das füge ich noch ein und dann machst du halt in deinem Feature Branch 12345,6 bis Lilly glücklich ist. Ja dann ist Lilly glücklich und gibt ihr OK Prof ja. Und und wenn, wenn das so ist in der Firmenpolitik, dass Lilly das entscheiden darf und ihr beiden seid glücklich, dann passiert der kommt in den Master und dann werden noch alle Tests angeschmissen und dann ist alles
prima und dann geht es weiter. So ungefähr könnte aber vielleicht sogar noch eine dritte Instanz wieder sein, die dann den finalen Commit noch ja das also das ist beliebig, wie man wie kompliziert man dieses Review macht und wer drauf gucken muss und wer dann f geben kann und ob man das sogar technisch du kannst alles machen, du kannst sagen, du darfst das gar nicht, verbiete das Gerät so, du hast erst wenn der grüne grüne Licht leuchtet vielleicht noch dem Senior oder
irgend sowas darfst du. Also das ist dann ist das hab ich gesagt am Anfang ne, das hat mit an Technologie nichts zu tun, das sind die Prozesse drum herum und die erweitern halt diesen diese Grundfunktionen von GTH um alles was teamprozesse, Sicherheiten und so weiter angeht.
Ja und das ist sicherlich sehr unterschiedlich, ich glaube mit der Größe der Firma muss man auch tatsächlich Prozesse machen mit da so bist du klein, kannst du n bisschen einfacher und schlanker halten, wie es im echten Leben ist. Eine Riesenfirma musst du da garantiert mehrstufige Review Prozesse und so alles etabliert geht aber alles ja ja dann. Was Geschwindigkeit für vielleicht noch höhere Qualität von 90,9 auf Komma 9 kommen oder wie auch immer die Qualität
stimmt. Aber also der Prozess bringt dir leider auch nicht die Qualität so wichtig ist, dass die dass auch n jetzt n bisschen, aber. Wenn du im Team arbeitest, dann die Entwickler denken ja meistens, sie werden daran gemessen, wie viele Features und Bugs sie selber fixen oder programmieren. Das ist leider aber nur Teil der Aufgabe, wenn du ein guter Entwickler bist, dann musst du
halt vor allen Dingen reviewen. Also du musst halt einfach ganz viel Zeit haben vom Management bekommen um ordentliches Review zu machen. Ne von deinen Kollegen und sagt überhaupt nicht unterschätzen, das ist nämlich viel schwieriger kurz den du selber nicht geschrieben hast auf Ordentlichkeit zu überprüfen als selber ordentlichen Code zu schreiben verstehe. Weil wir Menschen haben unterschiedliche Ideen zulässt. Mal verstehen, was ist da los.
Ja, und dann musst du. Du hast dich ja dann wochenlang damit beschäftigt in hast dich irgendwie mit allen Cases, die passieren können und so weiter geschafft, aber nicht jetzt n Review machen soll irgendwie im besten Fall n paar Stunden dauern, dann muss ich ganz schnell schaffen alles auf die
Platte zu laden. Deine ne alles was wichtig ist drumherum zu sehen und zu verstehen was du da tust und ob das gut ist oder nicht, ja das ist eigentlich die höchste Kunst. Schnell ein sehr gutes Review zu machen, was auch objektiv ist. Denn, und das ist auch noch was ganz Krasses, dass ich an dieser Stelle sagen, und da muss man das gute Software Teamführung. Wirklich essentiell.
Das ist ja auch ein Ruch emotionales Thema, denn wo in der Arbeit werden wir als Softwareentwickler bist du ja so transparenter durch diese Review Prozess läuft die ganze Zeit runter gelassener Hose holen, ja und jeder könnte drauf gucken, so ist es wirklich ja und und wenn dann auch noch n noch der Kommentar kommt nee sieht irgendwie komisch aus, also dann bist du erst recht irgendwie angefressen so denn wenn Review heißt ja man gibt Kritik auch ab ja also wir machen das nicht nur
um zu sagen Boah ist das schön gemacht ja oh ja die Stelle ne sondern da kommt ja hier sowas wie raff ich nicht, versteh ich nicht ja was soll das? Das müssen wir probieren, das geht hier schief und das ist doch kacke. Wurst. Die Exception gefangen hier und so weiter ja und du hast ja mit Schweiß des angesichts das codiert und dann kriegst du noch Kritik dafür. Ja dafür, dass du auch schon irgendwie gearbeitet hast.
Ja und da muss man dann halt gucken, dass man das auf einer emotionalen Ebene von der emotionalen Ebene wegbringen und ganze Sachlichkeit reinbringen und auch diese ganze Review Prozess, also auch das Wording, also wie schreibe ich das und so
weiter. Mit ganz viel Höflichkeit verpackt, so extrem wichtig, und das müsste das, finde ich, Aufgabe des Teamleiters der Softwareentwicklung, da entsprechende Policies durchzusetzen und zu sagen, jetzt Pass mal auf, ihr Lieben, ja, hier wird ein ganz, ganz freundlicher Ton angeschlagen, ansonsten gibt es hier sofort eine Abmahnung, weil. Weil man sich nicht vorstellen, aber das ist das, das entwickelt eine Eigendynamik in der Gruppe.
Wenn sich da ich das alles erlebt haben, sich also die haben sich da wie wie die Wahnsinnigen, die den Kram, also einem Review ja also da, das ging rechts und links mit dem Chat, da glaubst du dich, tritt ein Pferd so, ja, und dann haben sich die Entwickler, wenn sie hassen, werden sie ein Buch schreiben sollen, dann ist das alles nicht gut, ja cool da bisschen Philosophie am Schluss zu, aber ja, ich glaube, das ist
¶ Ausblick auf Blockchain
ziemlich wertvoll, weil weiß, wir haben jetzt nicht, wir haben ja zum Teil, aber ja nicht zum Großteil Entwicklern und Entwickler auch. Hiermit die zuhören. Ja, und dann ist das ja coole Management lehren die man
mitnehmen kann. Ja genau und für alle Manager die zuhören bitte beachten sollen jetzt noch zuhören, ja schon lange kommen jetzt du wolltest nochmal die schließen oder einen Bogen schießen sagt man glaube ich zu zu Blockchain du hast schon erläutert bei mir hat es im Kopf schon zusammengepuzzelt ja genau genau genau also die geht an sich von der inneren Struktur ist wie eine, ja wie eine riesige Blockchain Blockchain deswegen weil du auch nicht also Comics
die du mal gemacht hast kannst du nicht manipulieren. Weil der nächste Hash also hast, ist ja die kommt ID quasi, also jeder Comic, quasi jede Änderung des Codes wird quasi da ist natürlich die Content Änderungen selber mit drin und es wird versiegelt mit einem sogenannten Hash wert. Der sich aus dem Davorige ergibt.
So, und deswegen kannst du quasi die Kette nicht manipulieren, ja ohne dass jeder sofort mitkriegen würde sich alles ändern, so ja eines der fundamentalen Grundgedanken, wie die Blockchain funktioniert, ja. Und eigentlich, es gibt noch noch viel krasser als jetzt so ne normale Blockchain, weil wir auch noch ganz viele Ketten haben, die lokalen und zentralen, die verschiedenen Branchen und so weiter und alles das muss irgendwie gegeneinander ne, diese ganzen kommt also die
James, die Blocke die Blöcke in R Chain die fliegenden und trotzdem bleibt alles sauber und nachvollziehbar, deswegen ist ein schönes Beispiel, wir machen vielleicht schon die nächste Folge über Blockchain oder die übernächste und dann bring ich das alles zusammen, wohl noch die Unterschiede sind aber da werde ich auch noch irgendwie Bezug nehmen, vielleicht vielleicht auch erst in 2 bis 3 Wochen mal gucken, wir haben schon eine Planung für die Herstellung, ja richtig, aber
Blockchain wird kommen, so viel versprochen. Cool, alles klar, ich, ich würde den Sack zumachen, ich hab bestimmt was Wichtiges vergessen, aber das macht nichts, wir haben ein bisschen Ahnung bekommen, was kann man auf Discord lesen? Ja genau, weißt uns gerne darauf hin wie immer entweder n Podcast heimweg.com als e Mail Adresse oder eben auf Discord. Und vergiss nicht zu abonnieren,
das musst du jetzt sagen. Leute, vielen Dank fürs Zuhören, Danke Burkhard, Ich habe viel gelernt, fand ich richtig gut die Folge, auch wenn es jetzt wieder länger als wir dachten oder ich zumindest. Das ist ja meistens so und ist ja auch bei der Software immer so ne leider alles cool prima danke fürs Zuhören und bis nächste Woche dann Tschüss machs gut Tschüss.
