{"id":5362,"date":"2021-04-30T11:05:44","date_gmt":"2021-04-30T10:05:44","guid":{"rendered":"https:\/\/medtech-ingenieur.de\/?p=5362"},"modified":"2021-08-06T14:32:24","modified_gmt":"2021-08-06T13:32:24","slug":"grundlegende-git-tipps-zur-effizienten-software-entwicklung","status":"publish","type":"post","link":"https:\/\/medtech-ingenieur.de\/en\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/","title":{"rendered":"Basic Git tips for efficient software development"},"content":{"rendered":"<p>Git ist eines der essenziellsten Tools der Software-Entwicklung. Aufgrund seines enormen Funktionsumfangs gibt es jedoch auch einige Funktionen, die zwar sehr praktisch, aber nicht besonders bekannt sind. Einige n\u00fctzliche Funktionen sollen hier hervorgehoben werden.<\/p>\n<p>Damit Sie die Befehle beim Lesen problemlos testen k\u00f6nnen, wird explizit darauf hingewiesen, wenn Befehle schwerwiegende oder irreversible \u00c4nderungen an Ihrem Repository vornehmen. Auf der sicheren Seite sind Sie, wenn Sie alle Ihre \u00c4nderungen vorher pushen. Grundlegende Git-Kenntnisse werden im Folgenden angenommen.<\/p>\n<h1>1. Besseres Log<\/h1>\n<p>Der Befehl <span class=\"consoleOutput\">git log<\/span> wird den meisten vertraut sein, aber er bietet auch erweiterte Optionen an, um die Informationen besser darzustellen. Mit der Option <span class=\"consoleOutput\">-\u200b-graph<\/span> erzeugt Git einen Graphen, der die Zusammenh\u00e4nge der Commits und Branches visualisiert. Aufgrund der Menge an dargestellten Details ist dies noch nicht besonders \u00fcbersichtlich. Hier hilft die Option <span class=\"consoleOutput\">-\u200b-oneline<\/span>, indem sie die Commits verk\u00fcrzt darstellt und dazu jeweils eine Zeile verwendet. Nimmt man noch die Option <span class=\"consoleOutput\">-\u200b-all<\/span> hinzu, werden alle Commits angezeigt. So kann man sich mit <span class=\"consoleOutput\">git log -\u200b-graph -\u200b-oneline -\u200b-all<\/span> einen sehr guten \u00dcberblick verschaffen.<br \/>\nDie Aliase dieser <a href=\"https:\/\/stackoverflow.com\/a\/34467298\">StackOverflow-Antwort<\/a>\u00a0sind hierzu auch besonders empfehlenswert. Sie stellen den Verlauf der Branches mit allen wichtigen Informationen gut dar.<\/p>\n<p><a href=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5367\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg.png\" alt=\"\" width=\"849\" height=\"129\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg.png 849w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg-300x46.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg-768x117.png 768w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg-100x15.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg-150x23.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg-200x30.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg-450x68.png 450w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/lg-600x91.png 600w\" sizes=\"auto, (max-width: 849px) 100vw, 849px\" \/><\/a><\/p>\n<h1>2. Der interaktive Modus<\/h1>\n<p>Vor dem Committen m\u00fcssen die \u00c4nderungen ausgew\u00e4hlt werden, die im Commit enthalten sein soll. H\u00e4ufig werden dazu die ver\u00e4nderten Dateien mit <span class=\"consoleOutput\">git add pfad\/zur\/datei.c<\/span> hinzugef\u00fcgt. Diese Methode hat allerdings ein paar Nachteile:<\/p>\n<ul>\n<li>Der Dateipfad jeder Datei muss angegeben werden<\/li>\n<li>Soll nur ein Teil der \u00c4nderungen in einer Datei hinzugef\u00fcgt werden, dann m\u00fcssen alle anderen \u00c4nderungen vorher r\u00fcckg\u00e4ngig gemacht werden<\/li>\n<li>Kleinigkeiten wie gel\u00f6schte oder hinzugef\u00fcgte Leerzeilen werden ebenfalls \u00fcbernommen und f\u00fchren zu einer un\u00fcbersichtlicheren \u00c4nderungshistorie<\/li>\n<\/ul>\n<p>Deutlich effizienter ist die Verwendung von <span class=\"consoleOutput\">git add -p<\/span>. Mit der Option <span class=\"consoleOutput\">-p<\/span> pr\u00e4sentiert Git nach und nach ver\u00e4nderte Bl\u00f6cke und man kann interaktiv entscheiden, welche davon man zum n\u00e4chsten Commit hinzuf\u00fcgen will. Git zeigt im interaktiven Modus nach einer leeren Eingabe (Enter) an, welche M\u00f6glichkeiten es gibt. Bei <span class=\"consoleOutput\">git add -p<\/span> sind dies die wichtigsten:<\/p>\n<ul>\n<li><span class=\"consoleOutput\">y<\/span> \u2013 Aktuellen Block hinzuf\u00fcgen<\/li>\n<li><span class=\"consoleOutput\">n<\/span> \u2013 Aktuellen Block nicht hinzuf\u00fcgen<\/li>\n<li><span class=\"consoleOutput\">q<\/span> \u2013 Abbrechen (beh\u00e4lt vorherige \u00c4nderungen allerdings bei)<\/li>\n<\/ul>\n<p>Will man nur einen Teil der \u00c4nderungen eines Blocks hinzuf\u00fcgen, dann kann man den Block mit <span class=\"consoleOutput\">s<\/span> weiter unterteilen oder, falls das nicht m\u00f6glich ist, mit <span class=\"consoleOutput\">e<\/span> Zeile f\u00fcr Zeile entscheiden. Au\u00dferdem kann man mit <span class=\"consoleOutput\">a<\/span> und <span class=\"consoleOutput\">d<\/span> f\u00fcr alle Bl\u00f6cke der aktuellen Datei gleichzeitig entscheiden.<br \/>\nNeben den Vorteilen durch die gezieltere Wahl der \u00c4nderungen erm\u00f6glicht <span class=\"consoleOutput\">git add -p<\/span> einem auch noch einmal, die \u00c4nderungen zu pr\u00fcfen. Au\u00dferdem fallen hier Whitespace-Fehler besonders auf.<\/p>\n<p><a href=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/add.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5397\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/add.png\" alt=\"\" width=\"502\" height=\"219\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/add.png 502w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/add-300x131.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/add-100x44.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/add-150x65.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/add-200x87.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/add-450x196.png 450w\" sizes=\"auto, (max-width: 502px) 100vw, 502px\" \/><\/a><\/p>\n<p>M\u00f6chte man noch nicht committete \u00c4nderungen gezielt verwerfen, dann bietet sich <span class=\"consoleOutput\">git checkout -p<\/span> an. Der Befehl \u00e4hnelt <span class=\"consoleOutput\">git add -p<\/span> in der Verwendung stark. Daher muss man allerdings auch auf eine Verwechslung aufpassen und man sollte sich bewusst sein, dass eine falsche Verwendung von <span class=\"consoleOutput\">git checkout -p<\/span> zu irreversiblem Verlust der nicht committeten \u00c4nderungen f\u00fchren kann. Dennoch ist der Befehl empfehlenswert.<\/p>\n<h1>3. Effizient committen<\/h1>\n<p>Ist man mit seinen ausgew\u00e4hlten \u00c4nderungen zufrieden, dann ist der n\u00e4chste Schritt nat\u00fcrlich <span class=\"consoleOutput\">git commit<\/span>. Git \u00f6ffnet anschlie\u00dfend einen Texteditor, damit man die Commit-Nachricht angeben kann. Diesen Schritt kann man aber auch \u00fcberspringen, indem man dem Befehl die Commit-Nachricht direkt \u00fcbergibt: <span class=\"consoleOutput\">git commit -m &#8218;Dies ist eine Beispielnachricht&#8216;<\/span>.<br \/>\nErg\u00e4nzungen eines bereits erstellten Commits k\u00f6nnen mit <span class=\"consoleOutput\">git commit -\u200b-amend<\/span> nachgereicht werden. Mit diesem Befehl wird, anstatt einen neuen Commit zu erstellen, der Inhalt stattdessen einfach in den letzten Commit integriert. Er kann auch verwendet werden, um die Commit-Nachricht des letzten Commits zu ver\u00e4ndern. Die Ver\u00e4nderung des letzten Commits ist allerdings nur empfehlenswert, wenn er noch nicht gepusht wurde.<\/p>\n<h1>4. Aufr\u00e4umen mit git rebase<\/h1>\n<p>Vielen wird der Fehler bereits passiert sein, einen neuen Branch vom falschen Branch aus abzuzweigen. Nat\u00fcrlich kann man in dem Fall den neuen Branch l\u00f6schen und an der richtigen Stelle neu erstellen, aber was, wenn man schon \u00c4nderungen committet hat? Mit <span class=\"consoleOutput\">git rebase [Zielcommit\/-branch]<\/span> kann man den aktuell ausgecheckten Branch auf den Zielcommit bzw. Zielbranch \u201everschieben\u201c. Eventuell auftretende Konflikte muss man dann ebenso wie bei einem Merge l\u00f6sen.<br \/>\nN\u00fctzlich ist dies auch, wenn man beispielsweise vor einiger Zeit einen Feature-Branch vom Master-Branch abgezweigt hat und nun sein Feature-Branch auf den neusten Stand des Master-Branchs updaten will. Zum einen kann man so mit dem neusten Stand arbeiten, zum anderen treten eventuelle Konflikte schon beim Rebasen und nicht erst hinterher beim Mergen auf, was die Arbeit der Person erleichtert, die den Branch mergen muss.<\/p>\n<p><a href=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5399\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase.png\" alt=\"git rebase\" width=\"853\" height=\"308\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase.png 853w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase-300x108.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase-768x277.png 768w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase-100x36.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase-150x54.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase-200x72.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase-450x162.png 450w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/rebase-600x217.png 600w\" sizes=\"auto, (max-width: 853px) 100vw, 853px\" \/><\/a><\/p>\n<p>Auch hier wird es allerdings schwierig, wenn der Branch bereits gepusht wurde. Mit <span class=\"consoleOutput\">-\u200b-force<\/span> kann der Branch nach dem Rebase zwar gepusht werden, aber das ist problematisch f\u00fcr alle anderen Personen, die sich schon auf den Branch verlassen. Daher sollte man dies nur machen, wenn man sich bewusst ist, welche Konsequenzen dies hat.<br \/>\n<span class=\"consoleOutput\">git rebase -i [Zielcommit\/-branch]<\/span> kann au\u00dferdem dazu verwendet werden, die Commits des aktuellen Branches zu bearbeiten. Der Befehl \u00f6ffnet den f\u00fcr Git eingestellten Texteditor, listet die relevanten Commits auf und stellt eine Kurzzusammenfassung der M\u00f6glichkeiten dar. Unter anderem kann man hier die Commitnachrichten und Reihenfolge der Commits \u00e4ndern sowie Commits vereinen oder entfernen, wodurch es nat\u00fcrlich wieder zu schwerwiegenden \u00c4nderungen am Repository kommen kann. Allerdings ist es schwierig, hier unabsichtlich Commits zu entfernen.<\/p>\n<h1>5. Rettung durch reflog<\/h1>\n<p>Sollten Sie einen Fehler mit Git gemacht haben, kann Sie eventuell der Befehl <span class=\"consoleOutput\">git reflog<\/span> retten. Das reflog bzw. reference log enth\u00e4lt einige Informationen zu den zuvor ausgef\u00fchrten Befehlen und kann unter anderem auch dazu verwendet werden, einen fr\u00fcheren Stand auszuchecken und somit wiederherzustellen. Hierbei gilt es zu beachten, dass das reflog nur die \u00c4nderungen am lokalen Repository enth\u00e4lt und regelm\u00e4\u00dfig alte Eintr\u00e4ge gel\u00f6scht werden.<br \/>\nFolgendes Beispiel zeigt, wie man mit <span class=\"consoleOutput\">git reflog<\/span> einen gel\u00f6schten Branch wiederherstellen kann. Bitte nicht nachmachen, da im Beispiel der master-Branch gel\u00f6scht wird und dies nat\u00fcrlich zu schwerwiegenden \u00c4nderungen f\u00fchrt. <span class=\"consoleOutput\">git reflog<\/span> k\u00f6nnen Sie aber problemlos auch in Ihrem Repository ausf\u00fchren, da es lediglich Informationen anzeigt.<\/p>\n<pre lang=\"bash\">$ git branch -D master #Nicht ausf\u00fchren!\r\nDeleted branch master (was 8f6505f).\r\n\r\n$ git reflog\r\nb776db8 (HEAD -&gt;; feature_can) HEAD@{0}: commit: CAN: Fix init\r\ndb61c14 HEAD@{1}: commit: Add CAN Module\r\n80a3258 HEAD@{2}: checkout: moving from 80a3258 to feature_can\r\n80a3258 HEAD@{3}: checkout: moving from master to 80a3258\r\n8f6505f HEAD@{4}: commit: Add build instructions to readme\r\nd60b906 HEAD@{5}: commit: Add readme\r\n80a3258 HEAD@{6}: commit (initial): Create environment\r\n\r\n$ git checkout 8f6505f #Urspr\u00fcnglich master\r\n[...]\r\n\r\n$ git checkout -b master\r\nSwitched to a new branch 'master'\r\n<\/pre>\n<h1>6. Repository durchsuchen<\/h1>\n<p>Mit <span class=\"consoleOutput\">git grep<\/span> kann man in den Dateien des Repositorys (genauer: ab dem aktuellen Ordner in getrackten Dateien) nach einem bestimmten Text suchen. Beispielsweise werden nach Eingabe des Befehls <span class=\"consoleOutput\">git grep &#8218;enth\u00e4lt&#8216;<\/span> alle Vorkommnisse des Textes \u201eenth\u00e4lt\u201c angezeigt. Mit der Option <span class=\"consoleOutput\">-n<\/span> wird die Zeilennummer des Treffers ebenso dargestellt und mit <span class=\"consoleOutput\">-i<\/span> wird Gro\u00df- und Kleinschreibung ignoriert. Regex-Ausdr\u00fccke sind als Suchbegriffe ebenso erlaubt.<\/p>\n<p><a href=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/grep.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5398\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/grep.png\" alt=\"git grep\" width=\"696\" height=\"79\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/grep.png 696w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/grep-300x34.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/grep-100x11.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/grep-150x17.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/grep-200x23.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/grep-450x51.png 450w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/grep-600x68.png 600w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/a><\/p>\n<p>Haben Sie Fragen oder weitere Tipps? Lassen Sie es uns im Kommentarbereich wissen!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Git ist eines der essenziellsten Tools der Software-Entwicklung. Aufgrund seines enormen Funktionsumfangs gibt es jedoch auch einige Funktionen, die zwar sehr praktisch, aber nicht besonders bekannt sind. Einige n\u00fctzliche Funktionen sollen hier hervorgehoben werden. Damit Sie die Befehle beim Lesen problemlos testen k\u00f6nnen, wird explizit darauf hingewiesen, wenn Befehle schwerwiegende oder irreversible \u00c4nderungen an Ihrem [&hellip;]<\/p>\n","protected":false},"author":25,"featured_media":5421,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,8],"tags":[352,38,272,488],"class_list":["post-5362","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","category-tools","tag-git","tag-software","tag-software-entwicklung","tag-versionsverwaltung","post-wrapper","thrv_wrapper"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Grundlegende Git-Tipps zur effizienten Software-Entwicklung - MEDtech Ingenieur GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/medtech-ingenieur.de\/en\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Grundlegende Git-Tipps zur effizienten Software-Entwicklung - MEDtech Ingenieur GmbH\" \/>\n<meta property=\"og:description\" content=\"Git ist eines der essenziellsten Tools der Software-Entwicklung. Aufgrund seines enormen Funktionsumfangs gibt es jedoch auch einige Funktionen, die zwar sehr praktisch, aber nicht besonders bekannt sind. Einige n\u00fctzliche Funktionen sollen hier hervorgehoben werden. Damit Sie die Befehle beim Lesen problemlos testen k\u00f6nnen, wird explizit darauf hingewiesen, wenn Befehle schwerwiegende oder irreversible \u00c4nderungen an Ihrem [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/medtech-ingenieur.de\/en\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/\" \/>\n<meta property=\"og:site_name\" content=\"MEDtech Ingenieur GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/medtechIngenieur\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-30T10:05:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-06T13:32:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/icon.png\" \/>\n\t<meta property=\"og:image:width\" content=\"567\" \/>\n\t<meta property=\"og:image:height\" content=\"215\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Falke Stephan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MedtechIng\" \/>\n<meta name=\"twitter:site\" content=\"@MedtechIng\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Falke Stephan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/\"},\"author\":{\"name\":\"Falke Stephan\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/person\\\/7662ccc10a058bcb56a7887d14c97726\"},\"headline\":\"Grundlegende Git-Tipps zur effizienten Software-Entwicklung\",\"datePublished\":\"2021-04-30T10:05:44+00:00\",\"dateModified\":\"2021-08-06T13:32:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/\"},\"wordCount\":1128,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/icon.png\",\"keywords\":[\"GIT\",\"Software\",\"Software Entwicklung\",\"Versionsverwaltung\"],\"articleSection\":[\"Software\",\"Tools\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/\",\"name\":\"Grundlegende Git-Tipps zur effizienten Software-Entwicklung - MEDtech Ingenieur GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/icon.png\",\"datePublished\":\"2021-04-30T10:05:44+00:00\",\"dateModified\":\"2021-08-06T13:32:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/#primaryimage\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/icon.png\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/icon.png\",\"width\":567,\"height\":215},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Grundlegende Git-Tipps zur effizienten Software-Entwicklung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#website\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\",\"name\":\"MEDtech Ingenieur GmbH\",\"description\":\"Ingenieursdienstleister f\u00fcr Medizintechnik\",\"publisher\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\"},\"alternateName\":\"MEDtech\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/medtech-ingenieur.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\",\"name\":\"MEDtech Ingenieur\",\"alternateName\":\"MEDtech\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo-700x700-1.png\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo-700x700-1.png\",\"width\":700,\"height\":700,\"caption\":\"MEDtech Ingenieur\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/medtechIngenieur\",\"https:\\\/\\\/x.com\\\/MedtechIng\",\"https:\\\/\\\/www.instagram.com\\\/medtech.ingenieure\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/37871229\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/person\\\/7662ccc10a058bcb56a7887d14c97726\",\"name\":\"Falke Stephan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7393cdd5f8d6bcfd16c02dd5e7a7691516f8901753a4ac05907e45934ccf4167?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7393cdd5f8d6bcfd16c02dd5e7a7691516f8901753a4ac05907e45934ccf4167?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7393cdd5f8d6bcfd16c02dd5e7a7691516f8901753a4ac05907e45934ccf4167?s=96&d=mm&r=g\",\"caption\":\"Falke Stephan\"},\"description\":\"Falke Stephan arbeitet seit 2020 als Softwareentwickler bei MEDtech Ingenieur. Seine Aufgabengebiete umfassen unter anderem die Entwicklung von Medizinger\u00e4ten basierend auf Embedded Linux.\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/en\\\/author\\\/fstephan\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Grundlegende Git-Tipps zur effizienten Software-Entwicklung - MEDtech Ingenieur GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/medtech-ingenieur.de\/en\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/","og_locale":"en_US","og_type":"article","og_title":"Grundlegende Git-Tipps zur effizienten Software-Entwicklung - MEDtech Ingenieur GmbH","og_description":"Git ist eines der essenziellsten Tools der Software-Entwicklung. Aufgrund seines enormen Funktionsumfangs gibt es jedoch auch einige Funktionen, die zwar sehr praktisch, aber nicht besonders bekannt sind. Einige n\u00fctzliche Funktionen sollen hier hervorgehoben werden. Damit Sie die Befehle beim Lesen problemlos testen k\u00f6nnen, wird explizit darauf hingewiesen, wenn Befehle schwerwiegende oder irreversible \u00c4nderungen an Ihrem [&hellip;]","og_url":"https:\/\/medtech-ingenieur.de\/en\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/","og_site_name":"MEDtech Ingenieur GmbH","article_publisher":"https:\/\/www.facebook.com\/medtechIngenieur","article_published_time":"2021-04-30T10:05:44+00:00","article_modified_time":"2021-08-06T13:32:24+00:00","og_image":[{"width":567,"height":215,"url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/icon.png","type":"image\/png"}],"author":"Falke Stephan","twitter_card":"summary_large_image","twitter_creator":"@MedtechIng","twitter_site":"@MedtechIng","twitter_misc":{"Written by":"Falke Stephan","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/#article","isPartOf":{"@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/"},"author":{"name":"Falke Stephan","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/person\/7662ccc10a058bcb56a7887d14c97726"},"headline":"Grundlegende Git-Tipps zur effizienten Software-Entwicklung","datePublished":"2021-04-30T10:05:44+00:00","dateModified":"2021-08-06T13:32:24+00:00","mainEntityOfPage":{"@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/"},"wordCount":1128,"commentCount":0,"publisher":{"@id":"https:\/\/medtech-ingenieur.de\/#organization"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/#primaryimage"},"thumbnailUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/icon.png","keywords":["GIT","Software","Software Entwicklung","Versionsverwaltung"],"articleSection":["Software","Tools"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/","url":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/","name":"Grundlegende Git-Tipps zur effizienten Software-Entwicklung - MEDtech Ingenieur GmbH","isPartOf":{"@id":"https:\/\/medtech-ingenieur.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/#primaryimage"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/#primaryimage"},"thumbnailUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/icon.png","datePublished":"2021-04-30T10:05:44+00:00","dateModified":"2021-08-06T13:32:24+00:00","breadcrumb":{"@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/#primaryimage","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/icon.png","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2021\/04\/icon.png","width":567,"height":215},{"@type":"BreadcrumbList","@id":"https:\/\/medtech-ingenieur.de\/grundlegende-git-tipps-zur-effizienten-software-entwicklung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/medtech-ingenieur.de\/"},{"@type":"ListItem","position":2,"name":"Grundlegende Git-Tipps zur effizienten Software-Entwicklung"}]},{"@type":"WebSite","@id":"https:\/\/medtech-ingenieur.de\/#website","url":"https:\/\/medtech-ingenieur.de\/","name":"MEDtech Ingenieur GmbH","description":"Engineering service provider for medical technology","publisher":{"@id":"https:\/\/medtech-ingenieur.de\/#organization"},"alternateName":"MEDtech","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/medtech-ingenieur.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/medtech-ingenieur.de\/#organization","name":"MEDtech Engineer","alternateName":"MEDtech","url":"https:\/\/medtech-ingenieur.de\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/logo\/image\/","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/01\/logo-700x700-1.png","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/01\/logo-700x700-1.png","width":700,"height":700,"caption":"MEDtech Ingenieur"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/medtechIngenieur","https:\/\/x.com\/MedtechIng","https:\/\/www.instagram.com\/medtech.ingenieure\/","https:\/\/www.linkedin.com\/company\/37871229\/"]},{"@type":"Person","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/person\/7662ccc10a058bcb56a7887d14c97726","name":"Falke Stephan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7393cdd5f8d6bcfd16c02dd5e7a7691516f8901753a4ac05907e45934ccf4167?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7393cdd5f8d6bcfd16c02dd5e7a7691516f8901753a4ac05907e45934ccf4167?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7393cdd5f8d6bcfd16c02dd5e7a7691516f8901753a4ac05907e45934ccf4167?s=96&d=mm&r=g","caption":"Falke Stephan"},"description":"Falke Stephan has been working as a software developer at MEDtech Ingenieur since 2020. His responsibilities include the development of medical devices based on embedded Linux.","url":"https:\/\/medtech-ingenieur.de\/en\/author\/fstephan\/"}]}},"_links":{"self":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/5362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/comments?post=5362"}],"version-history":[{"count":59,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/5362\/revisions"}],"predecessor-version":[{"id":5781,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/5362\/revisions\/5781"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/media\/5421"}],"wp:attachment":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/media?parent=5362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/categories?post=5362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/tags?post=5362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}