Artikel mit dem Tag »git«

Erlesenes IV

erlesenes git vuejs

Viele Browser-Tabs müssen mal wieder gedumpt werden!

Programmierer der einen Zettel mit der Beschriftung »Python« hochhält. Das kann nicht sein Ernst sein! (Bild: Hitesh Choudhary auf Unsplash, thanx!)

Python ist nicht gerade meine Lieblingssprache, alleine das seit Ewigkeiten parallele Existieren unterschiedlicher Versionen ist irgendwie »WTF?«. Heise läutet das Ende von Python 2 ein, worüber der Schockwellenreiter nur lachen kann.

Das Arbeiten mit git ist immer wieder eine Quell der Freude, besonders wenn mehrere Devs zusammmenarbeiten. Drev DeVault gibt »Tips for a disciplined git workflow«. Z.B.: »Pick a random git man page and read it now.«

»Oh Shit, git!« gibt Tipps für populäre »Notsituationen«, denn:

»Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible.«

JavaScript, wir alle lieben JavaScript! DWB hat »7 Useful JavaScript Tricks«. Den hier kannte ich noch nicht, »Get Unique Values of an Array«, ist ergreifend schlicht:

  var j = [new Set([1, 2, 3, 3])]</p>
<blockquote>
  <blockquote>
    <p>[1, 2, 3]

Apropos JavaScript, Vue.js ist hier noch stets ein Thema.

Wir Old-School-Developer lieben und kennen unser jQuery, »Making the Move from jQuery to Vue« bei CSS-Tricks führt in Vue.js aus der jQuery-Perspektive ein.

Zum tiefergehenden Einstieg hat Tania Rascia mit »Getting Started with Vue - An Overview and Walkthrough Tutorial« ein großartiges und umfassendes Tutorial geschrieben.

Weitere Vue.js-Links:

Die Auswahl des passenden JavaScript-Frameworks ist zwar bis zu einem gewissen Punkt »Religion«, aber sie haben trotzdem alle ihre Stärken und Schwächen. »Why I prefer React over Vue« vollzieht den Entscheidungsprozess nach.

Um zu entscheiden, muss man aber alle einigermaßen gut kennen. Deshalb ist es interessant, wenn sich Sunil Sandhu die Mühe macht, die selbe App mit React und Vue.js zu bauen: »I created the exact same app in React and Vue. Here are the differences.«.

Wenn es dann doch React sein soll, ist das ausführliche e-Book »React lernen und verstehen« von Manuel Bieh hilfreich.

Aber vielleicht braucht man das auch gar nicht: »You probably don't need that hip web framework«.

Und wenn all das zu langweilig wird, kann man sich auch esoterischen Dingen zuwenden. »legit« ist eine Programmiersprache, die in git-Commits programmiert wird:

»Programs written in legit are defined entirely by the graph of commits in a Git repository.«

Es ist schon erstaunlich, auf was für Ideen die Leute kommen…

Eine Datei aus der git-Historie ausgraben…

git

Versionskontrollsysteme benutzt man bekanntlich, um die vorgenommenen Änderungen an den Dateien nachvollziehen und bei Bedarf zurückholen zu können. Wenn man das dann tatsächlich mal machen muss, stellt man fest, dass der Weg dahin gar nicht so einfach ist und es diverse unterschiedliche Herangehensweisen dafür gibt.

Bei Github hat man sogar einen Longread für die unterschiedlichen Situationen und Wege dafür verfasst (»How to undo (almost) anything with Git«). Und bei Stack Overflow findet man eine schöne Diskussion mit hervorragend erklärten Wegen (»How to revert a Git repository to a previous commit«).

Als einfachster Weg für den Fall »ich habe an einer Datei vor 47 Commits was geändert, war aber Mist und jetzt brauche ich mal den alten Stand aus genau einer Datei« hat sich in der Praxis die folgende Vorgehensweise bewährt:

Zunächst muss man wissen, in welchen Commits die Datei überhaupt geändert wurde. Das kann man mit git log –follow– herausfinden:

  git log –follow – app/views/products/_channelproducts_form.html.haml

Das Ergebnis ist eine Liste von Commits, in der die Datei verändert wurde. Der Commit ist der, den wir brauchen:

 commit 2918261…
 Author: Ralf G… &lt;…&gt;
 Date:   Tue Dec 4 14:40:32 2018 +0100
    Umbau der Produktform…

Wenn man jetzt einfach den Commit mit git checkout 2918261 wieder auscheckt, befindet man sich in einem Zustand des »detached HEAD«, man ist also in keiner Branche mehr. Man kann dem zwar mit git checkout master wieder entfliehen. Gerade für Menschen, die das nicht so oft machen, ist die Gefahr groß, durch Änderungen und Checkouts ein kleines Durcheinander zu produzieren.

Der sichere Weg ist das Auschecken des Commits in eine neue Branche:

  git checkout -b alte_produkt_form 2918261

Die Branche alte_produkt_form befindet sich nun auf dem Stand des Commits 2918261. Man kann in dieser in aller Ruhe rummachen, ohne die anderen Branches anzurühren.

Wenn man fertig ist und gefunden hat was man braucht, kann man sich die alte Datei über verschiedene Wege (gute alte Zwischenablage oder Stash) in seinen Master übernehmen und den alten Stand dort als neuen Commit einchecken. Was die Änderung dann im Log deutlich leichter nachvollziehbar macht als ein Löschen des Commits mit anschließendem Rebase.