RSS

Archiv der Kategorie: IT

Kostenloser DynDNS Service unter neuer URL


Motivation

Als ich heute meine WordPress Seite mit der URL „jkhofmann.dlinkddns.com/wordpress“ aufgerufen habe, war diese leider nicht mehr verfügbar. Zunächst dachte ich, der DNS Server von DynDNS ist unten, aber nach und nach zweifelte ich daran. Wie man u.a. auf http://www.searchnetworking.de/forum/messages.cfm?threadid=2E0A0F4B-DFB1-46B1-8E39489B36394705 nachlesen kann, hat DynDNS alle freien Accounts wohl eingestellt. Nicht ganz!!! Wie ich feststellen konnte, sind diese lediglich umgezogen, zu einer anderen URL: https://www.dlinkddns.com/.

Das ist einerseits zwar ärgerlich, da die vorhandene URL umgestellt werden muss. Andererseits ist der Service kostenlos und „einem geschenkten Gaul schaut man nicht ins Maul“. Zudem gibt es eine Möglichkeit den DynDNS Account relativ einfach umzustellen.

Umzug von DynDNS nach Dynamic DNS (D-Link)

Ich musste zunächst meinen Account auf DynDNS vollständig löschen. Danach habe ich einen neuen Account auf https://www.dlinkddns.com/login angelegt und einen Host registriert:

Auswahl_008

Leider erhält man nicht mehr den gleichen Domain-Namen, es steht nur „“ zur Auswahl 😦

Unter New IP Address die aktuelle IP-Adresse, z.B. der Fritz!Box eingeben, z.B.:

Auswahl_009

Danach die Einstellungen für den DynDNS Updater anpassen:

Auswahl_010

Ja, Ihr lest richtig, als „Dynamic DNS Anbieter“ kann man nach wie vor „dyndns.org“ verwenden 🙂

„Übernehmen“ Button nicht vergessen!

Danach ist bis auf die neue URL alles beim „Alten“. Wer beispielsweise WordPress verwendet, muss die Konfiguration ebenfalls umstellen! Das geht am einfachsten, indem man sich auf der WordPress Datenbank einloggt und die Tabelle „wp_options“ bearbeitet. Hier trägt man unter „siteurl“ die neue URL ein.

Beispiel:

Auswahl_011

Um ganz sicher zu gehen, dass alle alten URLs ersetzt werden, sollte man alle Tabellen durchgehen und die MySQL-REPLACE-Funktion einsetzen:

show tables;

update Tabelle set Feld = replace(Feld,’jkhofmann.dyndns.org‘,’jkhofmann.dlinkddns.com‘) where instr(Feld,’jkhofmann.dyndns.org‘) > 0;

 

Fazit

Ist natürlich ärgerlich für mich und für meine Leser. Andererseits ist das ein freier Service, dessen sollte man sich von Anfang an bewusst sein.

 
2 Kommentare

Verfasst von - Februar 25, 2013 in IT

 

Schlagwörter: , ,

Git: Quick Guide: Arbeiten mit Remote-Repositories

Git: Quick Guide: Arbeiten mit Remote-Repositories

 

Motivation

Ich habe mir hier mal die Mühe gemacht den Git-Anwendungsfall „Arbeiten mit Remote-Repositories“ als Quick-Guide zusammenzufassen. Wer umfangreichere Informationen wünscht, sei auf den Artikel „Git: Kurzanleitung “Fit für Git” 😉“ verwiesen, bzw. auf die darin enthaltenen Links.

Voraussetzungen

  1. Es ist ein lokales Projekt auf dem Client vorhanden, das auf dem Server publiziert werden soll
  2. Der Server ist als shareable Git-Repository eingerichtet

Server

  1. Auf dem Server einloggen, z.B.:
    cd /exports/git/repos
  2. Im Repository Verzeichnis das Projekt leer anlegen,
    mkdir Projektname.git
    z.B.:
    mkdir –p sapnwds73/SOAP2REST.git
  3. In das neue Repository-Verzeichnis wechseln
  4. Repository initialisieren:
    sudo git init –bare –shared

Client 1: Server Repo initial befüllen

  1. In das lokale Projektverzeichnis wechseln
  2. „git init“ durchführen
  3. Mit dem Remote-Repository auf dem Server verlinken:
    git remote add origin juergen@aspire:Remote-Repos-Verzeichnis/Projektname.git
    z.B.:
    git remote add origin juergen@aspire:/exports/git/repos/sapnwds73/SOAP2REST.git
  4. Dateien zur Versionskontrolle hinzufügen (in Staging-Area verschieben):
    git add .
  5. Dateien in die lokales Repository verschieben:
    git commit -m Kommentar
    z.B.:
    git commit -m „Initial Revision“
  6. Inhalt auf Server schieben (einchecken):
    git push origin master
  7. Check:
    git status

==> Projekt ist auf dem Server und kann von anderen Clients ausgecheckt werden!

Client 2: Server Repo auschecken

  1. Verzeichnis anlegen
  2. In das Verzeichnis wechseln
  3. Auschecken des Projektes:
    git clone juergen@aspire:Remote-Repos-Verzeichnis/Projektname.git
    z.B.:
    git clone juergen@aspire:/exports/git/repos/sapnwds73/SOAP2REST.git
  4. Änderungen durchführen, z.B.:
    Dateien hinzufügen (git add Datei)
    Dateien ändern (keine Aktion notwendig)
    Dateien umbenennen (git mv Datei)
    Dateien löschen (git rm Datei)
  5. Änderungen überprüfen:
    git diff
  6. Dateien in die lokales Repository verschieben:
    git commit -m Kommentar
    z.B.:
    git commit -m „Initial Revision“
  7. Inhalt auf Server schieben (einchecken):
    git push origin master
  8. Check:
    git status

