{"product_id":"git-fur-dummies-9783527716975","title":"Git für Dummies","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eGit hat sich als Quellcodeverwaltung durchgesetzt und ist der De-facto-Standard in der Softwareentwicklung. Alle Unternehmen, die noch nicht auf Git sind, werden die nächsten Jahre wechseln. Und nicht nur die Entwicklung - auch Administration, Sicherheit und Dokumentation finden zunehmend auf Git statt. Git ist damit heute das wichtigste Werkzeug für alle digitalen Produkte - quasi die Werkbank. Wenn Sie wissen wollen, wie Sie Git richtig implementieren und welche Regeln Sie für die Zusammenarbeit aufstellen sollten, dann sind Sie hier richtig. Dieses Buch ist eine Einführung in das effektive Arbeiten mit Git - geeignet sowohl für Berufseinsteiger als auch für erfahrene Entwickler, die zu Git wechseln.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eÜber den Autor 13\u003c\/p\u003e \u003cp\u003e\u003cb\u003eEinleitung\u003c\/b\u003e \u003cb\u003e27\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eÜber dieses Buch 27\u003c\/p\u003e \u003cp\u003eKonventionen in diesem Buch 27\u003c\/p\u003e \u003cp\u003eFachbegriffe 28\u003c\/p\u003e \u003cp\u003eWarum Kommandozeile? 28\u003c\/p\u003e \u003cp\u003eDer Name für den Haupt-Branch 28\u003c\/p\u003e \u003cp\u003eWas Sie nicht lesen müssen 29\u003c\/p\u003e \u003cp\u003eTörichte Annahmen über die Leser 29\u003c\/p\u003e \u003cp\u003eWie dieses Buch aufgebaut ist 30\u003c\/p\u003e \u003cp\u003eTeil I: Grundlagen 30\u003c\/p\u003e \u003cp\u003eTeil II: Zusammenarbeit 30\u003c\/p\u003e \u003cp\u003eTeil III: Vertiefung 30\u003c\/p\u003e \u003cp\u003eTeil: IV: Der Top-Ten-Teil 30\u003c\/p\u003e \u003cp\u003eSymbole, die in diesem Buch verwendet werden 30\u003c\/p\u003e \u003cp\u003eWie es weitergeht 31\u003c\/p\u003e \u003cp\u003e\u003cb\u003eTeil I: Grundlagen 33\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 1 Was ist Git?\u003c\/b\u003e \u003cb\u003e35\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eVersionsverwaltung – zentral oder verteilt? 36\u003c\/p\u003e \u003cp\u003eDie Geschichte von Git 37\u003c\/p\u003e \u003cp\u003eWas bedeutet der Name »Git«? 38\u003c\/p\u003e \u003cp\u003eLizenz und Betriebssysteme 39\u003c\/p\u003e \u003cp\u003eAusblick 39\u003c\/p\u003e \u003cp\u003eKurz und knackig 39\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 2 Der Einstieg auf Windows 41\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDie Installation von Git auf Windows 41\u003c\/p\u003e \u003cp\u003eDie richtige Kommandozeile 51\u003c\/p\u003e \u003cp\u003eTerminal: Cmder 52\u003c\/p\u003e \u003cp\u003eCmd vs PowerShell 52\u003c\/p\u003e \u003cp\u003eWindows-Subsystem für Linux (WSL) 54\u003c\/p\u003e \u003cp\u003eDas Windows-Terminal 55\u003c\/p\u003e \u003cp\u003eDer richtige Editor 56\u003c\/p\u003e \u003cp\u003eDie Konfiguration von Git 58\u003c\/p\u003e \u003cp\u003eAuthentifizierung 59\u003c\/p\u003e \u003cp\u003eKurz und knackig 62\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 3 Der Einstieg auf macOS und Linux\u003c\/b\u003e \u003cb\u003e63\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDer Einstieg auf macOS 63\u003c\/p\u003e \u003cp\u003eDer Einstieg auf Linux 64\u003c\/p\u003e \u003cp\u003eKonfiguration 64\u003c\/p\u003e \u003cp\u003eAuthentifizierung 66\u003c\/p\u003e \u003cp\u003eArbeiten mit dem Terminal 69\u003c\/p\u003e \u003cp\u003eRichtig mit dem Terminal umgehen 70\u003c\/p\u003e \u003cp\u003eDie richtige Konsole finden 71\u003c\/p\u003e \u003cp\u003eAufgehübscht: Oh-My-Zsh und Powerlevel10k 71\u003c\/p\u003e \u003cp\u003eKurz und knackig 76\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 4 Hinzufügen, ändern, branchen und mergen\u003c\/b\u003e \u003cb\u003e77\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDas lokale Repository 78\u003c\/p\u003e \u003cp\u003eDas Remote-Repository 79\u003c\/p\u003e \u003cp\u003eÄnderungen dem Repository hinzufügen 80\u003c\/p\u003e \u003cp\u003eDie lokale Entwicklungsumgebung aktualisieren 81\u003c\/p\u003e \u003cp\u003eSchritt für Schritt: Änderungen der Versionsverwaltung hinzufügen 81\u003c\/p\u003e \u003cp\u003eNeue Dateien hinzufügen 82\u003c\/p\u003e \u003cp\u003eÄnderungen durchführen 85\u003c\/p\u003e \u003cp\u003eArbeiten mit Verzweigungen (Branches) 87\u003c\/p\u003e \u003cp\u003eEinen Branch erstellen 88\u003c\/p\u003e \u003cp\u003eAuf einen anderen Branch wechseln 89\u003c\/p\u003e \u003cp\u003eArbeiten mit Upstream-Branches 90\u003c\/p\u003e \u003cp\u003eÄnderungen zusammenführen 92\u003c\/p\u003e \u003cp\u003eDer Fast-Forward-Merge 92\u003c\/p\u003e \u003cp\u003eDer Merge-Commit 94\u003c\/p\u003e \u003cp\u003eKonflikte lösen 95\u003c\/p\u003e \u003cp\u003eSchritt für Schritt: Branchen und Mergen 96\u003c\/p\u003e \u003cp\u003eKurz und knackig 97\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 5 Weitere Werkzeuge\u003c\/b\u003e \u003cb\u003e99\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eVisual Studio Code 99\u003c\/p\u003e \u003cp\u003eUnterstützung im Working Directory 99\u003c\/p\u003e \u003cp\u003eArbeiten mit Branches und Tags 100\u003c\/p\u003e \u003cp\u003eUnterstützung für Remote-Repositories 100\u003c\/p\u003e \u003cp\u003eStatusbar und Editor 100\u003c\/p\u003e \u003cp\u003eVisual-Studio-Code-Erweiterungen 101\u003c\/p\u003e \u003cp\u003eBenutzeroberflächen für Git 106\u003c\/p\u003e \u003cp\u003eSourcetree 106\u003c\/p\u003e \u003cp\u003eGitKraken 108\u003c\/p\u003e \u003cp\u003eGitHub Desktop 109\u003c\/p\u003e \u003cp\u003eGit-GUI 111\u003c\/p\u003e \u003cp\u003eGitHub für unterwegs 115\u003c\/p\u003e \u003cp\u003eVisual Studio, Eclipse, IntelliJ und Co. 117\u003c\/p\u003e \u003cp\u003eTools mit Windows-Explorer-Integration 118\u003c\/p\u003e \u003cp\u003eTortoiseGit 118\u003c\/p\u003e \u003cp\u003eGit-Extensions 121\u003c\/p\u003e \u003cp\u003eDiff- und Merge-Tools 122\u003c\/p\u003e \u003cp\u003eKurz und knackig 125\u003c\/p\u003e \u003cp\u003e\u003cb\u003eTeil II: Zusammenarbeit 127\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 6 Git-Dienste\u003c\/b\u003e \u003cb\u003e129\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGitHub 130\u003c\/p\u003e \u003cp\u003eEinstieg 130\u003c\/p\u003e \u003cp\u003eGitHub-Organisationen 134\u003c\/p\u003e \u003cp\u003eEin Repository anlegen 136\u003c\/p\u003e \u003cp\u003ePreise 140\u003c\/p\u003e \u003cp\u003eHosting 140\u003c\/p\u003e \u003cp\u003eBewertung 140\u003c\/p\u003e \u003cp\u003eAzure Repos 141\u003c\/p\u003e \u003cp\u003eEinstieg 141\u003c\/p\u003e \u003cp\u003eAzure-DevOps-Organisationen 142\u003c\/p\u003e \u003cp\u003eEin Projekt erstellen 143\u003c\/p\u003e \u003cp\u003eEin Repository erstellen 144\u003c\/p\u003e \u003cp\u003ePreise 146\u003c\/p\u003e \u003cp\u003eHosting 146\u003c\/p\u003e \u003cp\u003eBewertung 146\u003c\/p\u003e \u003cp\u003eGitLab 147\u003c\/p\u003e \u003cp\u003eEinstieg 147\u003c\/p\u003e \u003cp\u003eHosting und Preise 150\u003c\/p\u003e \u003cp\u003eBewertung 151\u003c\/p\u003e \u003cp\u003eBitbucket 151\u003c\/p\u003e \u003cp\u003eEinstieg 151\u003c\/p\u003e \u003cp\u003eHosting und Preise 155\u003c\/p\u003e \u003cp\u003eBewertung 155\u003c\/p\u003e \u003cp\u003eKurz und knackig 156\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 7 Guidelines bei der Einführung von Git\u003c\/b\u003e \u003cb\u003e157\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDas richtige Maß an Governance 157\u003c\/p\u003e \u003cp\u003eEine minimale Governance-Richtlinie 158\u003c\/p\u003e \u003cp\u003eDie Wahl des passenden Git-Systems 158\u003c\/p\u003e \u003cp\u003eDer minimale Git-Workflow 159\u003c\/p\u003e \u003cp\u003eNamenskonventionen 159\u003c\/p\u003e \u003cp\u003eMinimale Review-Guidelines 159\u003c\/p\u003e \u003cp\u003eWeitere Ergänzungen für Pull-Requests 160\u003c\/p\u003e \u003cp\u003eEmpfehlungen für Teams 160\u003c\/p\u003e \u003cp\u003eAnzahl und Struktur der Repositories 161\u003c\/p\u003e \u003cp\u003eReview-Guidelines 162\u003c\/p\u003e \u003cp\u003eRelease-Branching 163\u003c\/p\u003e \u003cp\u003eUmgang mit komplexen Features 163\u003c\/p\u003e \u003cp\u003eCommit-Messages und Pull-Requests 164\u003c\/p\u003e \u003cp\u003eMerge-Strategien 164\u003c\/p\u003e \u003cp\u003eTraining 165\u003c\/p\u003e \u003cp\u003eKurz und knackig 165\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 8 Git-Workflows 167\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWas sind Git-Workflows? 167\u003c\/p\u003e \u003cp\u003eTrunk-Based-Development 168\u003c\/p\u003e \u003cp\u003eGitHub-Flow 170\u003c\/p\u003e \u003cp\u003eRelease-Flow 173\u003c\/p\u003e \u003cp\u003eGit-Flow 175\u003c\/p\u003e \u003cp\u003eDie Haupt-Branches in Git-Flow 175\u003c\/p\u003e \u003cp\u003eFeature-Branches im Git-Flow 176\u003c\/p\u003e \u003cp\u003eRelease-Branches 177\u003c\/p\u003e \u003cp\u003eHotfix-Branches 178\u003c\/p\u003e \u003cp\u003eZusammenfassung 179\u003c\/p\u003e \u003cp\u003eDen richtigen Workflow finden 180\u003c\/p\u003e \u003cp\u003eKurz und knackig 181\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 9 Teamwork mit Git\u003c\/b\u003e \u003cb\u003e183\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWatch, Stars und Forks 183\u003c\/p\u003e \u003cp\u003eWas ist ein Fork? 185\u003c\/p\u003e \u003cp\u003eCode-Reviews mit Pull-Requests 192\u003c\/p\u003e \u003cp\u003eBranch-Protection 199\u003c\/p\u003e \u003cp\u003eAutomatisierung 202\u003c\/p\u003e \u003cp\u003eCode-Owners 204\u003c\/p\u003e \u003cp\u003eDer Umgang mit Commits und Messages 205\u003c\/p\u003e \u003cp\u003eDer Pull-Request-Lebenszyklus 208\u003c\/p\u003e \u003cp\u003eKurz und knackig 209\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 10 Weniger Komplexität durch Feature-Flags\u003c\/b\u003e \u003cb\u003e211\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWas sind Feature-Flags? 211\u003c\/p\u003e \u003cp\u003eDer Feature-Lebenszyklus 213\u003c\/p\u003e \u003cp\u003eWeitere Einsatzmöglichkeiten von Feature-Flags 215\u003c\/p\u003e \u003cp\u003eWo fängt man an? 216\u003c\/p\u003e \u003cp\u003eFrameworks 217\u003c\/p\u003e \u003cp\u003eLaunchDarkly 218\u003c\/p\u003e \u003cp\u003eFeature-Flags und technische Schulden 219\u003c\/p\u003e \u003cp\u003eKurz und knackig 221\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 11 Kontinuierlich bauen und ausliefern\u003c\/b\u003e \u003cb\u003e223\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWas ist CI und CD? 223\u003c\/p\u003e \u003cp\u003eBuild-Infrastruktur 225\u003c\/p\u003e \u003cp\u003eKontinuierliche Qualität 225\u003c\/p\u003e \u003cp\u003eTests und Code-Coverage 226\u003c\/p\u003e \u003cp\u003eCode-Analyse und Quality-Gates 228\u003c\/p\u003e \u003cp\u003eAutomatisierte Deployments 229\u003c\/p\u003e \u003cp\u003eInfrastruktur als Code 229\u003c\/p\u003e \u003cp\u003eApp-Stores, Registries und Paketmanager 230\u003c\/p\u003e \u003cp\u003eDie Bedeutung von Containern 232\u003c\/p\u003e \u003cp\u003eAzure Pipelines 234\u003c\/p\u003e \u003cp\u003eIhre erste Pipeline 234\u003c\/p\u003e \u003cp\u003eTechnische Schulden meistern 242\u003c\/p\u003e \u003cp\u003eGitHub Actions 249\u003c\/p\u003e \u003cp\u003eIhr erster Workflow 249\u003c\/p\u003e \u003cp\u003eIhre erste GitHub-Action 251\u003c\/p\u003e \u003cp\u003eWeitere CI\/CD-Plattformen 254\u003c\/p\u003e \u003cp\u003eKurz und knackig 254\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 12 Open-Source-Projekte\u003c\/b\u003e \u003cb\u003e255\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGeschichte 256\u003c\/p\u003e \u003cp\u003eOpen Source versus Open Development 256\u003c\/p\u003e \u003cp\u003eOpen Source und Sicherheit 257\u003c\/p\u003e \u003cp\u003eIhr erstes Open-Source-Projekt 261\u003c\/p\u003e \u003cp\u003eWann ist der richtige Zeitpunkt? 262\u003c\/p\u003e \u003cp\u003eIst es die richtige Lösung? 262\u003c\/p\u003e \u003cp\u003eName und Branding 262\u003c\/p\u003e \u003cp\u003eOpen-Source-Checkliste 263\u003c\/p\u003e \u003cp\u003eStandardisierung und Automatisierung 264\u003c\/p\u003e \u003cp\u003eEine Community aufbauen 264\u003c\/p\u003e \u003cp\u003eGeld verdienen mit Open Source 265\u003c\/p\u003e \u003cp\u003eKurz und knackig 266\u003c\/p\u003e \u003cp\u003e\u003cb\u003eTeil III: Vertiefung 269\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 13 Unter der Haube 271\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWarum ist Git so schwierig? 271\u003c\/p\u003e \u003cp\u003eDer gerichtete azyklische Graph 272\u003c\/p\u003e \u003cp\u003eDer Hash oder SHA-1 273\u003c\/p\u003e \u003cp\u003eDie Anatomie eines Commits 274\u003c\/p\u003e \u003cp\u003eWas ist denn nun eigentlich Git? 284\u003c\/p\u003e \u003cp\u003eWarum ist Git so einfach? 285\u003c\/p\u003e \u003cp\u003eKurz und knackig 285\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 14 Zeitreisen mit Git 287\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGeschichte ist Geschichte 287\u003c\/p\u003e \u003cp\u003eFreie Wahl der Arbeitsweise 289\u003c\/p\u003e \u003cp\u003eÄnderungen rückgängig machen 289\u003c\/p\u003e \u003cp\u003eÄnderungen mit Revert transparent zurücknehmen 289\u003c\/p\u003e \u003cp\u003eCommits nachbessern mit Amend 291\u003c\/p\u003e \u003cp\u003eZeitreisen mit Reset 291\u003c\/p\u003e \u003cp\u003eNavigieren in der Zeit 296\u003c\/p\u003e \u003cp\u003eZeitlinien manipulieren 300\u003c\/p\u003e \u003cp\u003eZurück in die Zukunft mit Rebase 300\u003c\/p\u003e \u003cp\u003eÄnderungen bündeln mit Squash 302\u003c\/p\u003e \u003cp\u003eRosinen herauspicken 304\u003c\/p\u003e \u003cp\u003eDie Vergangenheit interaktiv manipulieren 304\u003c\/p\u003e \u003cp\u003eDie Vergangenheit mit Filter-Branch manipulieren 308\u003c\/p\u003e \u003cp\u003eManipulierte Zeitlinien mit Force-Push übertragen 310\u003c\/p\u003e \u003cp\u003eFragen Sie nicht, wozu Git fähig ist 310\u003c\/p\u003e \u003cp\u003eKurz und knackig 311\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 15 Mehr zum Branching und Merging\u003c\/b\u003e \u003cb\u003e313\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBranches und Tags 313\u003c\/p\u003e \u003cp\u003eVorspulen mit Fast-Forward 316\u003c\/p\u003e \u003cp\u003eEin echter Merge 317\u003c\/p\u003e \u003cp\u003eEin Octopus-Merge 317\u003c\/p\u003e \u003cp\u003eKonflikte automatisch lösen 319\u003c\/p\u003e \u003cp\u003eKonflikte manuell lösen 320\u003c\/p\u003e \u003cp\u003eMerge-Strategien 323\u003c\/p\u003e \u003cp\u003eRecursive 323\u003c\/p\u003e \u003cp\u003eResolve 324\u003c\/p\u003e \u003cp\u003eOctopus 325\u003c\/p\u003e \u003cp\u003eOurs 325\u003c\/p\u003e \u003cp\u003eSubtree 325\u003c\/p\u003e \u003cp\u003eDaten vom Remote laden mit »git pull« 325\u003c\/p\u003e \u003cp\u003eKurz und knackig 326\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 16 Commits und Tags signieren\u003c\/b\u003e \u003cb\u003e329\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWarum sollte man Commits signieren? 330\u003c\/p\u003e \u003cp\u003eWas ist GPG? 333\u003c\/p\u003e \u003cp\u003eInstallation und Konfiguration 333\u003c\/p\u003e \u003cp\u003eInstallation auf dem Mac 333\u003c\/p\u003e \u003cp\u003eInstallation auf Windows 334\u003c\/p\u003e \u003cp\u003eInstallation auf Linux 334\u003c\/p\u003e \u003cp\u003eEin Schlüsselpaar generieren 334\u003c\/p\u003e \u003cp\u003eWeitere E-Mail-Adressen konfigurieren 337\u003c\/p\u003e \u003cp\u003eDie Konfiguration von Git 337\u003c\/p\u003e \u003cp\u003eKonfiguration von GitHub 338\u003c\/p\u003e \u003cp\u003eVisual Studio Code konfigurieren 338\u003c\/p\u003e \u003cp\u003eDer erste signierte Commit 339\u003c\/p\u003e \u003cp\u003eKurz und knackig 340\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 17 Git-Submodule\u003c\/b\u003e \u003cb\u003e341\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSubmodule in Git-Repository einbinden 341\u003c\/p\u003e \u003cp\u003eSubmodule klonen 343\u003c\/p\u003e \u003cp\u003eSubmodule aktualisieren 344\u003c\/p\u003e \u003cp\u003eIn Submodulen arbeiten 345\u003c\/p\u003e \u003cp\u003eKurz und knackig 347\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 18 Große Dateien und große Repositories\u003c\/b\u003e \u003cb\u003e349\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGit-LFS 349\u003c\/p\u003e \u003cp\u003eWann sollen Sie Git-LFS verwenden? 349\u003c\/p\u003e \u003cp\u003eInstallation von Git-LFS 350\u003c\/p\u003e \u003cp\u003eGit-LFS verwenden 350\u003c\/p\u003e \u003cp\u003eGroße Dateien sperren 351\u003c\/p\u003e \u003cp\u003eNachteile 351\u003c\/p\u003e \u003cp\u003eGroße Repositories 352\u003c\/p\u003e \u003cp\u003eVFS for Git 352\u003c\/p\u003e \u003cp\u003eScalar 352\u003c\/p\u003e \u003cp\u003eKurz und knackig 354\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 19 Git an Ihre Bedürfnisse anpassen\u003c\/b\u003e \u003cb\u003e355\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDateien ignorieren 355\u003c\/p\u003e \u003cp\u003eArbeiten mit unterschiedlichen Dateitypen 357\u003c\/p\u003e \u003cp\u003eBinärdateien 357\u003c\/p\u003e \u003cp\u003eBestimmte Dateitypen versionieren 357\u003c\/p\u003e \u003cp\u003eInhalte vor dem Ein- oder Auschecken filtern oder bearbeiten 358\u003c\/p\u003e \u003cp\u003eFormatierung von Dateien 361\u003c\/p\u003e \u003cp\u003eDer richtige Umgang mit Zeilenenden 361\u003c\/p\u003e \u003cp\u003eEncoding 362\u003c\/p\u003e \u003cp\u003eLeerzeichen, Tabs und Spaces 362\u003c\/p\u003e \u003cp\u003eKurz und knackig 364\u003c\/p\u003e \u003cp\u003e\u003cb\u003eTeil IV: Der Top-Ten-Teil 365\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 20 Zehn Tipps zum Einstieg in Git\u003c\/b\u003e \u003cb\u003e367\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLernen und verwenden Sie Git auf der Konsole 367\u003c\/p\u003e \u003cp\u003eDer richtige Git-Prompt 367\u003c\/p\u003e \u003cp\u003eRichten Sie sich eine Wohlfühlkonsole ein 368\u003c\/p\u003e \u003cp\u003eLernen Sie die Shortcuts für Ihr Terminal 368\u003c\/p\u003e \u003cp\u003eLernen Sie einen Editor 368\u003c\/p\u003e \u003cp\u003eLernen Sie die Shortcuts für den Editor 368\u003c\/p\u003e \u003cp\u003eÜben Sie in der Git-School 368\u003c\/p\u003e \u003cp\u003eErstellen Sie ein Konto auf GitHub 368\u003c\/p\u003e \u003cp\u003eVerwenden Sie einen schlanken Workflow 369\u003c\/p\u003e \u003cp\u003eArbeiten Sie mit Pull-Requests 369\u003c\/p\u003e \u003cp\u003eKurz und knackig 369\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 21 Zehn Tipps zur Erhöhung der Effizienz\u003c\/b\u003e \u003cb\u003e371\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eArbeiten mit Aliasen in Git 371\u003c\/p\u003e \u003cp\u003eBesser Vergleichen mit »diff-so-fancy« 374\u003c\/p\u003e \u003cp\u003eAutomatisieren mit Git-Hooks 376\u003c\/p\u003e \u003cp\u003eClientseitige Hooks 376\u003c\/p\u003e \u003cp\u003eServerseitige Hooks 377\u003c\/p\u003e \u003cp\u003eBessere Commit-Messages mit Commit-Templates 378\u003c\/p\u003e \u003cp\u003eEinzelne Commits testen 379\u003c\/p\u003e \u003cp\u003eBesser Versionieren mit Git-Version 379\u003c\/p\u003e \u003cp\u003eMerges aufzeichnen mit rerere 381\u003c\/p\u003e \u003cp\u003eAutokorrektur von Kommandos 383\u003c\/p\u003e \u003cp\u003eArbeit zwischenspeichern mit Stash 384\u003c\/p\u003e \u003cp\u003eKurz und knackig 385\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 22 Zehn Dinge, die Sie nicht tun sollten\u003c\/b\u003e \u003cb\u003e387\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDirekt auf dem Haupt-Branch arbeiten 387\u003c\/p\u003e \u003cp\u003eMit langlebigen Branches arbeiten 387\u003c\/p\u003e \u003cp\u003ePasswörter und andere Secrets in Git speichern 388\u003c\/p\u003e \u003cp\u003eNicht oft genug committen 388\u003c\/p\u003e \u003cp\u003eGit nicht als Versionsverwaltung nutzen 388\u003c\/p\u003e \u003cp\u003eGroße Dateien speichern 388\u003c\/p\u003e \u003cp\u003eEinen Pull-Request für viele Änderungen verwenden 389\u003c\/p\u003e \u003cp\u003eEinen Reset durchführen, ohne vorher zu speichern 389\u003c\/p\u003e \u003cp\u003eDie veröffentlichte Historie modifizieren 389\u003c\/p\u003e \u003cp\u003eEinen Force-Push durchführen 389\u003c\/p\u003e \u003cp\u003eKurz und knackig 390\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 23 Zehn Git-Befehle, die Sie kennen sollten\u003c\/b\u003e \u003cb\u003e391\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBugs finden mit git bisect 391\u003c\/p\u003e \u003cp\u003eDateien umbenennen mit git mv und git rm 393\u003c\/p\u003e \u003cp\u003eIn Git suchen mit git grep und git log 394\u003c\/p\u003e \u003cp\u003eDen Schuldigen finden mit git blame 397\u003c\/p\u003e \u003cp\u003eAufräumen mit git clean 398\u003c\/p\u003e \u003cp\u003eEinen Brach wechseln mit git switch 398\u003c\/p\u003e \u003cp\u003eArbeiten mit Patches: git add ––patch und git apply 399\u003c\/p\u003e \u003cp\u003eKurz und knackig 403\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKapitel 24 Zehn Git-Befehle, die Ihnen bei Problemen helfen 405\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMagische Zeitmaschine 405\u003c\/p\u003e \u003cp\u003eVergessen, Änderungen hinzuzufügen 406\u003c\/p\u003e \u003cp\u003eCommit-Message nachträglich ändern 406\u003c\/p\u003e \u003cp\u003eAus Versehen auf den Haupt-Branch committed 406\u003c\/p\u003e \u003cp\u003eCommit auf falschen Branch 407\u003c\/p\u003e \u003cp\u003eDiff zeigt nichts an 407\u003c\/p\u003e \u003cp\u003eÄlteren Commit rückgängig machen 407\u003c\/p\u003e \u003cp\u003eÄnderungen an einer Datei rückgängig machen 408\u003c\/p\u003e \u003cp\u003eVon Neuem beginnen (a) 408\u003c\/p\u003e \u003cp\u003eVon Neuem beginnen (b) 409\u003c\/p\u003e \u003cp\u003eKurz und knackig 409\u003c\/p\u003e \u003cp\u003eStichwortverzeichnis 413\u003c\/p\u003e","brand":"Wiley-VCH Verlag GmbH","offers":[{"title":"Default Title","offer_id":49419472273751,"sku":"9783527716975","price":999.99,"currency_code":"GBP","in_stock":false}],"url":"https:\/\/bookcurl.com\/products\/git-fur-dummies-9783527716975","provider":"Book Curl","version":"1.0","type":"link"}