<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nicolas Kuttler &#187; git</title>
	<atom:link href="http://www.nicolaskuttler.de/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nicolaskuttler.de</link>
	<description>IT Dienstleistungen, Saarbrücken</description>
	<lastBuildDate>Sat, 12 Jun 2010 21:42:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>git und WordPress-Entwicklung</title>
		<link>http://www.nicolaskuttler.de/2009/11/07/git-und-wordpress-entwicklung/</link>
		<comments>http://www.nicolaskuttler.de/2009/11/07/git-und-wordpress-entwicklung/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 14:34:41 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.nicolaskuttler.de/?p=392</guid>
		<description><![CDATA[git ist ein sehr mächtiges Werkzeug zur Versionsverwaltung. Es ist ein verteiltes System. Dies bedeutet, dass man ohne Verbindung zu einem zentralen Server Entwicklungszweige und tags anlegen kann. Mehr Informationen gibt es auf der Projektseite. Wer WordPress plugins schreibt und sie auf der WordPress.org Seite für plugins veröffentlicht sehen möchte muss svn benutzen. Dies kann [...]]]></description>
			<content:encoded><![CDATA[<p><tt>git</tt> ist ein sehr mächtiges Werkzeug zur Versionsverwaltung. Es ist ein <strong>verteiltes</strong> System. Dies bedeutet, dass man ohne Verbindung zu einem zentralen Server Entwicklungszweige und tags anlegen kann. Mehr Informationen gibt es auf der <a href="http://git-scm.com/">Projektseite</a>.<span id="more-392"></span></p>
<p>Wer WordPress plugins schreibt und sie auf der <a href="http://wordpress.org/extend/plugins/">WordPress.org Seite für plugins</a> veröffentlicht sehen möchte muss <tt>svn</tt> benutzen. Dies kann etwas frustrierend sein wenn man erst einmal die Fäigkeiten von <tt>git</tt> kennen gelernt hat.</p>
<p>Zum Glück kann <tt>git</tt> auch mit <tt>svn</tt> kommunizieren, hierfür gibt es <tt>git-svn</tt>. Hier ist eine Liste von Befehlen die man einsetzen kann.</p>

<div class="wp_syntax"><div class="code"><pre class="git" style="font-family:monospace;">git svn init -s http://svn.wp-plugins.org/Ihr_plugin</pre></div></div>

<p>Hiermit wird ein lokales <tt>git</tt> Repository kreiert. Innerhalb des Repositorys kann man folgende Befehle benutzen:</p>

<div class="wp_syntax"><div class="code"><pre class="git" style="font-family:monospace;">git svn fetch
git gc
git branch -a</pre></div></div>

<p>Das erste Kommando wird einige Minuten dauern und alle tags und Zweige herunterladen. Der zweite Befehl räumt im lokalen Repository auf und komprimiert Dateien. Dies wird den Festplattenverbrauch deutlich verringern. Der letzte Befehl listet alle Entwicklungszweige auf, lokal und auf dem <tt>svn</tt> server. Um einem dieser entfernten Zweige lokal zu folgen gibt es den Befehl</p>

<div class="wp_syntax"><div class="code"><pre class="git" style="font-family:monospace;">git checkout -b svn-trunk trunk</pre></div></div>

<p><tt>svn-trunk</tt> ist in diesem Beispiel der Name des neuen lokalen Zweigs, der Name ist frei wählbar.</p>
<p>Ein normaler Arbeitsablauf kann so aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git checkout <span style="color: #660033;">-b</span> neuerzweig <span style="color: #666666; font-style: italic;"># lokal einen neuen Zweig erstellen</span>
... bearbeiten ...
git commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Tolles neues Feature erstellt&quot;</span> <span style="color: #660033;">-a</span>
git checkout svn-trunk
git merge neuerzweig
git <span style="color: #c20cb9; font-weight: bold;">svn</span> dcommit</pre></div></div>

<p>Diese Befehle erzeugen einen lokalen Entwicklungszweig in dem man neue Dinge ausprobieren kann. Der <tt>commit</tt>-Befehl fügt die Änderungen dem lokalen Repository hinzu. Das dritte Kommando wechselt zum lokalen Zweig, der dem entfernten <tt>trunk</tt> entspricht. Der vierte Befehl integriert die Änderungen aus <tt>neuerzweig</tt>. Abschließend wird der neue Programmcode auf den <tt>svn</tt>-Server hoch geladen.</p>
<p>Gerade wenn man mit dem WordPress-Server interagiert muss man gelegentlich <tt>tag</tt>s anlegen. Das geht mit foldendem Befehl:</p>

<div class="wp_syntax"><div class="code"><pre class="git" style="font-family:monospace;">git svn tag version</pre></div></div>

<p>Hiermit wird ein tag im entfernten <tt>svn</tt> Repository erstellt. Hierfür scheint mindestens <tt>git</tt> 1.6.1 nötig zu sein. Benutzer von Debian Lenny müssen <tt>git</tt> von <a href="http://backports.org/">backports.org</a> herunterladen.</p>
<p>Mit diesen Beispielen sollten die ersten Schritte mit <tt>git</tt> für die WordPress plugin Entwicklung leichter fallen. Bitte lesen Sie auf jeden Fall die <tt>git</tt> Dokumentation für weitere Informationen. <tt>git-svn</tt> unterliegt einigen Beschränkungen: Der beschriebene Arbeitsablauf sollte nur benutzt werden wenn man der einzige Entwickler ist und nur ein <tt>git</tt> Repository hat.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nicolaskuttler.de/2009/11/07/git-und-wordpress-entwicklung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