==> Änderungen des Projektes sind auf dem Server und können von anderen Clients ausgecheckt werden!

Links

 Git: Kurzanleitung “Fit für Git” 😉

 

Sorry, this post is not available in english language 😦

 
Hinterlasse einen Kommentar

Verfasst von - Februar 24, 2013 in IT, Softwareentwicklung

 

Schlagwörter: ,

Notepad++ auf Linux laufen lassen

Notepad++ auf Linux laufen lassen

Motivation

Es gibt eine Vielzahl von Editoren, die auch für Programmierung geeignet sind. Im Laufe der Jahre habe ich Notepad++ als meinen Favoriten auserkoren. Leider gibt es derzeit keine native Linux-Version, aber es gibt Wine. Beide können glücklicherweise miteinander, so dass einer Verwendung unter Linux nichts im Wege steht.

change.log - Notepad++_006

Installation

Vorgehensweise:

  1. Download und Installation von Wine (geht meist einfach und schnell über den Package-Manager der verwendeten Linux-Distro)
  2. Download von Notepad++, z.B. nach ~/Download/npp.6.3.Installer.exe
  3. Download-Datei ins virtuelle C: Laufwerk von Wine kopieren:
    mv ~/Download/npp.6.3.Installer.exe ~/.wine/drive_c
  4. Installation Notepad++:
    wine c:\npp.6.3.Installer.exe
  5. Notepad++ kann nun wie jede andere Linux-App gestartet und verwendet werden

Plugins installieren

mit dem Plugin-Manager

Nach dem Start von Notepad++ findet man im Menü unter Erweiterungen den Plugin-Manager. Dieses Tool erlaubt eine einfache und schnelle Installation der aktuell vorhandenen Plugins. Zudem kann man sehen, ob die Plugins mit der verwendeten Version des Notepad++ funktionieren.

Man wählt einfach die gewünschten Plugins aus und installiert diese:

Plugin Manager_005

 

Ein Neustart von Notepad++ ist zur Aktivierung der Plugins notwendig!

manuelle Installation

Plugins sind u.a. auf http://sourceforge.net/projects/npp-plugins/files/ zu finden.

Interessant sind für mich die „XML Tools“ und das „Notepad++ Compare plugin“, beide zu finden auf dem o.g. Link.

Vorgehensweise:

  1. Download der Plugins (ZIP-Format)
  2. Kopieren der ZIP Dateien nach ~/.wine/drive_c
  3. Einen Datei-Explorer starten
  4. In das virtuelle C: Laufwerk von Wine wechseln, z.B.: ~/.wine/dosdevices/c:/
  5. ZIP Dateien entpacken
  6. In das entpackte Verzeichnis wechseln
  7. Die Datein in das Installationsverzeichnis von Notepad++ kopieren, z.B. nach ~/.wine/dosdevices/c:/Program Files (x86)/Notepad++/plugins 
  8. Notepad++ neu starten

Fazit

 Ich hatte keine Probleme mit der Installation von Notepad++. Die Installation ist einfach und funktioniert 🙂

 

This post is not avaiable in english. Sorry!

 
Hinterlasse einen Kommentar

Verfasst von - Februar 8, 2013 in IT, Linux, Softwareentwicklung

 

Schlagwörter: , ,

Kurzmitteilung

Compton ist ein weiterer Kandidat in der Riege der leichtgewichtigen Composition-Manager. Im Lubuntu Blog wurde das Interesse für die Distribution bereits mit dem Artikel „Compton (shadow effects and more)“ angekündigt. Jetzt gibt es demnächst ein PPA („New Compton PPA„), so dass man davon ausgehen kann, dass diese „verbesserte“ Version des „xcompmgr“ (Compton ist ein Fork des xcompmgr-dana mit vielen aktuellen Bugfixes), bald Einzug in den Standard Lubuntu Distribution finden wird.

The post is not available in english! Sorry!

 

Lubuntu: Compton Composite Manager

 
Hinterlasse einen Kommentar

Verfasst von - Januar 27, 2013 in IT, Linux

 

Schlagwörter: , ,

Linux Mint 13 “Maya” – Nur das Beste aus „Nadia“ übernehmen

Linux Mint 13 “Maya” – Nur das Beste aus „Nadia“ übernehmen

Motivation

Für viele „Maya“ Benutzer ist es zweifelsohne eine Überlegung wert auf „Nadia“ umzusteigen. Schließlich basiert Linux Mint “Nadia” auf Ubuntu 12.10, welches leider keinen Long Term Support-Version (LTS) von Ubuntu enthält (Support nur bis April 2014 (Desktop und Server)). Hingegen soll das auf Ubuntu 12.04 basierende Linux Mint „Maya“ bis  April 2017 mit Updates versorgt werden. Ich habe auf dem Linux Mint Blog den Artikel “Nadia backports available in Linux Mint 13” entdeckt, der ein Upgrade der wichtigsten Verbesserungen von “Nadia” auf “Maya” erlaubt:

“The most significant improvements in Nadia are being backported to Maya…Among other things, this gives Linux Mint 13 LTS users access to the following packages…MDM 1.0.7…Cinnamon 1.6.7 (with Nemo 1.1.2 and Muffin 1.1.2)…” (Nadia backports available in Linux Mint 13)

Also eine gute Alternative auf „Maya“ zu bleiben und trotzdem die wichtigsten Features von „Nadia“ zu nutzen. Da freut sich aber unsereiner 😉

 

I did it

Die Vorgehensweise ist einfach und gut beschrieben. Es werden folgende Ändeurngen durchgeführt:

Install:

  • nemo:amd64 (1.1.2+maya, automatic),
  • gkbd-capplet:amd64 (3.4.0.2-1, automatic),
  • nemo-fileroller:amd64 (1.0.0+maya, automatic),
  • python-lxml:amd64 (2.3.2-1, automatic),
  • libnemo-extension1:amd64 (1.1.2+maya, automatic),
  • nemo-data:amd64 (1.1.2+maya, automatic)

Upgrade:

  • cinnamon:amd64 (1.4-UP3, 1.6.7+maya),
  • cinnamon-themes:amd64 (2012.05.20, 2012.11.06),
  • x11proto-randr-dev:amd64 (1.4.0+git20101207.0d32bb07-0ubuntu2, 1.4.0+git20120101.is.really.1.4.0-0ubuntu1~precise1),
  • mplayer2:amd64 (2.0-426-gc32b3ed-2, 2.0-426-gc32b3ed-2ubuntu0.1),
  • gir1.2-muffin-3.0:amd64 (1.0.3-UP2, 1.1.2+maya),
  • libmuffin0:amd64 (1.0.3-UP2, 1.1.2+maya),
  • muffin-common:amd64 (1.0.3-UP2, 1.1.2+maya),
  • mint-artwork-cinnamon:amd64 (2.0, 2.9)

Nach einem Reboot stehen die neuen Komponenten zur Verfügung.

Man erhält die neuen Cinnamon-Einstellungen, wie in „Linux Mint 14 “Nadia” mit Cinnamon 1.6: Erste Eindrücke auf einer VM“ beschrieben:

Cinnamon-Einstellungen_002

Der Dateimanager „Nemo“ (rechts) wird parallel zu „Nautilus“ (links) installiert:

Auswahl_003 

Um Nemo nun auch als Default-Datei-Manager zu setzen, bin ich wiefolgt vorgegangen:

  1. Befehle in Shell absetzen:
    xdg-mime query default inode/directory
    xdg-mime default nemo.desktop inode/directory application
  2. Reboot des Systems

Wenn man, wie ich, Nemo als einzigen Datei-Manager verwenden will, kann man den Nautilus auch komplett deinstallieren.

Die wesentlichen Features von Cinnamon 1.6 habe ich in „Linux Mint 14 “Nadia” mit Cinnamon 1.6: Erste Eindrücke auf einer VM“ hinreichend beschrieben. Die gelten natürlich auch hier 🙂

 

Fazit

Für mich war das Update ein guter Kompromiss, den LTS von „Maya“ zu nutzen und trotzdem auf die wesentlichen Neuerungen der Mint Distribution nicht verzichten zu müssen. Das problemlose Update hat mir die Entscheidung einfach gemacht.

 

Links 

Linux Mint 14 “Nadia” mit Cinnamon 1.6: Erste Eindrücke auf einer VM

Nadia backports available in Linux Mint 13

 

motivation

A lot of „Maya“ users might think about upgrading their Mint installation to the „Nadia“ release. A lot of them might come to the decision that this is a bad idea, since Linux Mint “Nadia” is based on Ubuntu 12.10, which unfortunately is not declared as a Long Term Support-version (LTS) of Ubuntu.

All you have to do is described in “Nadia backports available in Linux Mint 13”:

“The most significant improvements in Nadia are being backported to Maya…Among other things, this gives Linux Mint 13 LTS users access to the following packages…MDM 1.0.7…Cinnamon 1.6.7 (with Nemo 1.1.2 and Muffin 1.1.2)…” (Nadia backports available in Linux Mint 13)

 

I did it

I followed the steps and it worked like a charm. The result was:

Installation:

  • nemo:amd64 (1.1.2+maya, automatic),
  • gkbd-capplet:amd64 (3.4.0.2-1, automatic),
  • nemo-fileroller:amd64 (1.0.0+maya, automatic),
  • python-lxml:amd64 (2.3.2-1, automatic),
  • libnemo-extension1:amd64 (1.1.2+maya, automatic),
  • nemo-data:amd64 (1.1.2+maya, automatic)

Upgrade:

  • cinnamon:amd64 (1.4-UP3, 1.6.7+maya),
  • cinnamon-themes:amd64 (2012.05.20, 2012.11.06),
  • x11proto-randr-dev:amd64 (1.4.0+git20101207.0d32bb07-0ubuntu2, 1.4.0+git20120101.is.really.1.4.0-0ubuntu1~precise1),
  • mplayer2:amd64 (2.0-426-gc32b3ed-2, 2.0-426-gc32b3ed-2ubuntu0.1),
  • gir1.2-muffin-3.0:amd64 (1.0.3-UP2, 1.1.2+maya),
  • libmuffin0:amd64 (1.0.3-UP2, 1.1.2+maya),
  • muffin-common:amd64 (1.0.3-UP2, 1.1.2+maya),
  • mint-artwork-cinnamon:amd64 (2.0, 2.9)

Don’t forget to reboot !

 

Summary

In my opinion a really good compromise to stay on an LTS release and in parallel to use the most important improvements of the Mint „Nadia“ release. 

 

Links 

Linux Mint 14 “Nadia” mit Cinnamon 1.6: Erste Eindrücke auf einer VM

Nadia backports available in Linux Mint 13

 

 
Hinterlasse einen Kommentar

Verfasst von - Januar 19, 2013 in IT, Linux

 

Schlagwörter: , , , , , ,

Linux Mint 13 “Maya” – Nur das Beste aus "Nadia" übernehmen

Linux Mint 13 “Maya” – Nur das Beste aus "Nadia" übernehmen

Motivation

Für viele „Maya“ Benutzer ist es zweifelsohne eine Überlegung wert auf „Nadia“ umzusteigen. Schließlich basiert Linux Mint “Nadia” auf Ubuntu 12.10, welches leider keinen Long Term Support-Version (LTS) von Ubuntu enthält (Support nur bis April 2014 (Desktop und Server)). Hingegen soll das auf Ubuntu 12.04 basierende Linux Mint „Maya“ bis  April 2017 mit Updates versorgt werden. Ich habe auf dem Linux Mint Blog den Artikel “Nadia backports available in Linux Mint 13” entdeckt, der ein Upgrade der wichtigsten Verbesserungen von “Nadia” auf “Maya” erlaubt:

“The most significant improvements in Nadia are being backported to Maya…Among other things, this gives Linux Mint 13 LTS users access to the following packages…MDM 1.0.7…Cinnamon 1.6.7 (with Nemo 1.1.2 and Muffin 1.1.2)…” (Nadia backports available in Linux Mint 13)

Also eine gute Alternative auf „Maya“ zu bleiben und trotzdem die wichtigsten Features von „Nadia“ zu nutzen. Da freut sich aber unsereiner 😉

 

I did it

Die Vorgehensweise ist einfach und gut beschrieben. Es werden folgende Ändeurngen durchgeführt:

Install:

  • nemo:amd64 (1.1.2+maya, automatic),
  • gkbd-capplet:amd64 (3.4.0.2-1, automatic),
  • nemo-fileroller:amd64 (1.0.0+maya, automatic),
  • python-lxml:amd64 (2.3.2-1, automatic),
  • libnemo-extension1:amd64 (1.1.2+maya, automatic),
  • nemo-data:amd64 (1.1.2+maya, automatic)

Upgrade:

  • cinnamon:amd64 (1.4-UP3, 1.6.7+maya),
  • cinnamon-themes:amd64 (2012.05.20, 2012.11.06),
  • x11proto-randr-dev:amd64 (1.4.0+git20101207.0d32bb07-0ubuntu2, 1.4.0+git20120101.is.really.1.4.0-0ubuntu1~precise1),
  • mplayer2:amd64 (2.0-426-gc32b3ed-2, 2.0-426-gc32b3ed-2ubuntu0.1),
  • gir1.2-muffin-3.0:amd64 (1.0.3-UP2, 1.1.2+maya),
  • libmuffin0:amd64 (1.0.3-UP2, 1.1.2+maya),
  • muffin-common:amd64 (1.0.3-UP2, 1.1.2+maya),
  • mint-artwork-cinnamon:amd64 (2.0, 2.9)

Nach einem Reboot stehen die neuen Komponenten zur Verfügung.

Man erhält die neuen Cinnamon-Einstellungen, wie in „Linux Mint 14 “Nadia” mit Cinnamon 1.6: Erste Eindrücke auf einer VM“ beschrieben:

Cinnamon-Einstellungen_002

Der Dateimanager „Nemo“ (rechts) wird parallel zu „Nautilus“ (links) installiert:

Auswahl_003 

Um Nemo nun auch als Default-Datei-Manager zu setzen, bin ich wiefolgt vorgegangen:

  1. Befehle in Shell absetzen:
    xdg-mime query default inode/directory
    xdg-mime default nemo.desktop inode/directory application
  2. Reboot des Systems

Wenn man, wie ich, Nemo als einzigen Datei-Manager verwenden will, kann man den Nautilus auch komplett deinstallieren.

Die wesentlichen Features von Cinnamon 1.6 habe ich in „Linux Mint 14 “Nadia” mit Cinnamon 1.6: Erste Eindrücke auf einer VM“ hinreichend beschrieben. Die gelten natürlich auch hier 🙂

 

Fazit

Für mich war das Update ein guter Kompromiss, den LTS von „Maya“ zu nutzen und trotzdem auf die wesentlichen Neuerungen der Mint Distribution nicht verzichten zu müssen. Das problemlose Update hat mir die Entscheidung einfach gemacht.

 

Links 

Linux Mint 14 “Nadia” mit Cinnamon 1.6: Erste Eindrücke auf einer VM

Nadia backports available in Linux Mint 13

 

motivation

A lot of „Maya“ users might think about upgrading their Mint installation to the „Nadia“ release. A lot of them might come to the decision that this is a bad idea, since Linux Mint “Nadia” is based on Ubuntu 12.10, which unfortunately is not declared as a Long Term Support-version (LTS) of Ubuntu.

All you have to do is described in “Nadia backports available in Linux Mint 13”:

“The most significant improvements in Nadia are being backported to Maya…Among other things, this gives Linux Mint 13 LTS users access to the following packages…MDM 1.0.7…Cinnamon 1.6.7 (with Nemo 1.1.2 and Muffin 1.1.2)…” (Nadia backports available in Linux Mint 13)

 

I did it

I followed the steps and it worked like a charm. The result was:

