versionsverwaltung mit git - ekkehardt.lima-city.de · geschichte namensherkunft “i’m an...
TRANSCRIPT
![Page 1: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/1.jpg)
Versionsverwaltung mit GitKurze Einführung am Beispiel von LATEX
E. Frank Sandig
![Page 2: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/2.jpg)
Versionsverwaltung mit Git
WORUM ES HEUTE GEHT
Motivation
Geschichte
Begri�e
Eigenscha�en
Beispiele
Sto� zum Lesen
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 1
![Page 3: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/3.jpg)
Motivation
MOTIVATION
Größere Projekte:
Verfolgen der Projektgeschichte
Zurücknehmen von Änderungen
verteiltes, kollaboratives Arbeiten am Projekt
e�iziente Verwaltung
unkomplizierte Verö�entlichung des �elltextes
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 2
![Page 4: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/4.jpg)
MOTIVATION
Größere Projekte:
Verfolgen der Projektgeschichte
Zurücknehmen von Änderungen
verteiltes, kollaboratives Arbeiten am Projekt
e�iziente Verwaltung
unkomplizierte Verö�entlichung des �elltextes
2015
-04-
10Motivation
Motivation
Mehr als drei Dateien und mehr als 1000 Worte.
![Page 5: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/5.jpg)
Geschichte
NAMENSHERKUNFT
“I’m an egotistical bastard, and I name all my projects a�ermyself. First ‘Linux’, now ‘Git’.”
Linus Torvalds
“The joke ‘I name all my projects for myself, first Linux,then git’ was just too good to pass up. But it is also short,easy-to-say, and type on a standard keyboard. Andreasonably unique and not any standard command, whichis unusual.”
Linus Torvalds
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 3
![Page 6: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/6.jpg)
Geschichte
ENTSTEHUNG2005 von Linus Torvalds gestartetAnlass: bis dahin für Linux (Kernel) verwendeteVersionsverwaltung BitKeeper bekam neue Lizenz, eswären Gebühren angefallenHauptentwickler heute: Junio HamanoAnforderungen:
1. verteilte Arbeitsweise, Abläufe ähnlich BitKeeper2. sehr hohe Sicherheit gegen unbeabsichtigte und
böswillige Verfälschung3. hohe E�izienz
Punkt 3 wurde nach Torvalds’ Ansicht vom bereitsbestehenden Projekt Monotone nicht erfüllt
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 4
![Page 7: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/7.jpg)
ENTSTEHUNG2005 von Linus Torvalds gestartetAnlass: bis dahin für Linux (Kernel) verwendeteVersionsverwaltung BitKeeper bekam neue Lizenz, eswären Gebühren angefallenHauptentwickler heute: Junio HamanoAnforderungen:
1. verteilte Arbeitsweise, Abläufe ähnlich BitKeeper2. sehr hohe Sicherheit gegen unbeabsichtigte und
böswillige Verfälschung3. hohe E�izienz
Punkt 3 wurde nach Torvalds’ Ansicht vom bereitsbestehenden Projekt Monotone nicht erfüllt20
15-0
4-10
Geschichte
Entstehung
Arten der E�izienz:
• e�iziente Befehle (wenig bewirkt viel)
• e�iziente Speicherung (geringer Overhead der Verwaltung);Commits, Branches, ...
• e�iziente interne Arbeitsweise (schnelle Ausführung)
![Page 8: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/8.jpg)
Geschichte
ALTERNATIVEN
verteilte Versionsverwaltung:MonotoneBitKeeperMercurialBazaarGNU arch
zentrale Versionsverwaltung:Apache Subversion (svn)
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 5
![Page 9: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/9.jpg)
ALTERNATIVEN
verteilte Versionsverwaltung:MonotoneBitKeeperMercurialBazaarGNU arch
zentrale Versionsverwaltung:Apache Subversion (svn)20
15-0
4-10
Geschichte
Alternativen
auch: lokale Versionsverwaltung, eher selten
![Page 10: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/10.jpg)
Geschichte
VERWENDUNG
zahlreiche Opensource-Projekte, z. B.:
Amarok, Android, BusyBox, CMake, Debian, DragonFlyBSD, Drupal, Eclipse, Erlang, Fedora, Git selbst, Gnome,Joomla, j�ery, JUnit, KDE, LibreO�ice, LilyPond,Linux-Kernel, Linux Mint, MediaWiki, node.js, OneLaptop per Child, OpenFOAM, Perl 5, Parrot und Rakudo(Perl 6), PHP, phpBB, Plone, PostgreSQL, Qt, Ruby onRails, Ruby, Samba, Scala, TaskJuggler, TYPO3, VLC mediaplayer, Wine, x264 und X.org uvm.
neu Nov. 2014: GNU Emacs, Google Go
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 6
![Page 11: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/11.jpg)
Begri�e
BEGRIFFE
TextdateiEine Datei, welche unformatierten Text im ASCII-Format (oderkompatibel), also eine direkt druckbare Zeichenfolge, enthält.Insbesondere existieren Zeilenumbrüche. Bei LATEX primär der �elltext,ferner auch .bib-Datenbanken, Hilfs- und Logdateien und ähnliches.Menschenlesbar.
BinärdateiMaschinenlesbare Datei. Benötigt zur Anzeige für den Menschen einenInterpreter (fertige PDF-Datei) oder ist selbst eine ausführbare Datei(.exe). Weiter gefasst alles, was kein reiner Text ist.
Beide Arten werden von Git unterschiedlich behandelt: → Commit.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 7
![Page 12: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/12.jpg)
Begri�e
BEGRIFFE IIRepository
Lager, Depot. Übertragen: Projektarchiv. Verwaltetes Verzeichniszur Speicherung und Beschreibung von digitalen Objekten, also z. B.Ordner mit Dateien + Verwaltungsinformationen hinter einerInfrastruktur. Der Speicherort kann lokal oder entfernt sein. Der Befehlgit init macht einen Ordner durch erstellen derVerwaltungsinformationen zum Repository.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 8
![Page 13: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/13.jpg)
Begri�e
BEGRIFFE IIIForkGabel. Übertragen: Abspaltung. Vollständige Kopie eines Projektes,welche unabhängig weiterentwickelt werden kann. Insbesonderemindestens ein vollständiges Repository mit untergliederten →Branches, welches die gesamte Projektgeschichte enthält. Der Forkkann dem ursprünglichen Projekt über → Pull Requests und/oder einen→ Upstream Branch verbunden bleiben. Forks sind im Rahmen verteiltentwickelter Projekte ein reguläres Arbeitsmi�el (Fork = Arbeitskopie).Linus Torvalds’ Betriebssystemkern Linux wurde auf GitHub über 7500Mal (01/2015) geforkt, in der Regel, um Änderungen zum Projektbeizutragen, nicht, um ein neues Projekt zu gründen.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 9
![Page 14: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/14.jpg)
Begri�e
BEGRIFFE IVBranchZweig. Jede verwaltete Ableitung des Arbeitsverzeichnisses isttechnisch ein Branch. In der Regel eine Abspaltung innerhalb desProjektes, z.B. zum Erstellen einer neuen Hauptversion oder zurgetrennten Entwicklung einer bestimmten Funktion. In großenLATEX-Projekten können einzelne Kapitel in getrennten Zweigenentwickelt werden. Zweige eines Projektes können verschmolzenwerden: → Merge.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 10
![Page 15: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/15.jpg)
Begri�e
BEGRIFFE VRemoteEntferntes Repository. Dies kann ein Remote Tracking Branch zurVerö�entlichung und Sicherung des �elltextes sein (lesen undschreiben) oder ein → Upstream Repository (nur lesen). Ein Remote istimmer auch ein Branch.
CommitBegehen, einprägen. Übertragen: Beitrag, Revision. Gesamtheitder gemeinsam übergebenen (und freigeschalteten) Änderungen einerArbeitsphase. Dazu zählen die zeilenweisen Änderungen derTextdateien und die vollständigen veränderten Binärdateien.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 11
![Page 16: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/16.jpg)
Begri�e
BEGRIFFE VIOrigin
Bezeichnet den primären Remote Tracking Branch eines Repositorys.
MasterAusgangszweig eines Projektes. Wird beim initialisieren automatischerstellt. Primärer Arbeitszweig.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 12
![Page 17: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/17.jpg)
Begri�e
BEGRIFFE VIIUpstream
Stromaufwärts. Übertragen: Sender/�elle. Ein Repository, aufwelches vom Arbeitsverzeichnis aus nur lesend zugegri�en wird.Änderungen können von Upstream direkt in Master verschmolzenwerden. Umgekehrt ist ein → Pull (Request) nötig. In der Regel wirdnach einem Fork das Ausgangsrepository als Upstream definiert.
FetchAbholen. Kopieren von Commits aus einem entfernten Repository(z. B. Upstream oder Origin) in den gleichnamigen Zweig des lokalenRepositorys. Beispiel: git fetch upstream
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 13
![Page 18: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/18.jpg)
Begri�e
BEGRIFFE VIIIPushSchieben. Senden von Commits aus einem Zweig des lokalenRepositorys in ein entferntes Repository. Beispiel: git pushorigin master
PullZiehen. Übernahme von Commits aus einem Fork in dasAusgangsprojekt durch den Besitzer des Ausgangsrepositorys.Verbunden mit einem → Merge.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 14
![Page 19: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/19.jpg)
Begri�e
BEGRIFFE IXPull Request
Zug-Anfrage. Anfrage eines Autors von Änderungen, diese aus dessenFork in das ursprüngliche Projekt zu übernehmen. Wird in der Regelüber das Webinterface des Git-Servers ausgelöst.
Di�Di�erenz. Zeilenweises Anzeigen von Unterschieden in Textdateiendes Projektes und Anzeige der geänderten Binärdateien. Der StilEntspricht dem Unix-Programm di�. Es ist die Anzeige bezüglicheinzelner Commits, einzelner Zweige, eines Stichdatums oder einesZeitraumes möglich.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 15
![Page 20: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/20.jpg)
Begri�e
BEGRIFFE XMerge
Verschmelzen. Übernahme sämtlicher Commits eines Zweiges ineinen anderen, wonach die Zweige synchron sind. Beispiel: gitmerge upstream/master
CloneKlonen. Erstellen einer vollständigen Kopie eines anderen Repositorys.Die �elle kann lokal oder entfernt sein, das Ziel ist standardmäßig einUnterordner im aktuellen Verzeichnis. Notwendig, um eine lokaleArbeitskopie eines geforkten Projekts zu erstellen. Die angegebene�elle wird automatisch als Origin definiert. Beispiel: git clonehtt-ps://[email protected]/Ekkehardt/linux.git
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 16
![Page 21: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/21.jpg)
Begri�e
BEGRIFFE XI
HashZeichenfolge fester Länge, welche aus Eingabedaten beliebiger Längeüber eine Hashfunktion berechnet wird. Kleine Änderungen an denEingabedaten bewirken große Änderungen im Hash. Dient zumNachweis der Integrität der Daten und zur Identifikation der einzelnenCommits. Entspricht folglich einer Prüfsumme und Revisionsnummer.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 17
![Page 22: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/22.jpg)
Eigenscha�en
EIGENSCHAFTEN
nicht-lineare EntwicklungErstellen und Verschmelzen von Entwicklungszweigen; e�izienteImplementierung der Zweige.
kein zentraler ServerJeder Entwickler besitzt eine Arbeitskopie mit der gesamtenProjektgeschichte. Alle Remotes und lokale Kopien sind technischgleich.
Datentransfer zwischen Repositorysfile://, git://, ssh://, h�p://, h�ps://, �p:// oder rsync://
Kryptographische Sicherheit der ProjektgeschichteDer Hash eines einzelnen Commits basiert auf der vollständigenGeschichte, die zu diesem Commit geführt hat; markieren undsignieren (GPG) einzelner Commits.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 18
![Page 23: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/23.jpg)
Eigenscha�en
EIGENSCHAFTEN II
Speichersystem und DateiversionierungEs erhält nicht jede Datei eine Revisionsnummer, wie bei CVS,sondern es werden Verweise ähnlich einem Dateisystemgespeichert. Ändert sich eine Datei nicht, ist kein erneutesSpeichern nötig.
Säubern des RepositorysDaten aller Commits und Zweige bleiben bis zum explizitenlöschen vorhanden, um Änderungen zurücknehmen zu können.
InteroperabilitätÜber Hilfsprogramme: Austausch mit GNU arch (git-archimport),CVS (git-cvsexportcommit, git-cvsimport und git-cvsserver), Darcs(darcs-fastconvert, darcs2git und andere), �ilt (git-quiltimport)und Subversion (git-svn).
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 19
![Page 24: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/24.jpg)
Eigenscha�en
EIGENSCHAFTEN III
Web-InterfaceGitweb, git-tf, GitHub, bitbucket, . . .
Läu� auf fast allen modernen unixartigen Systemen, wie Linux,Solaris, Mac OS X, FreeBSD, DragonFly BSD, NetBSD, OpenBSD,AIX, IRIX und Haiku.
Unter Microso� Windows mit dem Client von GitHub, mit Hilfeder Cygwin-Umgebung, mit Msysgit oder derTortoiseGit-Shell-Erweiterung anwendbar.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 20
![Page 25: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/25.jpg)
Eigenscha�en
AUFBAU EINES LOKALEN REPOSITORYS
Abb. 1: lokales Repository dieses Vortrages
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 21
![Page 26: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/26.jpg)
Eigenscha�en
AUFBAU EINES LOKALEN REPOSITORYS II
Abb. 2: die Datei .gitignore
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 22
![Page 27: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/27.jpg)
Eigenscha�en
AUFBAU EINES LOKALEN REPOSITORYS III
Abb. 3: die Datei README.md
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 23
![Page 28: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/28.jpg)
Beispiele
MIT LEEREM REMOTE-REPO BEGINNEN
- repo anlegen (Homepage)- in Ordner mit zu verwaltenden Daten wechseln
git initgit add -Agit commit -m "erster Commit"git remote add origin https://[email protected]/
User/repo.gitgit push -u origin master
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 24
![Page 29: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/29.jpg)
Beispiele
REMOTES LÖSCHEN
git remote remove originVersion 1.7.10 und vorher: git remote rm origin
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 25
![Page 30: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/30.jpg)
Beispiele
REMOTES UMZIEHEN
- neues Remote anlegen (Homepage)
git remote set-url origin https://new.url.heregit push -u origin master
- altes Remote löschen (Homepage)
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 26
![Page 31: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/31.jpg)
Beispiele
REPO KLONEN
- ggf. zuerst auf HP forken
git clone https://github.com/User/repo.git
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 27
![Page 32: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/32.jpg)
Beispiele
ÄNDERUNGEN ZURÜCKGEBEN
git add -Agit commit -m "Update message"git push origin master
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 28
![Page 33: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/33.jpg)
ÄNDERUNGEN ZURÜCKGEBEN
git add -Agit commit -m "Update message"git push origin master
2015
-04-
10Beispiele
Änderungen zurückgeben
Origin ist bereits definiert; evtl Pull-Request über Homepage
![Page 34: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/34.jpg)
Beispiele
ÄNDERUNGEN VOM UR-REPO HOLEN
git remote add upstream https://github.com/andererUser/ursrungsrepo.git
git fetch upstreamgit merge upstream/master
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 29
![Page 35: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/35.jpg)
Beispiele
MANUELL MERGEN
git mergetool
z. B. opendi�, kdi�3, tkdi�, xxdi�, meld, tortoisemerge, gvimdi�,di�use, di�merge, ecmerge, p4merge, araxis, bc3, codecompare,emerge, vimdi�
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 30
![Page 36: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/36.jpg)
Beispiele
ÄNDERUNGEN ANZEIGEN
Zustand des Repos:git status
grafisch:gitk
Liste aller Commits mit ihrem SHA1-Hash:git log
in einem bestimmten Commit:git diff "@{e1b9}"
seit gestern:git diff "@{yesterday}"
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 31
![Page 37: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/37.jpg)
Beispiele
ÄNDERUNGEN ANZEIGEN II
seit dem 2. Januar 1970:git diff "@{1970-01-02}"
zwischen irgendeiner Version und der vorvorletzten:git diff 1b6d "master~2"
alle Commits der letzten zwei Wochen:git whatchanged --since="2 weeks ago"
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 32
![Page 38: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/38.jpg)
Beispiele
ÄNDERUNGEN ANZEIGEN III
Abb. 4: Das Programm gitk
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 33
![Page 39: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/39.jpg)
ÄNDERUNGEN ANZEIGEN III
Abb. 4: Das Programm gitk
2015
-04-
10Beispiele
Änderungen Anzeigen III
gitk muss in der Regel nachträglich installiert werden
![Page 40: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/40.jpg)
Beispiele
ÄNDERUNGEN ANZEIGEN IV
Abb. 5: Ausgabe des Befehls git log
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 34
![Page 41: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/41.jpg)
Beispiele
ÄNDERUNGEN ANZEIGEN V
Abb. 6: Ausgabe des Befehls git diff "@{yesterday}"
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 35
![Page 42: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/42.jpg)
Beispiele
ÄNDERUNGEN ANZEIGEN VI
Abb. 7: Ausgabe des Befehls git whatchanged –since="2 weeks ago"
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 36
![Page 43: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/43.jpg)
Beispiele
ÄNDERUNGEN ANZEIGEN VII
Abb. 8: Die Oberfläche gitweb
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 37
![Page 44: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/44.jpg)
Beispiele
ÄNDERUNGEN RÜCKGÄNGIG MACHEN
unwiederbringlich zum angegebenen Stand zurückkehren:
git reset --hard 766f
angegebenen Commit rückgängig machen (als neuenCommit):
git revert 1b6d
letzten veröffentlichten Stand wiederherstellen:git fetch origingit merge origin/master
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 38
![Page 45: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/45.jpg)
Beispiele
REPO NEU PACKEN
git gc --auto
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 39
![Page 46: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/46.jpg)
Beispiele
DATEI AUS ALLEN COMMITS LÖSCHEN
git filter-branch --prune-empty --index-filter "gitrm --cached -f \--ignore-unmatch Dateiname.pdf
" -- --all
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 40
![Page 47: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/47.jpg)
DATEI AUS ALLEN COMMITS LÖSCHEN
git filter-branch --prune-empty --index-filter "gitrm --cached -f \--ignore-unmatch Dateiname.pdf
" -- --all
2015
-04-
10Beispiele
Datei aus allen Commits löschen
Nach git filter-branch muss das remote gelöscht und neu angelegt werden, danachein push. Sonst entstehen unlösbare Konflikte.
![Page 48: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/48.jpg)
Beispiele
ARBEITEN MIT ZWEIGEN
Zweige anzeigen:git branch
Zweig anlegen:git branch NAME
in Zweig wechseln:git checkout NAME
Anlegen und Wechseln gleichzeitig:git checkout -b NAME
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 41
![Page 49: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/49.jpg)
Beispiele
ARBEITEN MIT ZWEIGEN II
Zweige verschmelzen:git merge QUELLE/ZIEL
Zweige löschen:git branch -d NAME
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 42
![Page 50: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/50.jpg)
Sto� zum Lesen
WEITERE INFORMATIONEN
[1] URL: h�ps://www.atlassian.com/de/git/tutorial/git-basics.
[2] URL: h�p://git-scm.com/book/de.
[3] URL: h�p://git-scm.com/documentation.
[4] URL: h�p://rogerdudler.github.io/git-guide/index.de.html.
[5] URL:h�p://www-cs-students.stanford.edu/~blynn/gitmagic/intl/de.
[6] URL: h�p://mbork.pl/2014-10-18_Version_Control_Systems.
[7] URL: h�p://svij.org/blog/2014/10/25/git-fur-einsteiger-teil-1.
[8] URL: h�p://svij.org/blog/2014/11/01/git-fur-einsteiger-teil-2.
[9] URL: h�p://svij.org/blog/2015/01/05/was-ist-git/.
[10] URL: h�p://svij.org/blog/2015/01/12/git-fur-einsteiger-teil-3/.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 43
![Page 51: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/51.jpg)
Sto� zum Lesen
WEITERE INFORMATIONEN II
[11] URL: h�p://wiki.ubuntuusers.de/Git.
[12] URL: h�p://git-scm.com.
[13] URL: h�p://de.wikipedia.org/wiki/Git.
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 44
![Page 52: Versionsverwaltung mit Git - ekkehardt.lima-city.de · Geschichte NAMENSHERKUNFT “I’m an egotistical bastard, and I name all my projects a˝er myself. First ‘Linux’, now ‘Git’.”](https://reader030.vdocuments.net/reader030/viewer/2022041300/5e0ed747280a661338534751/html5/thumbnails/52.jpg)
Ende der Präsentation
VIELEN DANK! – NOCH FRAGEN?
schri�[email protected]�p://github.com/EkkehardtEkkehardt in #latex-de auf irc.freenode.net, aufh�p://texwelt.de und im Forum unterh�p://www.golatex.dePräsentation unter h�p://sandig-fg.de und in Kürzeunter h�p://www.suedraum.de/latex/stammtisch
TU Bergakademie Freiberg | LATEX-Stammtisch | E. Frank Sandig | Versionsverwaltung mit Git | Studentenclub Erdalchi-misten e. V. (EAC) Freiberg | 29.01.2015 45