{"id":444,"date":"2015-09-30T07:23:46","date_gmt":"2015-09-30T07:23:46","guid":{"rendered":"http:\/\/coolt.ch\/notizen\/?p=444"},"modified":"2016-06-22T13:28:29","modified_gmt":"2016-06-22T13:28:29","slug":"git-wichtigste-befehle","status":"publish","type":"post","link":"https:\/\/coolt.ch\/notizen\/git-wichtigste-befehle\/","title":{"rendered":"Git: wichtigste Befehle"},"content":{"rendered":"<p><strong>Herunterladen<br \/>\n<\/strong><\/p>\n<pre class=\"lang:sh decode:true\">git fetch upstream<\/pre>\n<p><strong>Herunterladen <\/strong>und<strong> zusammenf\u00fchren <\/strong>mit local<\/p>\n<pre class=\"lang:sh decode:true\">git pull [origin master]  \/\/ fetch und merge<\/pre>\n<p><strong><br \/>\nDateien auf Github hochladen<\/strong><\/p>\n<pre><code>git push [origin master]   \/\/ origin  bedeutet remote auf github\r\ngit push [ &lt;ziel&gt; &lt;von wo&gt;]\r\n<\/code><\/pre>\n<p><strong>Unterscheidung <span style=\"color: #008000;\">remote\/local<\/span><\/strong><br \/>\nGithub ist ein entferntes Verzeichnis auf dem Internet. Deshalb bezieht sich der Begriff <span style=\"color: #339966;\"><span style=\"color: #008000;\">remote<\/span> <span style=\"color: #000000;\">auf<\/span> <span style=\"color: #008000;\">Github<\/span><\/span>. Steht nichts vor dem Branch-Name, so ist es<span style=\"color: #008000;\"> local.<\/span><\/p>\n<pre class=\"lang:sh decode:true\">$git branch -a\r\n*master     \/\/ local branch\r\ndevelop     \/\/ local branch\r\n<span style=\"color: #008000;\">remotes\/<span style=\"color: #000000;\">origin\/HEAD  -&gt; origin\/master<\/span><\/span>\r\n<span style=\"color: #008000;\">remotes\/<\/span>origin\/master\r\n<span style=\"color: #008000;\">remotes<\/span>\/origin\/develop<\/pre>\n<p><strong><br \/>\nOrdner umbenennen<\/strong><\/p>\n<pre><code>git mv &lt;old name&gt; &lt;new name&gt;<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Lokale Datei aus aktuellem Verzeichnis nehmen<\/strong><\/p>\n<p>Das <a href=\"http:\/\/coolt.ch\/notizen\/git-grundprinzip-checkout\/\">Git-Verzeichnis befindet sich immer in einem Zustand<\/a>. Dies ist eine spezifische Commit-Nummer. Will man eine Datei nicht mehr nachverfolgen, bedeutet dies, dass man die Datei aus diesem Arbeitsverzeichnis nimmt.<\/p>\n<p><span class=\"lang:sh decode:true crayon-inline\">git remove &lt;file&gt;<\/span>\u00a0\u00a0 Dieser Befehl ist das Gegenteil von<\/p>\n<p><span class=\"lang:sh decode:true crayon-inline\">git add &lt;file&gt;<\/span><\/p>\n<p><span class=\"lang:sh decode:true  crayon-inline \">Git remove<\/span>\u00a0 bezieht sich nur auf das aktuelle Verzeichnis. Ist die Datei bereits eingechecked, so ist sie in alten Versionen noch da.<\/p>\n<p><a href=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/git_remove.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1480\" src=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/git_remove.png\" alt=\"git_remove\" width=\"1106\" height=\"371\" srcset=\"https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/git_remove.png 1106w, https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/git_remove-300x101.png 300w, https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/git_remove-1024x343.png 1024w\" sizes=\"(max-width: 1106px) 100vw, 1106px\" \/><\/a><\/p>\n<p><strong><br \/>\nPush auf Repository r\u00fcckg\u00e4ngig machen<\/strong><\/p>\n<pre class=\"lang:sh decode:true\">git log\r\ngit revert &lt;beginn der aktuellen commit-nummer&gt;<\/pre>\n<p>Der aktuelle Commit findet man mit git log. Danach kann man diesen commit mit <em>revert<\/em> r\u00fcckg\u00e4ngig machen. Es besteht wieder der Zustand vor diesem commit.<br \/>\n<a href=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/git_log.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-449\" src=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/git_log.png\" alt=\"git_log\" width=\"469\" height=\"263\" srcset=\"https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/git_log.png 469w, https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/git_log-300x168.png 300w\" sizes=\"(max-width: 469px) 100vw, 469px\" \/><\/a><\/p>\n<p><strong>Add\u00a0 r\u00fcckg\u00e4ngig machen<\/strong><\/p>\n<pre class=\"lang:sh decode:true\">git reset HEAD &lt;Verzeichnis&gt;<\/pre>\n<p>Hat man lokal zuviel zum Committen getan, geht mit diesem Befehl die Datei zur\u00fcck in untracked (und wird wieder rot).<\/p>\n<p><strong>Ordner aus Repository entfernen \u00a0 (remote)<br \/>\n<\/strong><\/p>\n<pre><code>git rm -r --cached &lt;directory&gt;       \r\ngit commit -m \"Ordner aus Github genommen\" \r\ngit push origin master<\/code><\/pre>\n<p>Hier wird der Ordner aus dem Repository genommen (dort gel\u00f6scht), aber <em>lokal gelassen<\/em>. Grund daf\u00fcr ist die Zeile <strong>&#8211;cached<\/strong>.<\/p>\n<p><strong><br \/>\nOrdner aus Git entfernen (lokal und remote)<br \/>\n<\/strong><\/p>\n<pre><code>git rm -r &lt;directory&gt;\r\ngit status: deleted  &lt;directory&gt;\r\ngit add &lt;directory&gt;\r\ngit commit -m \"l\u00f6schen eines Ordners lokal und auf Github\" <\/code><\/pre>\n<p>Der Ordner existiert lokal nicht mehr. Soll er auch auf Github nicht mehr existieren, muss die L\u00f6sch-Meldung gepushed werden.<\/p>\n<p><strong><br \/>\nAlte Datei von Repository holen<\/strong><\/p>\n<pre><code>git checkout &lt;commit-nr&gt; &lt;pfad&gt;\/&lt;file&gt;<\/code><\/pre>\n<p>Achtung: Die Datei wird lokal genau nach Pfad abgelegt. Liegt dort eine aktuelle Datei, wird diese <strong>\u00fcberschrieben<\/strong>. <em>Man muss zuerst die akutelle Datei umbenennen.<\/em><\/p>\n<p><a href=\"http:\/\/rogerdudler.github.io\/git-guide\/\"><strong><br \/>\nWebsite mit wichtigsten Befehlen<\/strong><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Herunterladen git fetch upstream Herunterladen und zusammenf\u00fchren mit local git pull [origin master] \/\/ fetch und merge Dateien auf Github hochladen git push [origin master] \/\/ origin bedeutet remote auf github git push [ &lt;ziel&gt; &lt;von wo&gt;] Unterscheidung remote\/local Github ist ein entferntes Verzeichnis auf dem Internet. Deshalb bezieht sich der Begriff remote auf Github. &hellip; <a href=\"https:\/\/coolt.ch\/notizen\/git-wichtigste-befehle\/\" class=\"more-link\"><span class=\"screen-reader-text\">Git: wichtigste Befehle<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[38],"tags":[49,44],"_links":{"self":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/444"}],"collection":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/comments?post=444"}],"version-history":[{"count":26,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/444\/revisions"}],"predecessor-version":[{"id":1481,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/444\/revisions\/1481"}],"wp:attachment":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/media?parent=444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/categories?post=444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/tags?post=444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}