GIT- Schnellstart

Wie geht GIT, kurz und knapp zum Schnelleinstieg.

Abstrakt

Zu GIT gibt es im Netz eine Fülle an detaillierten Tutorials und Guides zum Schnelleinstieg. In diesem Artikel sind meine eigenen Erfahrungen dazu wiedergegeben, praxisorientiert mit den Dingen die ich im Moment nützlich finde und brauche.

Grundlagen

Alle Links in diesem Artikel wurden am 20.11.2017 zuletzt abgerufen. Ich beschränke mich hier lediglich auf das Arbeiten mit einem sogenannten lokalen repository. Wenn Sie GIT installiert haben, dann gehen Sie in die Konsole ihres Systems und geben ein:

git –version

Vergleichen Sie die Ausgabe mit der von mir genutzten Version:

git version 1.8.5.2 (Apple Git-48)

Sie sehen, ich habe einen Macintosh. Sollte irgendwo hier etwas anderes zutreffen, erwähne ich es.

Wenn ich mich auf Android Studio beziehe, dann meine ich damit die Version 2.3.3

Shell, neues repository anlegen

Im Verzeichnis, in dem wir künftig arbeiten wollen geben wir zunächst ein:

git init

Damit hätten wir die GIT- Kontrolle für diese Verzeichnis eingeschaltet, oder, in der GIT- Terminologie: Das Verzeichnis enthält nun ein GIT- repository. Wenn wir nun eingeben:

git status

Dann können zwei Dinge passieren. Erstens, das Verzeichnis entält ein GIT repositiory:

Initial commit

Untracked files:

(use „git add <file>…“ to include in what will be committed)

Hallo.class

Hallo.java

nothing added to commit but untracked files present (use „git add“ to track)

Zweitens: Das aktuelle Verzeichnis, oder eines der „Eltern“ davon enthält kein GIT repository:

fatal: Not a git repository (or any of the parent directories): .git

Die vorletzte Ausgabe zeigt uns schon, dass GIT sehr freundlich ist und uns sagt, was zu tun ist nähmlich, das Sie eine Datei deren Änderungsstand Sie überwachen und dokumentiert haben möchten mit ‚add‘ anmelden müssen:

git add <datei>

Wenn Sie das gemacht haben, sagt ihnen GIT nach erneuter Statusabfrage das:

Changes to be committed:

(use „git rm –cached <file>…“ to unstage)

new file:   Hallo.java

Untracked files:

(use „git add <file>…“ to include in what will be committed)

Hallo.class

Die Datei ‚Hallo.java‘ ist angemeldet. In GIT heist das, dass sich diese Datei in der sogenannten Staging Area befindet. GIT sagt uns auch gleich was zu tun ist, wenn ich die Datei nicht mehr dort haben möchte (‚rm –cached <Datei>).

Alle Dateien in der Staging Area werden nach dem „commit’en“ mit ihren Änderungen protokolliert. Das Schaut dann so aus:

git commit

Ich habe mir in der GIT- Konfiguration den Emacs als Standard Editor eingestellt. Wenn Sie das auch gemacht haben (irgend ein anderer, wenn es sein muss auch Vi, geht auch) dann startet der und Sie können eine Commit Message eingeben. Nach dem Verlassen des Editors, ist der commit erledigt und GIT antwortet:

[master (root-commit) 258ae40] Erste Version

1 file changed, 12 insertions(+)

create mode 100644 Hallo.java

Die erste Zeile wiederholt nochmals ihre Commit Message. Interessant ist das, was davor steht: master…….

In GIT können Sie parallel zu ihren jeweiligen Datei- Versionen, parallele Arbeitstände bearbeiten. Diese Parallel Versionen werden in GIT Branches genannt. Es lassen sich beliebige viele Branches anlegen und zu jedem Zeitpunkt wieder vereinen.

 

Die Ausgabe oben sagt uns, das wir die Datei ‚Hallo.java‘ im standardmäßig angelegten Branch ‚Master‘ commitet haben.

Branches

Einen neuen Branch können Sie mit:

git branch neuerBranch

Sie befinden Sich danach immer noch in ihrem Branch ‚Master‘. Sie wechseln mit:

git checkout neuerBranch

M Hallo.java

Switched to branch ’neuerBranch‘

Dieser Branch ist jungfräulich und Sie müssen die Eingangs beschrieben Schritte zum commiten wiederholen. Alle Änderungen werden nun aber nur in ihrem ’neuerBranch‘ protokoliert. Das betrifft auch jede Datei die Sie ändern. Wenn Sie in einen anderen Branch wechseln, dann finden Sie dort den jeweilig anderen Arbeitsstand wieder. Das heist: Sie haben jetzt zwei Dateien die Sie unabhängig voneinander testen können.

Um eine Übersicht über alle Branches zu bekommen geben Sie ein:

git branch

master

* neuerBranch

Der aktive ist mit einem ‚*‘ markiert.

Wenn Sie die Änderungen zusammenführen möchten, dann machen Sie das So:

git merge master neuerBranch

Updating 258ae40..d92b0fa

Fast-forward

Hallo.java | 4 +++-

1 file changed, 3 insertions(+), 1 deletion(-)

Wenn Sie das jetzt nocheinmal machen, dann passiert folgendes:

git merge master neuerBranch

Already up-to-date.

Das heist, beide Branche’s sind synchron.
 

 

 

Advertisements

Source Control

Nützliche Sache, nicht nur bei großen Projekten.

Alle Links in diesem Artikel wurden zuletzt am 15.11.2017 aufgerufen.

GIT
Die Homepage gibt es dort: https://git-scm.com

Wie das in X- Code mit Hilfe des Git Systems funktioniert, kann man da nachlesen:
Artikel auf Galileo Computing

Mehr zur Geschichte und einen Vergleich unterschiedlicher Systeme erfährt man beim lesen des GNU Emacs Manual. Dort ab Seite 276 zu finden (Ausgabe 17 zu Emacs Version 24.3)

Last but not least. Ein sehr ausführliches online- Tutorial findet sich da:
Tutorial auf Vogel/a

Zum Schnelleinstieg, ohne GUI Schnick- Schnack – eignet sich die Seite hier: https://www.tutorialspoint.com/git/git_basic_concepts.htm

Andere….

Offen….