Praesentationen auf Landesdesign und kleine Aenderungen in Arbeitsblaettern
This commit is contained in:
parent
6e6c7d45c6
commit
5249a82135
1338 changed files with 150740 additions and 19486 deletions
110
GitLokal.adoc
110
GitLokal.adoc
|
|
@ -11,7 +11,7 @@ Zum Zeitpunkt des Erstellens dieser Materialien bieten sich verschiedene Lösung
|
|||
|
||||
* GitButler, welches unter https://gitbutler.com/[] erreichbar ist und open source eingesehen werden kann.
|
||||
|
||||
* GitHub Desktop ist unter https://desktop.github.com/download/[] verfügbar und ebenfalls open source.
|
||||
* Ungit ist unter https://github.com/FredrikNoren/ungit[] bzw. https://sourceforge.net/projects/ungit.mirror/[] verfügbar und ebenfalls open source. Es erfordert die Installation von https://nodejs.org/en[Node.js].
|
||||
|
||||
* SmartGit ist ein kommerzielles Produkt aus dem Hause Syntevo. Die Projektseite findet sich unter https://www.syntevo.com/smartgit/[]
|
||||
|
||||
|
|
@ -47,7 +47,98 @@ In seiner aktuellen Fassung (Stand 10.09.2024) verfügt Gitbutler nur über sehr
|
|||
.Branch-Ansicht mit Virtual branch
|
||||
image::bilder/GitButler/Neuer Commit.png[]
|
||||
|
||||
=== Ungit
|
||||
|
||||
Ungit kommt mit einer schlanken, übersichtlichen Benutzeroberfläche, die sich an Anfänger in der Versionsverwaltung richtet. Etwas ungewöhnlich, aber intuitiv ist, dass man viele Aktionen durch Drag & Drop von Branches ausführt.
|
||||
|
||||
==== Installation
|
||||
Für die Installation von ungit werden https://nodejs.org/en[Node.js] sowie git (≥ 2.34.x) benötigt. Um ungit zu installieren, geben Sie nach der Installation von Node.js den folgenden Befehl ein:
|
||||
|
||||
[source,shell]
|
||||
----
|
||||
npm install -g ungit
|
||||
----
|
||||
|
||||
Falls Ihr System Root-Rechte für die Installation globaler npm-Pakete erfordert, sollten Sie den Schalter `-H` verwenden:
|
||||
|
||||
[source,shell]
|
||||
----
|
||||
sudo -H npm install -g ungit
|
||||
----
|
||||
|
||||
Alternativ stehen vorkompilierte Pakete zur https://sourceforge.net/projects/ungit.mirror/[Verfügung]; git wird jedoch auch in diesem Fall weiterhin benötigt.
|
||||
|
||||
|
||||
==== Repository eröffnen
|
||||
Man startet immer mit der Auswahl eines Verzeichnisses in der Kopfzeile. Gegebenfalls wird das Verzeichnis neu angelegt. Handelt es sich noch nicht um ein Git-Repository, wird ein neues angelegt, indem es initalisiert wird oder ein bestehendes online-Repository geklont wird.
|
||||
|
||||
image::bilder/Ungit/neu.png[width=70%]
|
||||
|
||||
Bemerkung: Beim Clonen kann man leider nicht die Bezeichnung des Remotes wählen.
|
||||
|
||||
==== Commit
|
||||
Bei jeder Änderung des Repos wird automatisch ein Fenster für den Commit aller geänderten Dateien angeboten. Das Stagen der Dateien entfällt. Dies ist für Anfänger gut geeignet, da sie ohnehin keine Auswahl der zu versionierenden Dateien treffen. Alternativ kann man Dateien aber durch einen einzigen Klick zu gitignore hinzufügen.
|
||||
|
||||
image::bilder/Ungit/commit.png[width=70%]
|
||||
|
||||
Die Darstellung der Commit-History ist sehr anschaulich.
|
||||
|
||||
==== Push & Pull (Arbeiten mit Remote-Verzeichnissen)
|
||||
Exisitiert noch keine Anbindung an ein Gitcamp-Repository muss die Verbindung zunächst eingerichtet werden. Klont man ein Repo passiert das automatisch.
|
||||
|
||||
[cols="30%,70%", frame=none, grid=none]
|
||||
|===
|
||||
a| image::bilder/Ungit/addremote2.png[]
|
||||
a| image::bilder/Ungit/addremote.png[]
|
||||
|===
|
||||
|
||||
Anschließend kann man durch Anklicken des aktuellen Branches ("Fetch from Gitcamp" -> Gitcamp ist ausgewählt) die Dateien auf das gewählte Remote pushen.
|
||||
|
||||
image::bilder/Ungit/push.png[width=30%]
|
||||
|
||||
Gibt es Änderungen im Remote-Repo dann macht man diese durch "Refresh Changes" sichtbar.
|
||||
|
||||
image::bilder/Ungit/pull1.png[width=70%]
|
||||
|
||||
Einen Pull-Button gibt es leider nicht, aber man kann den Branch durch Drag & Drop auf den remote-Branch verschieben. Die Dateien werden dann automatisch per git pull aktualisiert.
|
||||
|
||||
image::bilder/Ungit/pull2.png[width=70%]
|
||||
|
||||
Umgekehrt kann man eine push-Operation auch durch das Verschieben des Remote-Repo-Zeigers erreichen.
|
||||
|
||||
==== Checkout / Historie
|
||||
Möchte man zu älteren Versionen wechseln, ist es in ungit nicht möglich nur den HEAD zu verschieben. Es wird immer ein Branch benötigt. Das vermeidet aber den problematisch detached head-State.
|
||||
|
||||
[cols="30%,70%", frame=none, grid=none]
|
||||
|===
|
||||
a| image::bilder/Ungit/branch1.png[]
|
||||
a| image::bilder/Ungit/branch2.png[]
|
||||
|
||||
image::bilder/Ungit/checkout.png[]
|
||||
|===
|
||||
|
||||
Den Zeiger auf den "Vergangenheit"-Branch kann man nun aber beliebig in der Commit-Historie per Drag & Drop verschieben.
|
||||
|
||||
==== Merge
|
||||
Einen anderen Branch merged man zum aktuellen Branch hinzu, indem man den anderen Branch-Zeiger anklickt und dann den "Merge"-Button drückt. Schön ist, dass der Effekt der Operation visuell dargestellt wird. Gleiches gilt für die Rebase-Operation.
|
||||
|
||||
image::bilder/Ungit/merge.png[width=70%]
|
||||
|
||||
Bei Merge-Konflikten wird leider kein automatischer Aufruf eines Merge-Tools vorgenommen. Das muss in der Konsole durch den Befehl `git mergetool` erfolgen.
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Um *meld* (https://meldmerge.org/[Downlaod]) dauerhaft als Mergetool zu konfigurieren, wird folgende Git-Konfiguration gesetzt:
|
||||
|
||||
`git config --global merge.tool meld` +
|
||||
`git config --global mergetool.keepBackup false`
|
||||
|
||||
Damit wird *meld* als Standard-Mergetool verwendet und es werden keine Sicherungskopien der Dateien angelegt.
|
||||
====
|
||||
|
||||
|
||||
=== SmartGit
|
||||
|
||||
==== Installation
|
||||
Smartgit gibt es in unterschiedlichen Varianten (https://www.syntevo.com/register-non-commercial/#academic): eine kostenpflichtige Version, eine kostenlose Education-Version und eine kostenlose
|
||||
Privatuser (Hobby-Edition). Für einfache Anwendungen (ohne kollaboratives Arbeiten) reicht die Hobby-Edition. Diese können Schülerinnen und Schüler leicht zu Hause installieren. In der Schule
|
||||
|
|
@ -60,11 +151,12 @@ Die Software kann als portable Version auf dem Server der Schule abgelegt werden
|
|||
. Die Datei `smartgit\bin\smartgit.vmoptions` muss so angepasst werden, dass die Settings-Einstellungen im Homeverzeichnis der Schüler gespeichert werden:
|
||||
+
|
||||
[code]
|
||||
---
|
||||
----
|
||||
-Dsmartboot.sourceDirectory=H:\smartgit-settings\updates
|
||||
-Dsmartgit.settings=H:\smartgit-settings
|
||||
-XX:ErrorFile=%EXE4J_EXEDIR%..\.settings\hs_err_pid%p.log
|
||||
---
|
||||
----
|
||||
+
|
||||
. Dieses Verzeichnis muss beim ersten Starten von Smartgit mit den Standardwerten gefüllt werden (insbesondere der Lizenzdatei und den Proxy-Einstellungen).
|
||||
Daher führt man Smartgit als Admin einmalig aus und konfiguriert die Lizenzdatei und die Starteinstellungen. Die kompletten Einstellungen werden in dem Verzeichnis
|
||||
`.settings` bzw. `H:\smartgit-settings` (wenn man Punkt 1 schon durchgeführt hat) gespeichert.
|
||||
|
|
@ -74,17 +166,17 @@ Dieses Verzeichnis kopiert man auf dem Server in ein eigenes Verzeichnis z. B. `
|
|||
. Proxy-Einstellungen: Damit der Proxy der Schule benutzt wird, muss man in der Datei `preferences.yml` folgende Zeilen anpassen:
|
||||
+
|
||||
[code]
|
||||
---
|
||||
----
|
||||
proxy: {user: %user%, authenticate: true, host: 10.10.0.1, enabled: true, port: 8080,
|
||||
autoDetect: false}
|
||||
---
|
||||
----
|
||||
+
|
||||
Die Variable %user% wird später durch ein Skript durch den Usernamen ersetzt.
|
||||
|
||||
. Statt direkt smartgit.exe zu starten, muss die Verknüpfung so angelegt werden, dass eine Batch-Datei mit folgendem Inhalt gestartet wird:
|
||||
+
|
||||
[code]
|
||||
---
|
||||
----
|
||||
if exist H:\smartgit-settings\ (
|
||||
echo Settingsverzeichnis schon vorhanden
|
||||
) else (
|
||||
|
|
@ -97,13 +189,13 @@ echo starte smartgit
|
|||
xcopy H:\smartgit-settings\.gitconfig %USERPROFILE%\ /I /Y
|
||||
p:\informatik\smartgit\bin\smartgit.exe
|
||||
xcopy %USERPROFILE%\.gitconfig H:\smartgit-settings /Y /I
|
||||
---
|
||||
----
|
||||
+
|
||||
Der erste Teil kopiert das Settingsverzeichnis, wenn es noch nicht existiert. Der Username wird durch ein vbs-Skript ausgelesen und
|
||||
angepasst.
|
||||
+
|
||||
[code]
|
||||
---
|
||||
----
|
||||
Const ForReading = 1
|
||||
Const ForWriting = 2
|
||||
|
||||
|
|
@ -120,7 +212,7 @@ strNewText = Replace(strText, strOldText, strNewText)
|
|||
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
|
||||
objFile.Write strNewText
|
||||
objFile.Close
|
||||
---
|
||||
----
|
||||
|
||||
+
|
||||
Der zweite Teil ist notwendig, wenn das %USERPROFILE% der Schüler nicht gespeichert wird. In der .gitconfig-Datei werden globale Git-Einstellungen gespeichert.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue