{"id":47,"date":"2013-10-21T04:14:47","date_gmt":"2013-10-21T02:14:47","guid":{"rendered":"http:\/\/blog.ghbss.homedns.org\/?page_id=47"},"modified":"2017-05-27T20:13:12","modified_gmt":"2017-05-27T18:13:12","slug":"git","status":"publish","type":"page","link":"https:\/\/blog.ghbss.de\/?page_id=47","title":{"rendered":"Git"},"content":{"rendered":"<p>Ich benutze seit einiger Zeit &#8222;Git&#8220; f\u00fcr Versionsverwaltung von meine Entwicklungen. Hier k\u00f6nnen Sie nachlesen wie ich es einsetze um meine t\u00e4gliche Arbeit zu erledigen. Zur Zeit benutze ich es alleine aber in naher Zukunft m\u00f6chte ich Updates f\u00fcr meine Kunden auf diesem Weg anzubieten.<\/p>\n<p>Um hier beschriebenen Schritte erfolgreich durchzuf\u00fchren brauchen wir einen Linux(Ubuntu) Rechner , den wir als Speicherplatz f\u00fcr unsere Repositories einsetzen wollen. Dieser Rechner sollte folgende Voraussetzungen erf\u00fcllen:<\/p>\n<ul>\n<li>Ich nehme in diesem Artikel an dass der Ubuntu-Server \u201cmy.gitServer.org\u201d heisst$&gt; hostnamemy.gitServer.org\n<li>installierte ssh und openssh-server(Weil wir unsere Repository \u00fcber ssh zugreifen wollen)$&gt; sudo apt-get install ssh openssh-server <\/li>\n<\/ul>\n<h1>Git Installation<\/h1>\n<p>Nach dem Git auf dem Rechner installiert ist, sollte man es als erster konfigurieren. Hier erst mal die g\u00e4ngigsten Einstellungen:<\/p>\n<p>Benutzername<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$&gt; git config \u2013- global   --add user.name \u201cMax Musterman\u201d<\/pre>\n<p>Email-Adresse<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$&gt; git config \u2013-global  --add user.email \u201cmm@domain.com\u201d<\/pre>\n<h2>Git auf dem Server Installieren und Konfigurieren<\/h2>\n<p>Die Installation von git auf dem Ubuntu ist recht einfach und kann mit folgenden Kommando erledigt werden:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$&gt; sudo apt-get install git<\/pre>\n<p>Wir brauchen jetzt eine M\u00f6glichkeit um diese Server \u00fcber SSH zu erreichen. Hierf\u00fcr legen wir erst mal einen Benutzer an und stellen wir Zugriffsrechte fest:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$&gt; sudo adduser git\n$&gt; su git\n$&gt; cd\n$&gt; mkdir .ssh &amp;&amp; chmod 700 .ss\n$&gt; touch .ssh\/authorized_keys &amp;&amp; chmod 600 .ssh\/authorized_keys<\/pre>\n<p>So jetzt alle Benutzer deren publik-Schl\u00fcssel in .ssh\/authorized_keys aufgelistet ist k\u00f6nnen sich verbinden.<\/p>\n<p>Alle schl\u00fcsseln werden so wie untere Kommando in die Datei ran geh\u00e4ngt.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$&gt; cat [BenutzerPublikSchluessel] &gt;&gt; .ssh\/authorized_keys<\/pre>\n<h2>Git Repository auf dem Server erzeugen<\/h2>\n<p>Ein zentrales Repository wird eingesetzt um anderen Entwickler den Zugriff zu erlauben, worauf die ihre \u00c4nderungen abgleichen k\u00f6nnen.<\/p>\n<p>Hierf\u00fcr brauchen wir als erster ein Ordner, wo wir unsere repository anlegen k\u00f6nnen.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$&gt; mkdir myRepository<\/pre>\n<p>Jetzt wechseln wir in dem Ordner und erzeugen wir so ein Repository mit dem folgenden Kommando:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$&gt; mkdir myRepository<\/pre>\n<p>Optional kannst du auch die beiden Kommandos vereint schreiben:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$&gt; git init --bare  myRepository<\/pre>\n<p>TIP: <em>H\u00e4nge &#8222;.git&#8220; am ende von dein Repositories. Das hat sich so durchgesetzt, womit du dann schnell erkennen kannst dass diese Ordner ein git-repository beinhaltet.<\/em><\/p>\n<h2>Tip: Server umgezogen<\/h2>\n<p>Im laufe der Zeit kommt es vor , warum auch immer, dass der &#8222;Git&#8220;-Server \u00e4ndert. Sei es der Ordner auf dem Server oder gar der ganze Server. Dies f\u00fchrt dazu, dass die einzelne Clients nicht mehr darauf zugreifen k\u00f6nnen. Um dies zu l\u00f6sen sind folgende Schritte n\u00f6tig:<\/p>\n<ol>\n<li>der Remote herausfindenmit dem kommando : &#8222;git remote show&#8220; k\u00f6nnen Sie den betroffenen remote aus der Liste herausfinden\n<li>betroffene Remote entfernenmit dem kommando &#8222;git&nbsp; remote&nbsp; rm remote&#8220; (meistens: git&nbsp; remote rm origin&#8220;) k\u00f6nnen Sie den remote entfernen.\n<li>neue Remote-Repository hinzuf\u00fcgen&#8220;git&nbsp; remote add remote&nbsp; neue-URL&#8220; kannst du einen neuen Remote-Repository hinzuf\u00fcgen und dabei neue URL benutzen. <\/li>\n<\/ol>\n<h1>Git unter Windows hinter proxy<\/h1>\n<p>Ich bin \u00f6fter au\u00dferhalb meines B\u00fcros im Einsatz und muss manchmal Internetzugang von meinem Kunden mitbenutzen.&nbsp; Darum nehme ich gerne <a href=\"http:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/\" target=\"_blank\">Putty<\/a> her um leichter auf meine Repositories zuzugreifen. Die Einrichtung finde ich auch nicht komplitziert wie es auf manchen Seiten behauptet wird.<\/p>\n<p>Die Umgebung f\u00fcr diese Beschreibung:<\/p>\n<ul>\n<li>Ein entfernter Linux(Ubuntu) Rechner(Server) nennen wir unsere Server: \u201c<strong><em><span style=\"background-color: rgb(255, 255, 0);\">my.gitServer.org<\/span><\/em><\/strong>\u201d\n<li>ein Benutzer&nbsp; mit dem Namen \u201cgit\u201d auf dem Server.\n<li>OpenSSH und OpenSSH-Server sind auf dem Server installiert\n<li>Man kann sich remote (ohne PROXY) auf dem Server einloggen <\/li>\n<\/ul>\n<p><\/p>\n<p>Also es kann los gehen.<\/p>\n<ul>\n<li>Erstmal muss man putty installieren.Hier gehe ich davon aus, dass \u201cputty\u201d in default Ordner (\u201cC:\\Program Files\\Putty\u201d) installiert wurde.\n<li>Erst brauchen wir ein Umgebungsvariable um git mitzuteilen welches Programm es hernehmen soll um Verbindungen aufzubauen:<br \/>\nGIT_SSH=\u201dC:\\Program Files\\Putty\\plink.exe\u201d <br \/>\nAm besten kann man das unter \u201cSystem Einstellungen\u201d \u2013&gt; \u201cSystem\u201d \u2013&gt; \u201cErweitert\u201d \u2013&gt; \u201cUmgebungsvariablen\u201d vornehmen.<\/p>\n<li>SSH-Schl\u00fcsseln Generieren. <br \/>\nNachdem Umgebungsvariable gesetzt ist k\u00f6nnen wir unsere SSH-Schl\u00fcsseln generieren. Hierf\u00fcr nehmen wir \u201cputtygen\u201d \u2013 Programm her.<br \/>\n<font size=\"4\"><strong><em>WICHTIG: Nach der Generierung der Schl\u00fcssel das Programm noch nicht beenden.<br \/>\n<\/em><\/strong><\/font>Erst muss man \u201cPublic key for pasting into OpenSSH authorized_keys file:\u201d kopieren.<br \/>\n<a href=\"http:\/\/blog.ghbss.de\/wp-content\/uploads\/2015\/02\/puttygen-leer.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"290\" class=\"alignnone wp-image-347 size-medium\" alt=\"puttygen-leer\" src=\"http:\/\/blog.ghbss.de\/wp-content\/uploads\/2015\/02\/puttygen-leer-300x290.png\" srcset=\"https:\/\/blog.ghbss.de\/wp-content\/uploads\/2015\/02\/puttygen-leer-300x290.png 300w, https:\/\/blog.ghbss.de\/wp-content\/uploads\/2015\/02\/puttygen-leer.png 483w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<li>Jetzt k\u00f6nnen wir uns Schl\u00fcsseln generieren lassen(\u201cGenerate\u201d). Nach der Generierung muss man die Schl\u00fcsseln (\u201cPrivate\u201d und \u201cpublic\u201d) sichern.<br \/>\n<a href=\"http:\/\/blog.ghbss.de\/wp-content\/uploads\/2015\/02\/puttygen-mit-Key.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"290\" class=\"alignnone wp-image-348 size-medium\" alt=\"puttygen-mit-Key\" src=\"http:\/\/blog.ghbss.de\/wp-content\/uploads\/2015\/02\/puttygen-mit-Key-300x290.png\" srcset=\"https:\/\/blog.ghbss.de\/wp-content\/uploads\/2015\/02\/puttygen-mit-Key-300x290.png 300w, https:\/\/blog.ghbss.de\/wp-content\/uploads\/2015\/02\/puttygen-mit-Key.png 483w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<li>Obwohl man OpenSSH-Schl\u00fcssel jederzeit wieder herstellen kann, empfehle ich dieses in einem Datei zu sichern. Das ist die publik-Schl\u00fcssel die wir f\u00fcr Git-Repository brauchen.\n<li>Generierte OpenSSH-Schl\u00fcssel auf dem git Repository-Server sichern (der Schl\u00fcssel wird an .ssh\/authorized_keys datei von git Benutzer ran geh\u00e4ngt. ).\n<li>Jetzt Putty starten und generieren wir einen Session.Wichtig hier bei ist au\u00dfer Eintragung der Proxy-Einstellungen, der Name , unter welchem man die Session speichert. Es soll unter dem selben Namen gesichert werden wie der Server. in unserem Fall also: <span style=\"background-color: rgb(255, 255, 0);\">my.gitServer.org&nbsp; <\/span>Nach der Eintragung der Proxy-Einstellungen sollte es dann funktionieren. <\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ich benutze seit einiger Zeit &#8222;Git&#8220; f\u00fcr Versionsverwaltung von meine Entwicklungen. Hier k\u00f6nnen Sie nachlesen wie ich es einsetze um meine t\u00e4gliche Arbeit zu erledigen. Zur Zeit benutze ich es alleine aber in naher Zukunft m\u00f6chte ich Updates f\u00fcr meine Kunden auf diesem Weg anzubieten. Um hier beschriebenen Schritte erfolgreich durchzuf\u00fchren brauchen wir einen Linux(Ubuntu) [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":45,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-47","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/pages\/47","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=47"}],"version-history":[{"count":14,"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/pages\/47\/revisions"}],"predecessor-version":[{"id":518,"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/pages\/47\/revisions\/518"}],"up":[{"embeddable":true,"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/pages\/45"}],"wp:attachment":[{"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}