Installation:

  • nemo:amd64 (1.1.2+maya, automatic),
  • gkbd-capplet:amd64 (3.4.0.2-1, automatic),
  • nemo-fileroller:amd64 (1.0.0+maya, automatic),
  • python-lxml:amd64 (2.3.2-1, automatic),
  • libnemo-extension1:amd64 (1.1.2+maya, automatic),
  • nemo-data:amd64 (1.1.2+maya, automatic)

Upgrade:

  • cinnamon:amd64 (1.4-UP3, 1.6.7+maya),
  • cinnamon-themes:amd64 (2012.05.20, 2012.11.06),
  • x11proto-randr-dev:amd64 (1.4.0+git20101207.0d32bb07-0ubuntu2, 1.4.0+git20120101.is.really.1.4.0-0ubuntu1~precise1),
  • mplayer2:amd64 (2.0-426-gc32b3ed-2, 2.0-426-gc32b3ed-2ubuntu0.1),
  • gir1.2-muffin-3.0:amd64 (1.0.3-UP2, 1.1.2+maya),
  • libmuffin0:amd64 (1.0.3-UP2, 1.1.2+maya),
  • muffin-common:amd64 (1.0.3-UP2, 1.1.2+maya),
  • mint-artwork-cinnamon:amd64 (2.0, 2.9)

Don’t forget to reboot !

 

Summary

In my opinion a really good compromise to stay on an LTS release and in parallel to use the most important improvements of the Mint „Nadia“ release. 

 

Links 

Linux Mint 14 “Nadia” mit Cinnamon 1.6: Erste Eindrücke auf einer VM

Nadia backports available in Linux Mint 13

 

 
Hinterlasse einen Kommentar

Verfasst von - Januar 19, 2013 in IT, Linux

 

Schlagwörter: , , , , , ,

Git: Kurzanleitung "Fit für Git" ;-)

Git: Kurzanleitung "Fit für Git" ;-)

Motivation

