LernMoment / einstieg-csharp-taschenrechner

Quellcode für den Taschenrechner welcher im Udemy Kurs "Einstieg in C#" erstellt wird.
http://www.lernmoment.de/einstieg-csharp/
15 stars 84 forks source link

Versionsstände, Versionsbaum? #58

Open GitHub-user-123456789 opened 4 years ago

GitHub-user-123456789 commented 4 years ago

Ich probiere das jetzt mal!

@suchja:

suchja commented 4 years ago

@GitHub-user-123456789 Hallo und herzlich willkommen auf GitHub. Freut mich, dass du bei LernMoment.de gelandet bist und hier einfach mal eine Frage stellst.

Die unterschiedlichen Versionsstände werden bei Git (siehe auch GitHub ist nicht Git) als Commit bezeichnet. Wenn du auf die Startseite eines Repositories gehst (also diese), findest du den Bereich Commits (siehe folgendes Bild zur Veranschaulichung). Wenn du darauf klickst, öffnet sich die Versionshistorie für den ausgewählten Branch.

Bildschirmfoto 2020-01-05 um 01 13 08

Die Kennzeichnung von Issues kannst du mithilfe von Labels umsetzen. Einfach auf das Zahnrad rechts daneben klicken und du siehst welche Labels für dein Issue bereits definiert sind (GitHub legt für jedes Projekt welche an). Nun kannst du aus den vorhandenen 1 oder mehrere auswählen oder über Edit bestehende verändern und neu hinzufügen.

Schwieriger wird es bei der Frage wie die Semantik dahinter aussehen kann/soll. Das wird von Projekt zu Projekt unterschiedliche gemacht. Für ein mittlerweile archiviertes Beispielprojekt habe ich das so gemacht.

WERBUNG Solche und weitere Details zu GitHub erkläre ich dir in meinem Online-Video-Kurs "Einstieg in GitHub". WERBUNG Ende

Ich hoffe das hilft dir erstmal etwas weiter. Wenn du weitere Fragen hast, dann gerne her damit. Wenn dieses Thema für dich erstmal erledigt ist, kannst du gerne dieses Issue selber schließen. Du als Verfasser des issues und ich als Projektinhaber sind dazu berechtigt.

GitHub-user-123456789 commented 4 years ago

Branches, Commits: Das habe ich jetzt verstanden. Die Issues scheinen aber nicht spezifisch einem Branch.Commit zugeordnet zu sein. Irre ich mich? Viele Issues beziehen sich lediglich auf einen Versionsstand innerhalb eines Branches.

Das Zahnrad finde ich nicht. Auch jetzt nicht. Vielleicht klärt sich das, wenn ich mal einen neuen Issue anlegen sollte.

Das Zusammenwirken von Git und GitHub ist mir in praxi unklar. Ich kann eine Version herunterladen und sie dem Entwicklungssystem vorlegen. Die IDE VS 2019 impliziert mit entsprechenden Erweiterungen ( liegen vor ) sicherlich eine Synchronisierung von Git und GitHub. Somit: Wann wird angestoßen bzw. wann muß / sollte ich anstoßen einen Fork ( Hä-ähm. )?

Z.Z. bewege ich mich in VS 2019, WPF, C# unter Windows 7 und Git / GitHub. Ein vergleichbares Zusammenspiel muß ich später unter Linux ( Mint ) durchspielen. Natürlich schiele ich z.B. auf Docker für das z.Z. keine gute Umsetzung für Windows 7 vorzuliegen scheint. Windows 10 lehne ich wg. fehlender Privacy grundsätzlich ab ( Das Problem sehe ich i.Ü. auch bei VS 2019! ). Mein Erfahrungen liegen im Bereich Pascal, C, Microassembler, (n)make, Bash, Batch usw. IDEs und Versionskontrolle habe ich immer händisch, gehandhabt.

Was ich nicht ganz verstehe: Wie grenzt Du "Einstieg in GitHub" und "Grundlagen von GitHub" voneinander ab? Ich sehe für mich auf Dauer ein immenses Kostenproblem!

Ich weiß, ein wenig viel. Ein Issue ist ja nicht ein Diskussions-Forum. Ich hoffe, Du siehst es mir nach.

suchja commented 4 years ago

Zu deiner Frage:

Branches, Commits: Das habe ich jetzt verstanden. Die Issues scheinen aber nicht spezifisch einem Branch.Commit zugeordnet zu sein. Irre ich mich? Viele Issues beziehen sich lediglich auf einen Versionsstand innerhalb eines Branches.

Issues sind erstmal komplett unabhängig von Branches und Commits. Natürlich kannst du eine Frage stellen oder ein Problem haben zu einem ganz spezifischen Quellcode-Stand, Branch, ... Dann erklärst du das einfach im Text des Issues. GitHub erlaubt es auch direkt Links zwischen Issues, Commits, ... zu erzeugen (hast du ja bereits gemacht). Dann ist es so, dass wenn ein Issue (welches z.B. ein Problem beschreibt) bearbeitet wird, kann im Commit die Nummer des Issues angegeben werden. Nun wird von GitHub automatisch ein Link erzeugt und im Issue wird ein Eintrag generiert der zeigt, dass ein Commit sich auf dieses Issue bezieht. Dabei ist aber auch die Denkweise von Commit in Richtung Issue. Die grundlegende Idee bei einem Issue ist, dass du oder besser noch der Anwender darin ein Problem beschreibt. Dieses ist überlicherweise erstmal komplett unabhängig von der Quellcode Version. Nun kommt der Entwickler her und bearbeitet das Issue. Dabei legt er vielleicht einen neuen Branch an, findet die passende Version in der sich ein Fehler eingeschlichen hat, ... Schließlich macht er eine oder mehrere Änderungen und kann dabei das Issue referenzieren.

