<?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>Sicherheit von Webanwendungen Seminare, Workshops und Unterstützung</title>
	<atom:link href="https://entwicklungshilfe.nrw/blog/category/entwicklertools/feed/" rel="self" type="application/rss+xml" />
	<link>https://entwicklungshilfe.nrw/blog/category/entwicklertools/</link>
	<description>PHP-Schulungen für effektive Webentwicklung, praxisorientierte Workshops und Seminare für besseres Webdevelopment</description>
	<lastBuildDate>Mon, 23 Sep 2019 18:11:43 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://entwicklungshilfe.nrw/wp-content/uploads/2026/02/cropped-favicon-32x32.png</url>
	<title>Sicherheit von Webanwendungen Seminare, Workshops und Unterstützung</title>
	<link>https://entwicklungshilfe.nrw/blog/category/entwicklertools/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Git auf der Command Line CLI einsetzen</title>
		<link>https://entwicklungshilfe.nrw/blog/2016/02/11/git-auf-der-command-line-cli/</link>
					<comments>https://entwicklungshilfe.nrw/blog/2016/02/11/git-auf-der-command-line-cli/#respond</comments>
		
		<dc:creator><![CDATA[Andreas Mautz]]></dc:creator>
		<pubDate>Thu, 11 Feb 2016 07:58:00 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Entwicklertools]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Seminar]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Versionskontrolle]]></category>
		<category><![CDATA[Workshop]]></category>
		<guid isPermaLink="false">http://www.entwicklungshilfe.nrw/blog/?p=382</guid>

					<description><![CDATA[<p>Git ist ein häufig genutztes Versionstool in PHP-Projekten. Allerdings wird häufig mit grafischen Oberflächen wie Sourcetree gearbeitet. Webdeveloper nutzen diese Tools häufig, ohne genau zu wissen, was im Hintergrund genau passiert. Daher zeigen wir dir in diesem Artikel, wie du das alles schnell und effektiv auf der Command Line nutzen kannst. Das hat einige Vorteile: Du bist [&#8230;]</p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2016/02/11/git-auf-der-command-line-cli/">Git auf der Command Line CLI einsetzen</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Git ist ein häufig genutztes Versionstool in PHP-Projekten. Allerdings wird häufig mit grafischen Oberflächen wie <a href="https://www.sourcetreeapp.com/" target="_blank" rel="noopener noreferrer">Sourcetree</a> gearbeitet. Webdeveloper nutzen diese Tools häufig, ohne genau zu wissen, was im Hintergrund genau passiert. Daher zeigen wir dir in diesem Artikel, wie du das alles schnell und effektiv auf der Command Line nutzen kannst. Das hat einige Vorteile: Du bist schneller und hast gleichzeitig viel mehr <a href="http://www.entwicklungshilfe.nrw/blog/category/git-schulung/">Wissen über Git</a> und Kontrolle über deine Software und Arbeitsschritte.</p>
<figure id="attachment_391" aria-describedby="caption-attachment-391" style="width: 300px" class="wp-caption alignleft"><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/terminal-git-log.png" rel="attachment wp-att-391"><img decoding="async" class="wp-image-391 size-medium" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/terminal-git-log-300x148.png" alt="Terminal Git-Log - www.slant.co" width="300" height="148" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/terminal-git-log-300x148.png 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/terminal-git-log-768x380.png 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/terminal-git-log.png 976w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/terminal-git-log-300x148@2x.png 600w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-391" class="wp-caption-text">Terminal Git-Log &#8211; www.slant.co</figcaption></figure>
<p>In Stellenausschreibungen steht heute immer öfter die Anforderung, Git über die Command Line zu nutzen. Gerade bei <a href="https://www.gulp.de/knowledge-base/markt-und-trends/umfrage-ergebnis-noch-junior-oder-schon-senior.html" target="_blank" rel="noopener noreferrer">Senior-Entwicklern</a> wird dieses Wissen bereits explizit vorausgesetzt. Das <a href="https://de.wikipedia.org/wiki/Kommandozeile" target="_blank" rel="noopener noreferrer">Command-Line</a>-Wissen kannst du dann auch anwenden, wenn dir kein Rechner mit Sourcetree zur Verfügung steht, weil du dich vielleicht direkt auf den Linux-Servern lokal oder remote bewegen musst.</p>
<h2>Git Commands, die tatsächlich gebraucht werden</h2>
<p>Es sind nicht so viele <a href="https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html" target="_blank" rel="noopener noreferrer">Git Commands</a>, die für die tägliche Arbeit gebraucht werden, wie man vielleicht glaubt. Hier mal ein einfacher Task mit den Git-Commands direkt auf der Command Line.</p>
<h3>Git Repository klonen</h3>
<p><strong>git clone https://url.com/example-repo</strong></p>
<figure id="attachment_393" aria-describedby="caption-attachment-393" style="width: 300px" class="wp-caption alignleft"><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen.jpg" rel="attachment wp-att-393"><img fetchpriority="high" decoding="async" class="wp-image-393 size-medium" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen-300x213.jpg" alt="Git-Repository klonen" width="300" height="213" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen-300x213.jpg 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen-768x546.jpg 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen-1024x728.jpg 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen-269x192.jpg 269w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen.jpg 1920w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen-300x213@2x.jpg 600w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen-768x546@2x.jpg 1536w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-Repository-klonen-269x192@2x.jpg 538w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-393" class="wp-caption-text">Git Repository klonen</figcaption></figure>
<p>Mit dem Git Command wird das Repo in das Verzeichnis &#8222;example-repo&#8220; geklont. Gibt man hinter der URL ein anderes Ziel oder Target an, wird ein anderer Ordner genommen. Das macht bei der späteren Anwendung keinen Unterschied, kann aber zu mehr Übersicht in der Dateistruktur genutzt werden. Mit der Angabe von &#8222;.&#8220; wird das Repository in das aktuelle Verzeichnis geklont. Das ist zwar ein seltener Anwendungsfall, spart einem aber bei Bedarf Zeit. Dafür muss der Ordner allerdings vollständig leer sein. Auch die Verzeichnisse der PHP-IDEs, wie <a href="http://www.entwicklungshilfe.nrw/seminare/phpstorm-best-practice/">PhpStorm</a>, dürfen hier nicht vorhanden sein.</p>
<h3>Branch erstellen</h3>
<p><strong>git checkout -b myNewTask</strong><br />
Mit dem Checkout-Befehl und dem Parameter -b wird ein neuer Branch &#8222;myNewTask&#8220; erstellt und automatisch auf diesen gewechselt. Hier ist darauf zu achten, auf welchen Branch man sich zu dem Zeitpunkt der Erstellung befindet, und natürlich auch darauf, dass man den aktuellsten Stand auscheckt – also vorher ein &#8222;git pull&#8220; ausgeführt hat.</p>
<h3>Developing auf dem Branch</h3>
<p><strong>git add . &amp;&amp; git commit -m “#myNewBranch add css file”</strong><br />
oder<br />
<strong>git add layout/mynewtask.css &amp;&amp; git commit -m “#myNewBranch add css file”</strong></p>
<figure id="attachment_392" aria-describedby="caption-attachment-392" style="width: 300px" class="wp-caption alignleft"><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Developing-auf-dem-Branch.jpg" rel="attachment wp-att-392"><img decoding="async" class="wp-image-392 size-medium" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Developing-auf-dem-Branch-300x200.jpg" alt="Developing auf dem Branch" width="300" height="200" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Developing-auf-dem-Branch-300x200.jpg 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Developing-auf-dem-Branch-768x512.jpg 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Developing-auf-dem-Branch-1024x683.jpg 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Developing-auf-dem-Branch.jpg 1920w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Developing-auf-dem-Branch-300x200@2x.jpg 600w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Developing-auf-dem-Branch-768x512@2x.jpg 1536w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-392" class="wp-caption-text">Developing auf dem Branch</figcaption></figure>
<p>Generell soll ja bei jeder funktionierenden Änderung ein Commit gemacht werden. Hier ist Disziplin gefragt. Grafische Tools wie Sourcetree verleiten jedoch dazu, dies zu einem späteren Zeitpunkt zu machen. Hier kann man sehr einfach einzelne geänderte Zeilen separaten Commits zuweisen. Das bedeutet leider noch lange nicht, dass der Commit tatsächlich alles tut, was er soll, und wie gewünscht funktioniert hat.</p>
<p>Insofern ist es besser, regelmäßig kleine Commits zu machen. Der Git-Add-Befehl dient dabei einmal für das separate File und einmal für alles seit dem letzten Commit. Auch hier gilt: Regelmäßige und sinnvolle Commits machen einem das Leben leichter und sind effektiver. Vorher ist es zudem immer sinnvoll, sich die aktuellen Änderungen mit &#8222;git status&#8220; noch einmal anzeigen zu lassen. Denn schließlich kommt es vor, dass man etwas übersehen hat. Das trifft auch auf von der Applikation generierte Files zu, die eventuell noch über .gitignore ausgeschlossen werden müssen.</p>
<h3>Commit Messages</h3>
<figure id="attachment_394" aria-describedby="caption-attachment-394" style="width: 300px" class="wp-caption alignleft"><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Commit-Messages.jpg" rel="attachment wp-att-394"><img loading="lazy" decoding="async" class="wp-image-394 size-medium" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Commit-Messages-300x200.jpg" alt="Commit-Messages" width="300" height="200" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Commit-Messages-300x200.jpg 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Commit-Messages-768x512.jpg 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Commit-Messages-1024x682.jpg 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Commit-Messages.jpg 1280w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Commit-Messages-300x200@2x.jpg 600w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-394" class="wp-caption-text">Commit Messages</figcaption></figure>
<p>Damit man die Historie einer Entwicklung nachvollziehen kann, sind Commit Messages wichtig. Diese müssen aussagekräftig sein und beinhalten idealerweise eine <a href="http://www.entwicklungshilfe.nrw/seminare/phpstorm-effektiv-mit-ticketsystem-nutzen/">Ticket-ID</a>. Denn somit können die Arbeitsschritte direkt zugeordnet werden. Nicht aussagekräftige Commit Messages indes schaden dem Team und einem selbst.</p>
<p>Mit <a href="https://git-scm.com/book/uz/v2/Customizing-Git-Git-Hooks" target="_blank" rel="noopener noreferrer">Pre Hooks</a> ist es möglich, Commits ohne Ticket-ID direkt zu unterbinden. Das kann sogar erweitert werden, dass sich das Ticket im richtigen Status befinden muss. Solche Maßnahmen einzuführen und umzusetzen, ist allerdings nicht so einfach wie deren technische Implementierung.</p>
<p>Es gibt einige Spaßseiten zu dem Thema wie beispielsweise <a href="http://www.commitlogsfromlastnight.com/" target="_blank" rel="noopener noreferrer">Commits from last night</a> – dabei ist das Thema doch eigentlich sehr ernst. Denn es dient der Dokumentation der eigenen Arbeit und zeigt, dass du ein Profi bist. Soll heißen: Arbeite immer möglichst professionell. Das ist wichtig und richtig.</p>
<h2>Git-flow installieren und sofort nutzen</h2>
<p><strong>git flow feature start myNewBranch</strong><br />
<strong>git flow feature finish myNewBranch</strong></p>
<figure id="attachment_395" aria-describedby="caption-attachment-395" style="width: 300px" class="wp-caption alignleft"><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-flow.jpg" rel="attachment wp-att-395"><img loading="lazy" decoding="async" class="wp-image-395 size-medium" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-flow-300x200.jpg" alt="Git-Flow" width="300" height="200" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-flow-300x200.jpg 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-flow-768x512.jpg 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-flow-1024x683.jpg 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-flow.jpg 1920w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-flow-300x200@2x.jpg 600w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-flow-768x512@2x.jpg 1536w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-395" class="wp-caption-text">Git-flow</figcaption></figure>
<p><a href="http://www.entwicklungshilfe.nrw/seminare/git-flow-git-branching-model-fuer-agile-software-projekte/">Git-flow</a> hat sich in vielen Projekten bewährt und wird vor allem gerne bei neuen Projekten eingesetzt. Auf dem <a href="http://www.rogoit.de/webdesign-typo3-blog-duisburg/category/mac-snippet/" target="_blank" rel="noopener noreferrer">Mac</a> ist es schnell mit <a href="http://brew.sh/" target="_blank" rel="noopener noreferrer">Homebrew</a> installiert, und nach einem &#8222;git flow init&#8220; kann es nach einigen Bestätigungen der Default-Settings sofort eingesetzt werden. Mit dem oben aufgeführten Start-Befehl wird dabei ein neuer Branch aus dem aktuellen Develop Branch erstellt. Danach kann man sein Feature entwickeln und mit dem Finish-Befehl wieder abschließen. Hier wird ein Merge zurück in den Develop Branch ausgeführt und der Feature Branch sofort gelöscht. Falls man das aber nicht unbedingt möchte, geht es auch mit Hotfixes und Releases.</p>
<p>Eine gute Übersicht zu all dem bietet <a href="http://danielkummer.github.io/git-flow-cheatsheet/" target="_blank" rel="noopener noreferrer">http://danielkummer.github.io/git-flow-cheatsheet/</a>. Ausführliche Informationen zu Git-flow gibt es außerdem unter <a href="https://github.com/nvie/gitflow" target="_blank" rel="noopener noreferrer">https://github.com/nvie/gitflow</a>. Wir haben uns im praktischen Einsatz dazu entschlossen, nach dem Git-Flow-Workflow zu arbeiten, die zusammengeführten Branches allerdings zu archivieren und zu erhalten.</p>
<h2>Git-Workflow nur auf der Command Line</h2>
<figure id="attachment_386" aria-describedby="caption-attachment-386" style="width: 337px" class="wp-caption alignleft"><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-auf-der-Command-Line-CLI.png" rel="attachment wp-att-386"><img loading="lazy" decoding="async" class="wp-image-386 size-full" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-auf-der-Command-Line-CLI.png" alt="Git auf der Command Line CLI" width="337" height="208" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-auf-der-Command-Line-CLI.png 337w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-auf-der-Command-Line-CLI-300x185.png 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-auf-der-Command-Line-CLI-103x65.png 103w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-auf-der-Command-Line-CLI-163x102.png 163w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-auf-der-Command-Line-CLI-103x65@2x.png 206w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/Git-auf-der-Command-Line-CLI-163x102@2x.png 326w" sizes="auto, (max-width: 337px) 100vw, 337px" /></a><figcaption id="caption-attachment-386" class="wp-caption-text">Git auf der Command Line CLI</figcaption></figure>
<p>Der Git-flow ist eine Zusammenfassung von Befehlen, die man selbstverständlich auch eigenhändig und einzeln ausführen kann. In meinen Augen ist aber ein großer Nachteil, dass Branches, die zurückgemerged wurden, auch gelöscht werden.</p>
<p>Persönlich finde ich es zudem besser, Bugfixes auf dem Feature Branch durchzuführen und sich öfter mit dem aktuellen Stand abzugleichen. So kann man die Arbeit auf einem Feature besser dokumentieren. Das Ganze geht manuell auf der Command Line – CLI – wie folgt:</p>
<p>// Aktuellen Develop Branch auschecken und aktualisieren<br />
<strong>git checkout develop</strong><br />
<strong> git pull</strong></p>
<p>// Feature Branch für Jira Ticket SUP-123 erstellen<br />
<strong>git checkout -b feature/SUP-123</strong></p>
<p>// Commits auf das Ticket<br />
<strong>git status</strong><br />
<strong>git add . &amp;&amp; git commit -m “#SUP-123 what i have done”</strong></p>
<p>// Git Pushes sollten mindestens jeden Abend durchgeführt werden – und zwar auf jeden Fall vor den Merges, egal in welche Richtung<br />
<strong>git status</strong><br />
<strong>git push</strong></p>
<p>// Feature Branch zurück in Develop bringen<br />
<strong>git checkout develop</strong><br />
<strong>git pull</strong><br />
<strong>git merge feature/SUP-123</strong><br />
<strong>git status</strong></p>
<p>// Tag setzen<br />
<strong>git tag -a v1.2.0 -m “Version v1.2.0”</strong><br />
// Push mit Tags<br />
<strong>git push &amp;&amp; git push &#8211;tags</strong></p>
<p>Die oben aufgeführten Commands in <a href="http://www.entwicklungshilfe.nrw/seminare/oh-my-zsh-mit-agnoster-theme/">oh-my-zsh</a><br />
// Aktuellen Develop Branch auschecken und aktualisieren<br />
<strong>gco develop</strong><br />
<strong>gl</strong></p>
<p>// Feature Branch für Jira Ticket SUP-123 erstellen<br />
<strong>gcb feature/SUP-123</strong></p>
<p>// Commits auf das Ticket<br />
<strong>gst</strong><br />
<strong>gaa &amp;&amp; gcmsg “#SUP-123 was ich gerade getan habe”</strong><br />
<strong>gst</strong></p>
<p>// Git Push sollte mindestens jeden Abend durchgeführt werden – und zwar auf jeden Fall vor den Merges, egal in welche Richtung<br />
<strong>gst</strong><br />
<strong>gp</strong></p>
<p>// Feature Branch zurück in Develop bringen<br />
<strong>gco develop</strong><br />
<strong>gl</strong><br />
<strong>gm feature/SUP-123</strong><br />
<strong>gst</strong></p>
<p>// Tag setzen<br />
<strong>git tag -a v1.2.0 -m “Version v1.2.0”</strong></p>
<p>// Push mit Tags<br />
<strong>gp &amp;&amp; gp &#8211;tags</strong></p>
<p>Mit oh-my-zsh sind eine Vielzahl von Git Commands als Alias abgelegt. Im praktischen Einsatz kommen in meinen Augen die oben abgebildeten zum Tragen. Allein gaa &amp;&amp; gcmsg &#8222;my message&#8220; bringen einem sehr viel, da sie ein häufiger Anwendungsfall sind. Auch gc für git checkout geht schnell in Fleisch und Blut über.</p>
<h2>Probleme mit Git</h2>
<p><a href="https://www.ralfebert.de/git/mergekonflikte-beheben/" target="_blank" rel="noopener noreferrer">Git-Konflikte</a> sind ein großes Thema bei Git und natürlich auch Themen wie Rebase. Aber in diesem Artikel gehe ich nicht zusätzlich auf diese Themen ein. In Zukunft werden wir hier in unserem <a href="http://www.entwicklungshilfe.nrw/blog/">Webdevelopment-Blog</a> das Thema Git auch in anderen Zusammenhängen aufgreifen. Auch gehe ich nicht auf Tools, wie <a href="https://github.com/jonas/tig" target="_blank" rel="noopener noreferrer">Tig</a> ein. Aber natürlich ist es wichtig und richtig, mit visuellen Tools zu arbeiten.</p>
<h2>Fazit zu Git auf der Command Line CLI</h2>
<p>Git ist in der heutigen Zeit des Webdevelopments der Quasi-Standard. Jeder Entwickler, egal ob Frontend oder Backend, muss damit umgehen können. Man braucht und darf keine Ausreden bei der Nutzung einer Command Line haben. Nur so wird man zum Profi – sonst ist man nur ein Anwender. Ein User.</p>
<p>In diesem Artikel ist ein einfaches Beispiel über die Entwicklung eines <a href="https://www.atlassian.com/git/tutorials/comparing-workflows/" target="_blank" rel="noopener noreferrer">Feature Branches</a> abgebildet. Man sieht ganz deutlich, dass nur wenige Commands nötig sind. Es ist wichtig, diese einfachen Vorgänge zu 100 Prozent auf der Command Line durchführen zu können und dies auch regelmäßig zu tun. Nur so lernt man Git richtig.</p>
<h2>Unsere Git-PHP-Schulung</h2>
<figure id="attachment_396" aria-describedby="caption-attachment-396" style="width: 300px" class="wp-caption alignleft"><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/git-flow-php-schulung.jpg" rel="attachment wp-att-396"><img loading="lazy" decoding="async" class="wp-image-396 size-medium" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/git-flow-php-schulung-300x143.jpg" alt="Git-Flow PHP-Schulung" width="300" height="143" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/git-flow-php-schulung-300x143.jpg 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/git-flow-php-schulung-768x365.jpg 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/git-flow-php-schulung-702x336.jpg 702w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/git-flow-php-schulung.jpg 800w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/02/git-flow-php-schulung-300x143@2x.jpg 600w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-396" class="wp-caption-text">Git-flow: PHP-Schulung</figcaption></figure>
<p>Git wird von vielen Webdevelopern benutzt. Sie haben es aber leider häufig nicht verinnerlicht oder verstanden, warum man damit genau so arbeitet, wie man es tut. In unserer Schulung gehen wir ganz praktisch vor und erklären Git von den Grundlagen bis zu praktischen und etablierten Workflows. Wir gehen auf die Anwendungsfehler ein und geben unsere persönliche Erfahrung direkt an die Teilnehmer weiter. Es ist eine sehr individuelle Intensiv-Schulung. Alle Informationen zu dem Thema gibt es auf<br />
<a href="http://www.entwicklungshilfe.nrw/seminare/git-flow-git-branching-model-fuer-agile-software-projekte/">http://www.entwicklungshilfe.nrw/seminare/git-flow-git-branching-model-fuer-agile-software-projekte/</a></p>
<p><em>Wie nutzt du Git bislang? Hast du es schon mal per Command Line versucht, und wie sind da ggf. deine Erfahrungswerte?</em></p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2016/02/11/git-auf-der-command-line-cli/">Git auf der Command Line CLI einsetzen</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://entwicklungshilfe.nrw/blog/2016/02/11/git-auf-der-command-line-cli/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PhpStorm mit dem Ticketsystem Redmine nutzen</title>
		<link>https://entwicklungshilfe.nrw/blog/2016/01/31/phpstorm-mit-ticketsystem-redmine-nutzen/</link>
					<comments>https://entwicklungshilfe.nrw/blog/2016/01/31/phpstorm-mit-ticketsystem-redmine-nutzen/#respond</comments>
		
		<dc:creator><![CDATA[Andreas Mautz]]></dc:creator>
		<pubDate>Sun, 31 Jan 2016 18:57:11 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Entwicklertools]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Infrastruktur]]></category>
		<category><![CDATA[Seminar]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Versionskontrolle]]></category>
		<category><![CDATA[Workshop]]></category>
		<guid isPermaLink="false">http://www.entwicklungshilfe.nrw/blog/?p=305</guid>

					<description><![CDATA[<p>In diesem Tutorial für Webdeveloper zeige ich, wie man die Entwicklungsumgebung PhpStorm mit dem Ticketsystem Redmine verbindet und das Tasksystem von PhpStorm zusammen mit git-flow als Workflow umsetzen kann. Voraussetzungen für einen erfolgreichen Workflow Grundlage für den hier gezeigten Workflow sind PhpStorm als IDE mit installiertem git-flow-Plugin sowie ein funktionierendes Ticketsystem Redmine. Natürlich gibt es Alternativen zu [&#8230;]</p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2016/01/31/phpstorm-mit-ticketsystem-redmine-nutzen/">PhpStorm mit dem Ticketsystem Redmine nutzen</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In diesem Tutorial für Webdeveloper zeige ich, wie man die Entwicklungsumgebung PhpStorm mit dem Ticketsystem Redmine verbindet und das Tasksystem von PhpStorm zusammen mit git-flow als Workflow umsetzen kann.</p>
<h3>Voraussetzungen für einen erfolgreichen Workflow</h3>
<p>Grundlage für den hier gezeigten Workflow sind <a href="https://www.jetbrains.com/phpstorm/" target="_blank" rel="noopener noreferrer">PhpStorm</a> als IDE mit installiertem <a href="https://plugins.jetbrains.com/plugin/7315" target="_blank" rel="noopener noreferrer">git-flow-Plugin</a> sowie ein funktionierendes Ticketsystem <a href="http://www.redmine.org/" target="_blank" rel="noopener noreferrer">Redmine</a>. Natürlich gibt es Alternativen zu dieser Kombination. PhpStorm arbeitet mit sehr vielen Systemen zusammen, und auch andere IDEs haben ähnliche Funktionen. Der Workflow im Versionskontrollsystem basiert auf unserer <a href="http://presentations.entwicklungshilfe.nrw/git_flow.html">git-flow-Präsentation</a> und ist aus meiner Sicht zwar im Feinen anpassbar, im Groben aber alternativlos.</p>
<h3>Ticketsystem Redmine richtig einstellen</h3>
<p>Das Ticketsystem sollte von außen erreichbar sein. Der zur Verknüpfung benutzte User sollte im Ticketsystem aktiv sein und Projekte und Tasks – im Weiteren auch Issues genannt – zugewiesen haben. Zusätzlich muss die REST-Api in der Konfiguration des Ticketsystems aktiviert sein.</p>
<figure id="attachment_322" aria-describedby="caption-attachment-322" style="width: 1024px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-322 size-large" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/redmine_setting-1024x148.png" alt="Einstellungen im Ticketsystem redmine für PhpStorm" width="1024" height="148" /><figcaption id="caption-attachment-322" class="wp-caption-text">Einstellungen im Ticketsystem redmine für PhpStorm</figcaption></figure>
<h3>In PhpStorm geht es weiter</h3>
<p>In PhpStorm geht man zunächst über die Tastenkombi cmd+&#8220;,&#8220; (Mac) in die Einstellungen und navigiert zu Tools -&gt; Tasks -&gt; Servers. Dort setzt man nach Auswahl des Ticketsystems die URL und Zugangsdaten zu seinem Ticketsystem.</p>
<figure id="attachment_314" aria-describedby="caption-attachment-314" style="width: 1024px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-314 size-large" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_task_server-1024x689.png" alt="PhpStorm-Einstellungen für die Verbindung mit dem Ticketsystem" width="1024" height="689" /><figcaption id="caption-attachment-314" class="wp-caption-text">PhpStorm-Einstellungen für die Verbindung mit dem Ticketsystem</figcaption></figure>
<p>Ein Klick auf den Test-Button liefert das Ergebnis:</p>
<figure id="attachment_308" aria-describedby="caption-attachment-308" style="width: 1024px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-308 size-large" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_settings-1024x420.png" alt="PhpStorm mit dem Ticketsystem Redmine" width="1024" height="420" /><figcaption id="caption-attachment-308" class="wp-caption-text">PhpStorm mit dem Ticketsystem Redmine</figcaption></figure>
<p>Im zweiten Reiter stellt man die Commit-Einstellungen ein. Das Ticketsystem Redmine ist in der Lage, Commit-Nachrichten auszulesen und darauf zu reagieren. Eine sinnvolle Einstellung zur Automatisierung spart hier wertvolle Zeit.</p>
<figure id="attachment_313" aria-describedby="caption-attachment-313" style="width: 1024px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-313 size-large" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_tasks_settings_2-1024x682.png" alt="Einstellungen in PhpStorm für die Verbindung mit dem Ticketsystem" width="1024" height="682" /><figcaption id="caption-attachment-313" class="wp-caption-text">Einstellungen in PhpStorm für die Verbindung mit dem Ticketsystem</figcaption></figure>
<h2>Optimaler Workflow in PhpStorm mit dem Ticketsystem Redmine</h2>
<p>Die Voraussetzungen sind hier ein Projekt im ausgecheckten develop-Branch, ein vorhandenes Ticket und eine eingerichtete Entwicklungsumgebung.</p>
<p>Die Steuerungsleiste für das Taskmanagement befindet sich im rechten oberen Bereich.</p>
<figure id="attachment_307" aria-describedby="caption-attachment-307" style="width: 838px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-307 size-full" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_settings_server_task.png" alt="Leiste für die Ticketsystemsteuerung" width="838" height="52" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_settings_server_task.png 838w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_settings_server_task-300x19.png 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_settings_server_task-768x48.png 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_settings_server_task-300x19@2x.png 600w" sizes="auto, (max-width: 838px) 100vw, 838px" /><figcaption id="caption-attachment-307" class="wp-caption-text">Leiste für die Ticketsystemsteuerung</figcaption></figure>
<p>Über das Dropdown kommt man in den &#8222;Task öffnen&#8220;-Dialog.</p>
<figure id="attachment_321" aria-describedby="caption-attachment-321" style="width: 750px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-321 size-full" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_open_task-e1454265308986.png" alt="Öffnen einer Issue in PhpStorm" width="750" height="401" /><figcaption id="caption-attachment-321" class="wp-caption-text">Öffnen einer Issue in PhpStorm</figcaption></figure>
<p>Nach erfolgreichem Öffnen eines Tasks sollte man eine für den Task eingerichtete Changelist in PhpStorm und auf Ebene der Versionskontrolle einen Feature-Branch ausgecheckt haben.</p>
<figure id="attachment_312" aria-describedby="caption-attachment-312" style="width: 1024px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-312 size-large" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_changelist2-1024x361.png" alt="Fortschritt im PHP-Projekt" width="1024" height="361" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_changelist2-1024x361.png 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_changelist2-300x106.png 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_changelist2-768x271.png 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_changelist2-1024x361@2x.png 2048w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_changelist2-300x106@2x.png 600w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_changelist2-768x271@2x.png 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption id="caption-attachment-312" class="wp-caption-text">Fortschritt im PHP-Projekt</figcaption></figure>
<p>Sollte man seine relevanten Entwicklungen lokal abgeschlossen haben, kommt der Zeitpunkt, an dem man seinen Code committet. Durch die Nutzung der taskrelevanten Changelisten ist dies selbst bei Bearbeitung mehrerer Issues in einem Projekt durchschaubar. Zudem verringern die voreingestellten Informationen aus dem Ticketsystem die manuell einzugebenden Informationen.</p>
<figure id="attachment_311" aria-describedby="caption-attachment-311" style="width: 1024px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-311 size-large" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_commit-1024x772.png" alt="Commit der neuen Dateien" width="1024" height="772" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_commit-1024x772.png 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_commit-300x226.png 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_commit-768x579.png 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_commit.png 1517w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_commit-300x226@2x.png 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption id="caption-attachment-311" class="wp-caption-text">Commit der neuen Dateien</figcaption></figure>
<p>Vor dem anschließenden Push zeigt PhpStorm eine Zusammenfassung der Änderungen.</p>
<figure id="attachment_320" aria-describedby="caption-attachment-320" style="width: 1024px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-320 size-large" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_push-1024x1008.png" alt="Push in unser zentrales Versionskontrollsystem" width="1024" height="1008" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_push-1024x1008.png 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_push-300x295.png 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_push-768x756.png 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_push.png 1170w, https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_push-300x295@2x.png 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption id="caption-attachment-320" class="wp-caption-text">Push in unser zentrales Versionskontrollsystem</figcaption></figure>
<p>Als Abschluss muss man das Feature leider noch manuell über das git-flow-Plugin schließen, aber ich hoffe, dass das in naher Zukunft automatisiert wird.</p>
<figure id="attachment_317" aria-describedby="caption-attachment-317" style="width: 526px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-317 size-full" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_gitflow-e1454265851423.png" alt="Der Feature Branch wird geschlossen" width="526" height="351" /><figcaption id="caption-attachment-317" class="wp-caption-text">Der Feature Branch wird geschlossen</figcaption></figure>
<p>Als Meldung sollte PhpStorm einblenden, dass der Feature-Branch erfolgreich zurückgemerged wurde.</p>
<figure id="attachment_318" aria-describedby="caption-attachment-318" style="width: 750px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-318 size-full" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_tasks-e1454265896201.png" alt="Erfolgsmeldung aus PhpStorm für unseren Workflow" width="750" height="112" /><figcaption id="caption-attachment-318" class="wp-caption-text">Erfolgsmeldung aus PhpStorm für unseren Workflow</figcaption></figure>
<p>Es kann zudem vorkommen, dass PhpStorm die Changelist nicht löscht. Um die Ordnung nicht zu verlieren, hilft das manuelle Löschen.</p>
<figure id="attachment_316" aria-describedby="caption-attachment-316" style="width: 750px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-316 size-full" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_changelist-e1454265959607.png" alt="Manuelles Löschen der Changelist in PhpStorm" width="750" height="441" /><figcaption id="caption-attachment-316" class="wp-caption-text">Manuelles Löschen der Changelist in PhpStorm</figcaption></figure>
<p>Außerdem kann es helfen, bei zu vielen Issues in der Liste auch diese manuell zu löschen.</p>
<figure id="attachment_315" aria-describedby="caption-attachment-315" style="width: 750px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-315 size-full" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/phpstorm_workflow_tasks_2-e1454266031571.png" alt="Entfernen der Issue aus der Taskliste" width="750" height="218" /><figcaption id="caption-attachment-315" class="wp-caption-text">Entfernen der Issue aus der Taskliste</figcaption></figure>
<h3>Überprüfung in der Versionskontrolle und im Ticketsystem Redmine</h3>
<p>Wer ähnlich wie wir <a href="http://www.entwicklungshilfe.nrw/blog/ticketsystem-mit-versionskontrolle/">Redmine mit gitolite und dem redmine git hosting</a> nutzt, kann jetzt in seinem Projekt bei Redmine im Projektarchiv seinen neuen Workflow überprüfen.</p>
<figure id="attachment_309" aria-describedby="caption-attachment-309" style="width: 1024px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="wp-image-309 size-large" src="https://entwicklungshilfe.nrw/wp-content/uploads/2016/01/workflow_redmine-1024x162.png" alt="Workflow Ansicht im Ticketsystem Redmine" width="1024" height="162" /><figcaption id="caption-attachment-309" class="wp-caption-text">Workflow-Ansicht im Ticketsystem Redmine</figcaption></figure>
<p>Weiterführende Informationen zum Beispiel vom PhpStorm-Hersteller Jetbrains bekommt ihr <a href="https://www.jetbrains.com/phpstorm/help/tasks.html" target="_blank" rel="noopener noreferrer">hier</a>.</p>
<p><em>Nutzt ihr in euren PHP-Projekten eine andere Kombination von Ticketsystem, Versionskontrolle und IDE? Wenn ja, dann schreibt uns hier doch bitte mal, welche das sind. Denn von einem solchen Know-how-Austausch profitieren ja letztlich alle. Die oben beschriebene Kombination <a href="http://www.entwicklungshilfe.nrw/seminare/phpstorm-effektiv-mit-ticketsystem-nutzen/">schulen</a> wir übrigens auch.</em></p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2016/01/31/phpstorm-mit-ticketsystem-redmine-nutzen/">PhpStorm mit dem Ticketsystem Redmine nutzen</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://entwicklungshilfe.nrw/blog/2016/01/31/phpstorm-mit-ticketsystem-redmine-nutzen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Git ignore file mode global oder lokal setzen?</title>
		<link>https://entwicklungshilfe.nrw/blog/2016/01/13/git-ignore-file-mode-global-lokal/</link>
					<comments>https://entwicklungshilfe.nrw/blog/2016/01/13/git-ignore-file-mode-global-lokal/#respond</comments>
		
		<dc:creator><![CDATA[Andreas Mautz]]></dc:creator>
		<pubDate>Wed, 13 Jan 2016 12:00:32 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Entwicklertools]]></category>
		<category><![CDATA[Git]]></category>
		<guid isPermaLink="false">http://www.entwicklungshilfe.nrw/blog/?p=18</guid>

					<description><![CDATA[<p>Für die Arbeit mit der Versionsverwaltung Git müssen einige Einstellungen vorgenommen werden, damit diese effektiver eingesetzt werden kann. Manchmal ist es sinnvoll, diese global bzw. systemweit zu setzen. Etwa bei “Git ignore file mode”. Hier erfahrt ihr, wie das geht. Änderungen wie “Git ignore file mode” gehören dazu, da man diese Git-Einstellung nicht in jedem Projekt neu setzen muss. Es gibt mehrere [&#8230;]</p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2016/01/13/git-ignore-file-mode-global-lokal/">Git ignore file mode global oder lokal setzen?</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Für die Arbeit mit der Versionsverwaltung <a href="https://git-scm.com/" target="_blank" rel="noopener noreferrer">Git</a> müssen einige Einstellungen vorgenommen werden, damit diese effektiver eingesetzt werden kann. Manchmal ist es sinnvoll, diese global bzw. systemweit zu setzen. Etwa bei “Git ignore file mode”. Hier erfahrt ihr, wie das geht.</p>
<figure id="attachment_21" aria-describedby="caption-attachment-21" style="width: 300px" class="wp-caption alignleft"><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/Git-ignore-file-mode-1.jpg" rel="attachment wp-att-21"><img loading="lazy" decoding="async" class="wp-image-21 size-medium" src="https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/Git-ignore-file-mode-1-300x200.jpg" alt="Git ignore file mode" width="300" height="200" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/Git-ignore-file-mode-1-300x200.jpg 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/Git-ignore-file-mode-1-768x512.jpg 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/Git-ignore-file-mode-1-1024x683.jpg 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/Git-ignore-file-mode-1.jpg 1920w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/Git-ignore-file-mode-1-300x200@2x.jpg 600w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/Git-ignore-file-mode-1-768x512@2x.jpg 1536w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-21" class="wp-caption-text">Git ignore file mode</figcaption></figure>
<p>Änderungen wie “Git ignore file mode” gehören dazu, da man diese Git-Einstellung nicht in jedem Projekt neu setzen muss. Es gibt mehrere Anwendungsfälle, die wir auch in unseren <a href="http://www.entwicklungshilfe.nrw/seminare/git-flow-git-branching-model-fuer-agile-software-projekte/">Git-Schulungen</a> vorstellen werden. Es ist sinnvoll, die Einstellung global vorzunehmen – den Befehl sollte man aber dennoch auswendig kennen, falls man mal auf einem anderen System unterwegs ist.</p>
<h2>Git ignore file mode global setzen</h2>
<pre class="lang:default decode:true " title="Git ignore file mode global">git config --global core.filemode false</pre>
<p>Die oben abgebildete Zeile setzt durch den &#8211;global-Parameter die Einstellung global für den eingeloggten User. Das ist sehr praktisch, da die Einstellung in allen Projekten benötigt wird.</p>
<h2>Git ignore file mode lokal setzen</h2>
<pre class="lang:default decode:true " title="Git ignore file mode lokal">git -c core.filemode=false diff</pre>
<p>Neben der globalen Konfiguration ist es in Git natürlich auch möglich, die Einstellung nur für das aktuelle Projekt vorzunehmen. Der oben abgebildete CLI-Befehl setzt die Konfiguration nur für das aktuelle Projekt Verzeichnis.</p>
<h2>Git filemode</h2>
<p>Es kommt vor, dass durch Benutzerrechte Änderungen im lokalen Workspace entstehen und Git diese Änderungen als Change erkennt und committen möchte. Das ist zwar technisch richtig, häufig jedoch unerwünscht. Hierfür kann man ein Setting in der Git-Konfiguration setzen. Das lässt sich lokal oder global machen. Dessen sollte man sich immer bewusst sein und wissen, dass in Zukunft eventuell berechtigte Änderungen an den Zugriffsrechten nicht wirksam werden, wenn man das Setting global gesetzt hat. Für Änderungen in diesem seltenen Fall sollte man das Repo noch einmal explizit auschecken und die gewünschten Änderungen dort vornehmen und in das Remote Repository bringen. So spart man sich das lästige Hin- und Herkonfigurieren.</p>
<h2>Weiterführende PHP-Schulung zum Thema Git</h2>
<p>Wenn ihr euch gezielt zum Thema Git weiterbilden und viele praktische Tipps für eure Arbeit erhalten möchtet, könnte euch unsere entsprechende PHP-Schulung interessieren. <a href="http://www.entwicklungshilfe.nrw/seminare/git-flow-git-branching-model-fuer-agile-software-projekte/">Infos dazu findet ihr hier</a>. Insgesamt zielen die Seminare und Workshops von Entwicklungshilfe NRW – ebenso wie unser Blog – darauf ab, Webentwicklern die Arbeit zu erleichtern und dadurch für mehr Spaß und Motivation zu sorgen. Wenn ihr euch übrigens gerade fragt, wie ihr eure Vorgesetzten vom Nutzen einer Weiterbildung überzeugen könnt, dann hilft euch vielleicht <a href="http://www.entwicklungshilfe.nrw/blog/php-schulung-vorgesetzte-ueberzeugen/">dieser Beitrag hier</a> weiter.</p>
<p><em>Falls ihr noch Fragen zum Thema Git ignore file mode habt, dann könnt ihr diese gerne in den Kommentaren stellen. Wir werden euch so schnell wie möglich antworten.</em></p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2016/01/13/git-ignore-file-mode-global-lokal/">Git ignore file mode global oder lokal setzen?</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://entwicklungshilfe.nrw/blog/2016/01/13/git-ignore-file-mode-global-lokal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Plugins: WordPress ohne FTP updaten</title>
		<link>https://entwicklungshilfe.nrw/blog/2015/12/16/wordpress-ohne-ftp-updaten/</link>
					<comments>https://entwicklungshilfe.nrw/blog/2015/12/16/wordpress-ohne-ftp-updaten/#respond</comments>
		
		<dc:creator><![CDATA[Andreas Mautz]]></dc:creator>
		<pubDate>Wed, 16 Dec 2015 12:39:09 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Entwicklertools]]></category>
		<category><![CDATA[CMS Open Source]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://www.entwicklungshilfe.nrw/blog/?p=51</guid>

					<description><![CDATA[<p>WordPress ist die beliebteste Open-Source-Software für Blogs und Blogger. Doch immer wieder wird hier die Sicherheit kritisiert. Ein Dauerthema sind dabei Plugin-Updates ohne FTP. &#8222;WordPress ohne FTP updaten (oder installieren)&#8220; ist eine vielgenutzte Phrase bei der Google-Suche – kein anderes bekanntes CMS-System nutzt diese Art für die Installation und die Aktualisierungen bei Plugins. Insofern ist es [&#8230;]</p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2015/12/16/wordpress-ohne-ftp-updaten/">Plugins: WordPress ohne FTP updaten</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="http://wpde.org/" target="_blank" rel="noopener noreferrer">WordPress</a> ist die beliebteste Open-Source-Software für Blogs und Blogger. Doch immer wieder wird hier die <a href="http://t3n.de/magazin/fuenf-schritten-wordpress-security-erhoehen-sicheren-235764/" target="_blank" rel="noopener noreferrer">Sicherheit</a> kritisiert. Ein Dauerthema sind dabei Plugin-Updates ohne FTP.</p>
<figure id="attachment_56" aria-describedby="caption-attachment-56" style="width: 300px" class="wp-caption alignleft"><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/WordPress-Plugins-ohne-FTP-installieren-1.jpg" rel="attachment wp-att-56"><img loading="lazy" decoding="async" class="wp-image-56 size-medium" src="https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/WordPress-Plugins-ohne-FTP-installieren-1-300x176.jpg" alt="WordPress Plugins ohne FTP installieren" width="300" height="176" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/WordPress-Plugins-ohne-FTP-installieren-1-300x176.jpg 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/WordPress-Plugins-ohne-FTP-installieren-1-768x451.jpg 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/WordPress-Plugins-ohne-FTP-installieren-1-1024x602.jpg 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/WordPress-Plugins-ohne-FTP-installieren-1.jpg 1920w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/WordPress-Plugins-ohne-FTP-installieren-1-300x176@2x.jpg 600w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/WordPress-Plugins-ohne-FTP-installieren-1-768x451@2x.jpg 1536w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-56" class="wp-caption-text">WordPress ohne FTP updaten</figcaption></figure>
<p>&#8222;WordPress ohne FTP updaten (oder installieren)&#8220; ist eine vielgenutzte Phrase bei der Google-Suche – kein anderes bekanntes CMS-System nutzt diese Art für die Installation und die Aktualisierungen bei Plugins. Insofern ist es immer wichtig, im Vorfeld Sicherheitsmaßnahmen zu definieren und dann vor allem auch umzusetzen. Regelmäßige Updates sind ebenfalls von zentraler Bedeutung für die Sicherheit in Open-Source-Anwendungen. Das WordPress-Backend macht zuverlässig und übersichtlich auf Aktualisierungen aufmerksam.</p>
<h2>Plugins: WordPress ohne FTP updaten</h2>
<p>Damit die Installationen von WordPress ohne FTP (File Transfer Protocol) vorgenommen werden können, ist es nötig, ein Setting in der wp-config.php hinzuzufügen.</p>
<pre class="lang:default decode:true " title="wp-config.php WordPress Plugin ohne FTP">define('FS_METHOD', 'direct');</pre>
<p>Mit dem oben abgebildeten Setting ist es möglich, als eingeloggter User alle Aktualisierungen von WordPress im Backend vorzunehmen. Nach den Aktualisierungen kann man die Zeile dann wieder auskommentieren. Generell sind Updates nur durchzuführen, wenn man vorher ein vollständiges Backup erstellt hat. Zu dem Thema habe ich bereits einen Gastbeitrag in einem Online-Fachmagazin veröffentlicht.<br />
<a href="http://www.zielbar.de/blogger-erfolgreich-wordpress-einsetzen-4251/" target="_blank" rel="noopener noreferrer">http://www.zielbar.de/blogger-erfolgreich-wordpress-einsetzen-4251/</a></p>
<h2>FTP und die Frage der Sicherheit</h2>
<p>Das FTP wird gerade bei einfachen Hosting-Lösungen häufig eingesetzt. In dem Artikel <a href="http://www.it-administrator.de/themen/sicherheit/fachartikel/104843.html" target="_blank" rel="noopener noreferrer">FTP: Die unterschätzte Sicherheitslücke</a> findet man eine Auflistung möglicher Schwachstellen. (WordPress-)Updates ohne FTP sind nur eine davon. Grundsätzlich gibt es in puncto Sicherheit keinen 100-prozentigen Schutz, und außerdem gilt noch immer der Leitsatz: &#8222;<span class="_5yl5">Statistische Sicherheit: Ein System wird dann als sicher bezeichnet, wenn für den Angreifer der Aufwand für das Eindringen in das System höher ist als der daraus resultierende Nutzen. Deshalb ist es wichtig, die Hürden für einen erfolgreichen Einbruch möglichst hoch zu setzen und damit das Risiko zu reduzieren</span>&#8222;. Denn ist der Aufwand für den Angreifer zu hoch, so lässt er schnell ab. Näheres dazu (und mehr Wissenswertes zum Thema) findet man in dem <a href="https://de.wikipedia.org/wiki/Informationssicherheit" target="_blank" rel="noopener noreferrer">Wikipedia-Eintrag zu Informationssicherheit</a>.</p>
<p>Daher hat WordPress FTP als Sicherheitsbarriere eingebaut. So kann auch ein Administrator keine Plugins installieren oder aktualisieren, ohne einen FTP-Zugang zu haben. Das gibt es in anderen CMS-Systemen wie <a href="http://typo3.org" target="_blank" rel="noopener noreferrer">TYPO3</a> nicht. Professionelle Hosting-Lösungen arbeiten mit einem <a href="https://de.wikipedia.org/wiki/Secure_Shell" target="_blank" rel="noopener noreferrer">SSH-Zugriff</a>. In Kombination mit einem SSH Key hat man die Zugriffe sehr gut unter Kontrolle und kann sie gegebenenfalls sofort wieder entfernen. Zudem wird auch protokolliert, wer die Änderungen durchgeführt hat. Bei FTP-Zugängen von Webhosting-Paketen gibt es in der Regel nur einen Zugang, den dann mehrere Personen nutzen. Änderungen bedeuten also zusätzlichen Kommunikationsaufwand.</p>
<h2>WordPress Hosting Backups</h2>
<p>Auch der Verlust eines privaten Hobby-Blogs ist sehr schmerzhaft. Man muss aber kein Sicherheitsexperte werden, damit man einen Blog erfolgreich und sicher betreiben kann. Wichtig ist aber in jedem Fall ein zuverlässiges Backup, damit man jederzeit den Stand von gestern oder vorgestern wiederherstellen kann. Das beseitigt zwar nicht das Sicherheitsloch an sich, aber es begrenzt schon mal erheblich den entstandenen Schaden. Denn so geht dann maximal die Arbeit von 24 oder 48 Stunden verloren – das ist zwar immer noch ziemlich ärgerlich, aber letztlich noch überschaubar. Achtet bei euren Hosting-Anbietern also genau auf die Backup-Strategie! Wichtig sind Frequenz, Menge und Ausmaß. Hingegen nur die Datenbank zu sichern, reicht nicht aus.</p>
<h2>Entwicklungshilfe bei WordPress-Blogs</h2>
<p>Fragen zum Thema WordPress &amp; Hosting beantworten wir gerne und leisten auch tatkräftig Unterstützung. Nehmt dazu einfach <a href="http://www.entwicklungshilfe.nrw/kontakt/">Kontakt</a> mit uns auf.</p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2015/12/16/wordpress-ohne-ftp-updaten/">Plugins: WordPress ohne FTP updaten</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://entwicklungshilfe.nrw/blog/2015/12/16/wordpress-ohne-ftp-updaten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
