Artikelformat

Einstieg in GIT? Warum?

In der Webentwicklung ist der Umstieg auf GIT ein echter Trend. Vor einem Monat gab Fabien Potencier den Wechsel von svn zu GIT in der Entwicklung der neuen Symfony Version bekannt, CakePHP hat den Wechsel genauso wie phpBB schon vor einer ganzen Weile gemacht. Als Weitere wären da auch noch PHPUnit oder RubyOnRails. Dieser Trend hat natürlich auch mich interessiert, weshalb ich mein neues Projekt gleich mit GIT aufgesetzt habe. Am Anfang braucht man natürlich etwas Starthilfe, weil GIT vom Ansatz her anders als Subversion ist, aber diese Hilfe findet man in den zahlreichen Tutorials schnell.

Warum nutze ich GIT:

  • Die Geschwindigkeit:
    Da das gesamte Repository lokal gespeichert ist, sind die üblichen Arbeitsschritte wesentlich schneller als bei vielen anderen Versionsverwaltungen.
  • Offline Arbeiten
    Durch das lokale Repository kann man wunderbar Offline arbeiten. Wenn man dann später wieder online ist, kann man alle Änderungen einfach in  ein anderes Repository schieben.
  • Einfaches Taggen und Branching
    Natürlich gibt es auch bei GIT Konflikte, aber das Erstellen von Branchs und Tags ist SEHR einfach.
  • Jedes Repository ist ein Backup
    Mit GIT macht man keinen Checkout eines neuen Repositories sondern ein Clone, so hat man mit jedem neuen Repository ein komplettes Backup/eine komplette Kopie des Repositories. Bei einem Ausfall des “Hauptrepositories” kann man so sehr schnell auf ein anderes Repository umstellen.
  • Commits einfach Vorbereiten
    Git hat eine sogenannte Staging Area der man alle Änderungen für den nächsten Commit hinzufügen kann, wenn man nicht alle Dateien oder einzelne Datei Commiten möchte.

Weitere Gründe findet man hier.

Erste Schritte mit GIT:

Nun zu meinem kleinen Tutorial

Installation:

Unter Linux reicht es das Paket “git-core” zu installieren. Für Mac OS gibt es hier einen Installer und für Windows hier.

Einstellungen:

Als erstes muss man seinen Namen und die Emailadresse einstellen:

git config --global user.name "<Benutzername>"
git config --global user.email "<Email>"

Erstes Repository:

Nachdem wir uns mit GIT bekannt gemacht haben, können wir unser erstes Repository erstellen. Ich nehme einfach ein vorhandenes Projekt und führe git init aus:

david@ubuntu-server:~$ cd /home/david/project/
david@ubuntu-server:~/project$ git init
Initialized empty Git repository in /home/david/project/.git/

Jetzt fügt man einfach alle Dateien hinzu und macht den ersten commit.

david@ubuntu-server:~/project$ git add .
david@ubuntu-server:~/project$ git commit -m "initial commit"
[master (root-commit) 25c342d] initial commit
 5234 files changed, 502420 insertions(+), 0 deletions(-)
 create mode 100644 Readme
 create mode 100644 apps/admin/config/adminConfiguration.class.php
 create mode 100644 apps/admin/config/app.yml
...

Jetzt ändern wir etwas und zeigen an, was die Unterschiede sind:

david@ubuntu-server:~/project$ vim Readme
david@ubuntu-server:~/project$ git status
# On branch master
# Changed but not updated:
#   (use "git add ..." to update what will be committed)
#   (use "git checkout -- ..." to discard changes in working directory)
#
#	modified:   Readme
#
no changes added to commit (use "git add" and/or "git commit -a")
david@ubuntu-server:~/project$ git diff Readme
diff --git a/Readme b/Readme
index a40145f..5c72d5b 100644
--- a/Readme
+++ b/Readme
@@ -1 +1,2 @@
+
 A Readme TestFile
david@ubuntu-server:~/project$ git commit -m "Readme File" Readme
[master 15563d6] Readme File
 1 files changed, 1 insertions(+), 0 deletions(-)

Mit git status sieht man also die geänderten Dateien, mit git diff die Unterschiede und mit git commit commitet man die Änderungen. Da GIT keine Dateien sondern Inhalte verwaltet muss man jede Änderung vor einem Commit hinzufügen, sowohl bei neuen Dateien als auch von bereits verwalteten Dateien.

Wie geht es nun weiter? Git kann natürlich noch viel mehr als nur commits und Unterschiede anzeigen. Viele weitergehende Informationen findet ihr im opensource Buch “Pro GIT” oder in folgenden Tutorials auf meinem Blog.

1 Kommentar

  1. Pingback: git-annex: Git mit Anhang | davidsCorner.de

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.