„Git ([ɡɪt], engl. Blödmann) ist eine freie Software zur verteilten Versionsverwaltung von Dateien, die ursprünglich für die Quellcode-Verwaltung des Linux-Kernels entwickelt wurde.“ (http://de.wikipedia.org/wiki/Git)

Jeder der Software entwickelt, stellt irgendwann fest, dass eine Versionsverwaltung sinnvoll ist. Ohne eine Anspruch auf Vollständigkeit zu erheben, gibt es meist folgende Gründe: alte Versionsstände zurückspielen, Branches (Zweige der Entwicklung) zu eröffnen, oder, um im Team zu arbeiten.

Neben Git gibt es noch andere, freie, VCS (Version Control Systems). Populär sind unter anderem CVS und Subversion. Wenn man die Szene betrachtet, fällt auf, dass der Trend immer mehr in Richtung Git geht.

Git bietet, wie auch CVS oder Subversion, Clients für alle möglichen Betriebssysteme herunterladen, u.a. Windows, Linux, Solaris, Mac OS X.

 

Arbeitsweise

 

Philosophie

Git ist dezentral (distributed) und unterscheidet sich von traditionellen, zentral verwalteten Programmen, wie etwa CVS oder Subversion, dadurch,  dass kein zentraler Server benötigt wird. Ein Distributed VCS-System, wie Git, checkt im Gegensatz zu zentralen VCS-Systemen alle Dateien und Verwaltungsinformationen (Historie etc.) aus.

 

Vergleich mit CVS und Subversion

Ich habe mit einige Meinungen im Internet herausgepickt, die, teilweise subjektiv, für eine Verwendung von Git sprechen:

  • Hat sich auch in großen Projekten bewährt (Linux-Kernel, Xorg, VLC, etc.)
  • Trend spricht für Git: Anzahl der verfügbaren Git-Repositories steigt stark an
  • Offline-Arbeiten immer möglich, da dezentral, d.h. es wird nach dem Erstellen der Arbeitskopie kein Zugriff mehr notwendig ist, alle Informationen sind in der Arbeitskopie
  • Schneller als CVS oder Subversion, da man vorwiegend lokal arbeitet
  • Mergen von Branches ist bei Subversion teilweise problematisch
  • etc.

Die letzte aktuelle Git-Version (10.12.2012) lautet 1.8.0.2.

 

Git Workflow

Wenn man mit Git ein Verzeichnis unter Versionskontrolle stellen will, führt man folgende Schritte durch:

  1. Erstellen eines Verzeichnisses, das zum Beispiel dem Projektnamen entspricht.
  2. In das Verzeichnis wechseln und unter Git Versionskontrolle stellen (git init)

Damit hat man automatisch folgende Struktur geschaffen:

git_local_rep1

 

Ein Verzeichnis (Arbeitsbereich, Workspace), eine Staging-Area (Index) und ein lokales Git-Repository. Dateien aus dem Verzeichnis können in die Staging-Area verschoben werden (git add). Dateien aus der Staging-Area können in das lokale Git-Repository verschoben werden (git commit).

Alle Änderungen werden im Arbeitsbereich durchgeführt und haben zunächst keinen Einfluß auf die Git-Verwaltung, d.h. die Staging-Area und der Repository-Inhalt bleibt unverändert.

Die Reihenfolge ist also: Änderung(en) durchführen > git add > git commit

 

Wo ist der Server ?

Da Git dezentral arbeitet, ist ein Server nicht notwendig. Trotzdem kann man natürlich ein Git-Remote-Repository einrichten, also eine Instanz, die als Server fungiert und auf die ein lokales Git-Repository referenzieren kann.

Man kann von einem Server eine Kopie des Repositores in das lokale Git-Repository herunterladen (auschecken), dazu dient der Befehl „git pull“. Anschließend arbeitet man auf dem lokalen Git-Repository weiter. Will man die Änderungen auf den Server hochladen (einchecken), dann ist das mit dem Befehl „git push“ möglich.

Für den Fall, dass man ein Git-Remote-Repository einbindet, wird die Infrastruktur wie folgt erweitert:

git_remote_rep1

 

Installation Git

Die grundsätzliche Installation von Git, egal, ob Server oder Client, wird im Folgenden für Linux- und Windows-Systeme beschrieben.

 

Linux

Auf Ubuntu oder Debian:

sudo apt-get install git-core python-setuptools

 

Windows

Git kann man direkt von http://git-scm.com/downloads herunterladen.

 

Applikationen

 

Linux

Unter Linux hat man das Terminal mit einer Shell (z.B. Bash) und kann git direkt aufrufen. Der Pfad auf git ist defaultmäßig bereits nach der Installation gesetzt.

Als Repository-Browser kann man „gitg“ verwenden.

 

Windows

Git-Bash

Nach der Installation erhält man die Git-Bash, eine Shell, von der aus alle Git-Befehle aufgerufen werden können.

Windows-Explorer

Zusätzlich werden im Windows-Explorer Kontext-Menus hinzugefügt.

 

Konfiguration Git

Der erste Schritt, bei der Verwendung von Git auf einem Rechner, sollte die Einrichtung des Users sein. Dieser erscheint in allen Änderungen und macht ihn identifizierbar (Rückfragen etc.).

Alle Befehle werden auf der Git-Bash ausgeführt!

Die Befehle dazu lauten:

<code>git config --global user.name </code>"Your Name"<code></code>
<code>git config --global user.email your@email.com<br /></code>

Siehe auch: http://git-scm.com/book/en/Customizing-Git-Git-Configuration

 

Lokal arbeiten

Auf Client-Seite, also lokal, arbeitet man mit einer Arbeitskopie. Ob diese Arbeitskopie lokal bleiben soll, durch Auschecken von einem Server heruntergeladen, oder später auf irgendeinen Server hochgeladen werden soll, ist erst einmal sekundär.

 

Projekte erstellen 

Neuerstellung

Will man ein neues Projekt erstellen, dann verwendet man die Option „init“. Man erstellt ein Verzeichnis, wechselt dahin und gibt den Befehl „git init“ ein. Der Verzeichnisname entspricht damit dem Projektnamen

Beispiel:

mkdir testprojekt

cd testprojekt

git init

 

Vorhandenes Verzeichnis in ein Git-Repository umwandeln (lokal)

Wenn man bereits ein Projekt hat, kann man mit dem „init“ Befehl ein lokales Git-Repository erstellen. Es werden alle Dateien des entsprechenden Verzeichnisses direkt in das Repository übernommen.

Man wechselt in das entsprechende Projekt-Verzeichnis und ruft in der Git-Bash den Befehl „git init“ auf. 

 

Repository von einem Server auschecken

Will man ein Projekt, etwa aus dem Internet lokal speichern und weiterbearbeiten, dann „klont“ man es 😉 Man erstellt damit eine lokale Arbeitskopie bzw. ein lokales Repository.

 

Änderungen durchführen

Workflow

git_changes1

 

Dateien hinzufügen

Man wechselt in das entsprechende Arbeitsverzeichnis und erstellt eine Datei, z.B. mit einem Texteditor.

Danach schiebt man diese Datei in die Staging-Area, mit dem Befehl:

git add

Will man mehrere Dateien gleichzeitig hinzufügen, kann man auch Joker „*“ verwenden, z.B.

git add *

Dateien, die im aktuellen Repository noch nicht im Index (Staging-Area) stehen, ermittelt man mit dem Befehl „git status“.

 

Dateien ändern

Sobald eine Datei unter Git verwaltet wird, wird sie „getracked“. Damit Änderungen im lokalen Git-Repository landen, müssen sie vorher in die Staging-Area verschoben werden. Das geschieht durch den Befehl „git add Datei“, auch wenn die Datei bereits in der Git-Versionsverwaltung existiert!

Der Befehl „git add“ macht Änderungen in einer Datei in der Staging-Area bekannt!

Der Befehl „git status“ zeigt u.a. den aktuellen Zustand der Staging-Area an, d.h. welche Dateien befinden sich darin und welche Dateien können comitted werden.

 

Dateien löschen

Mit dem Befehl „git rm“ kann man Dateien löschen:

git rm dummy.txt

Die Änderung ist dann automatisch in der Staging-Area und kann mit einem commit in das lokale Git-Repository verschoben werden.

 

Dateien umbenennen

Mit dem Befehl „git mv“ kann man Dateien löschen:

git mv alterName.txt neuerName.txt

Die Änderung ist dann automatisch in der Staging-Area und kann mit einem commit in das lokale Git-Repository verschoben werden.

 

Änderungen im lokalen Git-Repository bekanntmachen

Um Änderungen von der Staging-Area in das lokale Git-Repository zu übertragen, verwendet man den Befehl „git commit“.

git commit

git commit –m Kommentar

 

Änderungen rückgängig machen

 

Task

Befehl

Workspace
(W)

Index
(I)

Repository
(R)

Datei anlegen

touch Datei.txt

Datei.txt V1

Datei in Staging-Area verschieben

git add Datei.txt

Datei.txt V1

Datei.txt V1

Datei in Repository schieben

git commit

Datei.txt V1

Datei.txt V1

Datei.txt V1

Änderungen in Staging-Area rückgängig machen

vi Datei.txt

Datei.txt V2

Datei.txt V1

Datei.txt V1

git add Datei.txt

Datei.txt V2

Datei.txt V2

Datei.txt V1

git reset

Datei.txt V2

Datei.txt V1

Datei.txt V1

git checkout – Datei.txt

Datei.txt V1

Datei.txt V1

Datei.txt V1

Änderungen im Workspace rückgängig machen

touch Datei2.txt

Datei.txt V2
Datei2.txt V1

Datei.txt V1

Datei.txt V1

clean –f

Datei.txt V1

Datei.txt V1

Datei.txt V1

Workspace auf Stand der Staging-Area zurücksetzen

vi Datei.txt

Datei.txt V2

Datei.txt V1

Datei.txt V1

git checkout – Datei.txt

Datei.txt V1

Datei.txt V1

Datei.txt V1

Workspace und Staging-Area auf aktuellen Stand des Repositories zurücksetzen

vi Datei.txt

Datei.txt V2

Datei.txt V1

Datei.txt V1

git add Datei.txt

Datei.txt V2

Datei.txt V2

Datei.txt V1

git reset –hard

Datei.txt V1

Datei.txt V1

Datei.txt V1

Workspace, Staging-Area und Repository auf vorigen Stand (seit dem letzten Commit) zurücksetzen

vi Datei.txt

Datei.txt V2

Datei.txt V1

Datei.txt V1

git commit –a

Datei.txt V2

Datei.txt V2

Datei.txt V2

git reset –hard HEAD~1
(Hinweis: HEAD~2 setzt auf den vorletzten Commit zurück etc.)

Datei.txt V1

Datei.txt V1

Datei.txt V1

 

Änderungen anschauen:

  • git status: zeigt Änderungen im Workspace und in der Staging-Area an, die durchzuführen sind.
  • git log: zeigt die Commits im Repository an
  • git diff: zeigt die Unterschiede zwischen Workspace und Index (Staging-Area)
  • git diff HEAD: zeigt die Änderungen zwischen Workspace und Repository

 

Hochladen/Einchecken

Will man das lokale Git-Repository auf einen Server laden, führt man den Befehl „push“ aus. Beim erstenmal muss man mitteilen in welchen Branch auf dem „Hauptrepository“ die Arbeitskopie landen soll:

git push origin master

 

Versionierung/Tags

Mit dem Befehl „git tag -a“ kennzeichnet man einen Commit, also einen Stand im lokalen Git-Repository.

Beispiel:

git tag -a v1.0.0 -m „Creating the first official version.“

Will man sich vorher überzeugen, welche Dateien in den Tag aufgenommen werden, kann man den Befehl „git ls-files“ verwenden.

Um die vorhandenen Tags aufzulisten, kann man den Befehl „git tag“ verwenden. Danach kann man sich mit „git tag –v“ Details zu einem Tag anschauen:

git tag –v v1.0.0

Mit dem Befehl „git show“ kann man sich die Änderungen im lokalen Repository anschauen:

git show v1.0.0

Um einen bestimmten, getaggten Versionsstand in der Staging-Area und im Workspace auszuchecken, kann man „git checkout“ verwenden:

git checkout v1.0.0

Tags kann man auch löschen, hierzu dient der Befehl „git tag –d“

git tag –d v1.0.0

Für die Synchronisation mit einem remote Git-Repository dienen die Befehle

git push

git push –tags

git fetch

git fetch –tags

 

Entwicklungszweige/Branches

Ein Entwicklungszweig (Branch) ist eine Verzweigung in einem Projekt, die parallel zum bestehenden Hauptzweig erstellt wird. Hat man mehrere Entwicklungszweige zu pflegen, wie beispielsweise stable oder testing, kann man sich der Branches bedienen. Um bestehende Branches anzuzeigen, gibt man den Befehl „git branch“ ein. 

 

Will man einen neuen Branch anlegen, verwendet man den Befehl „git branch“:

git branch Branchname

 

Beispiel:

git branch testing

 

Will man zu einem bestimmten Branch wechseln, verwendet man den Befehl „git checkout“:

git checkout Branchname

 

Beispiele:

git checkout testing

git checkout master

 

Um einen Branch zu löschen, verwendet man den Befehl

git branch –d Branchname

 

Um einen Branch auf ein bekanntes remote Git-Repository zu schieben, dient der Befehl:

git push origin Branchname

 Beispiel:

git push origin testing

 

Um den Branch auf dem remote Git-Repository wieder zu löschen, dient der Befehl:

git push origin :Branchname

 Beispiel:

git push origin :testing

 

Um sich nur Branches im lokalen Git-Repository anzuzeigen, verwendet man den Befehl:

git branch –a

Um sich nur Branches im remote Git-Repository anzuzeigen, verwendet man den Befehl:

git branch –r

 

Dateien im Workspace ignorieren

Die Datei „.gitignore“ gibt vor, welche Dateien von Git ignoriert werden sollen. Man kann diese Datei im Hauptverzeichnis des Workspaces anlegen, aber auch in den Unterverzeichnissen.

 

Beispiel einer Datei „.gitignore“:

# Can ignore specific files

.DS_Store

 

# Use wildcards as well

*~

*.swp

 

# Can also ignore all directories and files in a directory.

tmp/**/*

 

Man kann auch eine .gitignore Datei im HOME Verzeichnis anlegen. Sie betrifft dann alle Repositories, sofern sie durch folgenden (globalen) Git-Befehl aktiviert wird:

git config –global core.excludesfile ~/.gitignore

 

Server-Funktionalität einrichten

Wie bereits erwähnt handelt es sich bei Git um eine Peer-To-Peer-Lösung, ein Server ist also grundsätzlich nicht erforderlich. Aber was hält uns davon ab ein „Hauptrepository“ einzurichten, das zentral aller Versionsstände aller Projektes speichert?

Es gibt viele Möglichkeiten ein „Hauptrepository“ zu teilen, siehe auch: „8 ways to share your git repository“.

 

Der von mir präferierte Weg sieh wiefolgt aus…

Benutzer und Gruppen einrichten

Es ist sinnvoll auf dem Server eine Art-Git-Administrator einzurichten, z.B. den User „git“, der für alle zentralen Repository-Aufgaben zuständig ist. Zudem sollte man eine (oder mehrere) Gruppen einrichten, die Zugriff auf die Repositories erhalten, beispielsweise die Gruppe „developers“.

  1. Einrichten eines User „git“ und einer Gruppe „git“
    sudo adduser git
  2. Einrichten der Gruppe „developers“
    sudo addgroup developers
  3. Hinzufügen alle Accounts, die zur Gruppe „devlopers“ gehören sollen
    vi /etc/group

 

Zentrales Repository einrichten

Ein zentrales Git-Repository auf einem Server, wird wie ein lokales Git-Repository eingerichtet. Für alle Aufgaben im zentralen Git-Repository verwenden wir den zuvor angelegten Benutzer „git“.

Man legt für diesen User ein Hauptverzeichnis „repo“ an unter dem alle Repositories als Unterverzeichnisse abgelegt werden.

Beispiel:

su – git

mkdir ~/repositories

cd repositories

Danach erstellt man für jedes Projekt ein leeres Unterverzeichnis und ordnet es der entsprechenden Gruppe zu.

mkdir testprojekt.git

sudo chgrp developers testprojekt.git

sudo chmod g+rws    (Sticky-Bit nicht vergessen)

cd testprojekt.git

Hinweis: Es ist weit verbreitet, das zentrale Repositories mit dem Suffix „.git“ zu versehen, um sie als Git-Repositories kenntlich zu machen.

Danach initialisiert man das zentrale Repository mit dem Befehl „init“ und dem Schalter „bare“: Damit vermeidet man, dass eine Arbeitskopie erstellt wird und damit unnötige Git-Hilfsdateien erzeugt werden. Das zentrale Repository ist dann auch nicht dafür geeignet, direkt damit zu arbeiten. Man muss vorher das entsprechende Projekt auf einem Client auschecken, also ein lokales Git-Repository erzeugen. Zusätzlich wird noch der Schalter „—shared“ mitgegeben, damit können alle Gruppenmitglieder auf das Repository zugreifen.

sudo git init –bare –shared

 

Lokales Repository mit dem Hauptrepository auf dem Server verlinken

Ein lokales Repository kann nun zum zentralen Repository übertragen werden. Dazu wechselt man auf dem Client in das lokale Repository und setzt zunächst das origin:

cd testprojekt

git remote add origin ssh://:/~/repos/testprojekt.git

 

Lokales Repository zum Server hochladen (Einchecken)

Damit wird dem lokalen Repository mitgeteilt, auf welchem Server sich das „Original“ bzw. die zentrale „Quelle“, also das Hauptrepository befindet.

Danach schiebt man den Inhalt des lokalen Repositories auf den Server mit „push“:

git push origin master

Beim ersten mal muss der Hauptbranch „master“ mitgegeben werden.

Man kann auch von einem bestimmten Branch (Entwicklungszeig) im lokalen Repository auf einen bestimmten Branch im Hauptrepository „pushen“:

git push origin :

Beispiel: git push origin master:master

Hier kann auch ein komplett neuer Remote-Branch angelegt werden, indem master:neuerBranchName verwendet wird.

 

Hauptrepository (Server) auf Client auschecken

Um ein Hauptrepository auf einem Client auszuchecken, ist folgender Befehl notwendig:

git clone ssh://@/home/user/development/git/repo

Beispiel:

git clone ssh://juergen@aspire/~git/repositories/testprojekt.git

oder

git clone @:~git/repositories/

Beispiel:

git clone juergen@aspire:~git/repositories/testprojekt.git

Es wird dann auf dem Client ein Verzeichnis ohne den Suffix „.git“ angelegt

 

 

Anhang

 

Übersicht Workflow

Git_Workflow

 

 

Links

Git Homepage: http://git-scm.com

Ubuntu-Git Wiki:http://wiki.ubuntuusers.de/Git

http://www.jedi.be/blog/2009/05/06/8-ways-to-share-your-git-repository  

Homepdate Git for Windows: http://msysgit.github.com

Michael’s Git Tutorial – Setting Up a Git Server:  http://www.youtube.com/watch?v=SyMkLQLC3Kg  

This post is not available in english! Sorry!

 
Kommentare deaktiviert für Git: Kurzanleitung "Fit für Git" ;-)

Verfasst von - Januar 12, 2013 in IT, Linux, Softwareentwicklung, Windows

 

Schlagwörter: , ,

 
Erstelle eine Website wie diese mit WordPress.com
Jetzt starten