Zum Thema:

Das Zahnrad finde ich nicht. Auch jetzt nicht. Vielleicht klärt sich das, wenn ich mal einen neuen Issue anlegen sollte.

Bildschirmfoto 2020-01-07 um 13 12 56

Labels werden für das komplette Projekt angelegt und nicht für ein spezifisches Issue. Daher kannst du während du ein Issue neu erstellst das Zahnrad nicht sehen. Es ist allerdings sichtbar (wie im Bild gezeigt), wenn du dir ein Issue anschaust oder alternativ kannst du in die Übersicht der Issues gehen und dort auf Label klicken (siehe folgendes Bild).

Bildschirmfoto 2020-01-07 um 13 30 59

Zum Thema:

Das Zusammenwirken von Git und GitHub ist mir in praxi unklar. Ich kann eine Version herunterladen und sie dem Entwicklungssystem vorlegen. Die IDE VS 2019 impliziert mit entsprechenden Erweiterungen ( liegen vor ) sicherlich eine Synchronisierung von Git und GitHub. Somit: Wann wird angestoßen bzw. wann muß / sollte ich anstoßen einen Fork ( Hä-ähm. )?

Wichtig ist erstmal den Unterschied zwischen Git und GitHub zu verstehen. Das erkläre ich in diesem Video. Bei Git handelt es sich um ein dezentrales Versionierungssystem und du musst du selber entscheiden wie du das in deinem Entwicklungsprozess am besten verwendest. Das heißt, Git hält nach einem Commit die Änderungen erstmal lokal und du entscheidest selber wann die Änderungen an das Remote-Repository (z.B. GitHub) geschickt werden. Das ist halt insbesondere bei der Arbeit im Team wichtig. Grundsätzlich passiert nichts kompliziertes. Wenn du an einem bestehenden Projekt von einem anderen GitHub-Benutzer arbeiten willst, dann erstellst du einen Fork, klonst den Fork auf deinen Rechner (z.B. mit VS2019), machst die entsprechenden Änderungen, synchronisierst die Änderungen zurück nach GitHub und erstellst daraus einen PullRequest. Wurde der PullRequest angenommen, kannst du deinen Fork wieder löschen und gut.

Arbeitest du an deinen eigenen Projekten und hast sie auf GitHub (quasi als eine Art Cloud-Speicher) dann brauchst du überhaupt keinen Fork. Wie das Anlegen in VS2019 und die Synchronisation geht erkläre ich dann in #59 bzw. du hast es ja scheinbar schon selber rausgefunden.

Zu deiner Frage:

Was ich nicht ganz verstehe: Wie grenzt Du "Einstieg in GitHub" und "Grundlagen von GitHub" voneinander ab? Ich sehe für mich auf Dauer ein immenses Kostenproblem!

Im kostenlosen Tutorial "Grundlagen von GitHub" gebe ich dir eine Einführung in die 3 Kernkonzepte von GitHub (Fork, Pull Request und Issues). Im kostenpflichtigen Kurs "Einstieg in GitHub" bekommst du (fast ;) alles Rund um GitHub erklärt (z.B. die Erstellung und Verwendung von Labels und Milestones), es gibt wesentlich mehr Übungen und es wird einiges in Richtung Verwendung von GitHub mit Visual Studio (momentan noch in der Version 2017) erklärt.

Mir ist nicht wirklich klar was das Kostenproblem ist. Geht es dir um die Kosten für den Kurs? Momentan kostet der Kurs rund 20€, aber es wird in den nächsten Tagen nochmals die Möglichkeit geben den Kurs etwas günstiger zu bekommen. Dem Feedback und Bewertungen zu folge ist der Preis wohl nicht unangemessen. Dazu kommt, dass ich so wenigstens einen Bruchteil der Zeit vergütet bekomme die ich (gerne) auf bringe um Einsteigern gutes Lernmaterial und eine kostenlose Unterstützung (wie hier in deinem Fall) zur Verfügung zu stellen.

GitHub-user-123456789 commented 4 years ago

"Kostenproblem" - Der Preis ist angemessen; keine Frage! Ich sehe für mich nur die Schwierigkeit, daß ich grundsätzlich mit weiteren Kursen zu rechnen habe, die, wenn sie Qualität haben sollen, eben nicht kostenfrei sind / sein können. Kaufmännisch gedacht muß ich mich aber beschränken. Ich fürchte nämlich Selektion durch Kosten wie der Teufel das Weiwasser!

Ich lasse dieses Issue offen, damit alle Interessenten erfahren, wenn Dein aktualisiertes Video "Einstieg in GitHub" verfügbar ist. ( Ich werde es wohl buchen. ). Alle weiteren Fragen stelle ich bis dahin zurück.