25012012 Vorlesung Softwareentwicklung in der industriellen Praxis Technische Universität Dresden Fakultät Informatik
Einleitung
Einleitung Über den Vortragenden
Über den Vortragenden Communardo Software GmbH Anbieter von Softwarelösungen zur Optimierung der Kommunikation und Zusammenarbeit in Teams, Projekten und Unternehmen Software- und Beratungshaus für gesamten Realisierungszyklus
Über den Vortragenden Communardo Software GmbH
Über den Vortragenden Softwarearchitekt, IT-Consultant Debian Developer CAcertorg Infrastrukturadministrator Spezialgebiete: freie Software, Kryptografie,
Über den Vortragenden Softwarearchitekt, IT-Consultant Debian Developer CAcertorg Infrastrukturadministrator Spezialgebiete: freie Software, Kryptografie, verheiratet, 3 Kinder, eine Katze
Zentrale vs verteilte VCS Git speziell Erste Schritte mit Git
Zentrale vs verteilte VCS Zentral Verteilt ein zentrales Repository (evtl repliziert)
Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) Verteilt beliebig viele (gleichberechtigte) Klone
Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) Verteilt beliebig viele (gleichberechtigte) Klone lokale Working Copy (meist) ohne Historie
Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) lokale Working Copy (meist) ohne Historie Verteilt beliebig viele (gleichberechtigte) Klone (komplette) lokale Historie
Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) lokale Working Copy (meist) ohne Historie Verteilt beliebig viele (gleichberechtigte) Klone (komplette) lokale Historie viele Remote-Operationen
Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) lokale Working Copy (meist) ohne Historie viele Remote-Operationen Verteilt beliebig viele (gleichberechtigte) Klone (komplette) lokale Historie alles außer Repositoryabgleich ist lokal
Zentrale vs verteilte VCS Zentral Verteilt Austausch nur über zentrales Repository
Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Verteilt Austausch zwischen beliebigen Klonen möglich
Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Verteilt Austausch zwischen beliebigen Klonen möglich Netzwerk erforderlich
Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Netzwerk erforderlich Verteilt Austausch zwischen beliebigen Klonen möglich Netzwerk nur für Repositoryabgleich nötig
Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Netzwerk erforderlich Verteilt Austausch zwischen beliebigen Klonen möglich Netzwerk nur für Repositoryabgleich nötig (meist) starre vom Tool vorgegebene
Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Netzwerk erforderlich (meist) starre vom Tool vorgegebene Verteilt Austausch zwischen beliebigen Klonen möglich Netzwerk nur für Repositoryabgleich nötig beliebige (später mehr dazu)
Git speziell Warum Git und nicht? leichtgewichtige lokale Branches
Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell
Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index)
Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index) Speicherplatz- und Bandbreitensparsamkeit
Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index) Speicherplatz- und Bandbreitensparsamkeit Rebasing um lokale Änderungen zusammenzufassen
Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index) Speicherplatz- und Bandbreitensparsamkeit Rebasing um lokale Änderungen zusammenzufassen sehr umfangreiche Dokumentation, Bücher und Community [1]
Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index) Speicherplatz- und Bandbreitensparsamkeit Rebasing um lokale Änderungen zusammenzufassen sehr umfangreiche Dokumentation, Bücher und Community [1] http://dewhygitisbetterthanxcom/
Git speziell Unterschied zu den meisten anderen VCS Die meisten VCS speichern Änderungen zu einer Basisversion Bildquelle: http://progitorg [2]
Git speziell Unterschied zu den meisten anderen VCS Die meisten VCS speichern Änderungen zu einer Basisversion Git speichert Datenschnappschüsse und keine Deltas Bildquelle: http://progitorg [2]
Git speziell Objekte in Git Blob Dateiinhalte
Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees
Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees
Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees Tag Name für einen bestimmten Commit
Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees Tag Name für einen bestimmten Commit Branch Entwicklungszweig mit eigenem HEAD
Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees Tag Name für einen bestimmten Commit Branch Entwicklungszweig mit eigenem HEAD Blobs, Trees und Commits können eindeutig und fälschungssicher über SHA-1-Hash identifiziert werden
Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees Tag Name für einen bestimmten Commit Branch Entwicklungszweig mit eigenem HEAD Blobs, Trees und Commits können eindeutig und fälschungssicher über SHA-1-Hash identifiziert werden Tags und Branches sind Namen für Commit-Hashes
Git speziell Drei Bäume in Git HEAD letzter Commit, Parent des nächsten Commits
Git speziell Drei Bäume in Git HEAD letzter Commit, Parent des nächsten Commits Index Vorbereitung für nächsten Commit
Git speziell Drei Bäume in Git HEAD letzter Commit, Parent des nächsten Commits Index Vorbereitung für nächsten Commit Working Copy Arbeitsverzeichnis
Erste Schritte mit Git Git installieren Linux Debian/Ubuntu sudo a p t i t u d e i n s t a l l g i t a l l
Erste Schritte mit Git Git installieren Linux Debian/Ubuntu sudo a p t i t u d e i n s t a l l g i t a l l CentOS/RHEL (mit EPEL [3]) oder Fedora yum i n s t a l l g i t g i t k
Erste Schritte mit Git Git installieren Windows msysgit [4] oder git-paket für Cygwin [5] TortoiseGit [6] (benötigt msysgit)
Erste Schritte mit Git
Erste Schritte mit Git
Erste Schritte mit Git Bei Git bekanntmachen g i t c o n f i g g l o b a l u s e r name Jan D i t t b e r n e r g i t c o n f i g g l o b a l u s e r e m a i l ' j a n dittberner@communardo de
Erste Schritte mit Git Bei Git bekanntmachen g i t c o n f i g g l o b a l u s e r name Jan D i t t b e r n e r g i t c o n f i g g l o b a l u s e r e m a i l ' j a n dittberner@communardo de Aktuelles Verzeichnis zu Git-Repository machen g i t i n i t
Erste Schritte mit Git Datei in Index aufnehmen g i t add n e w f i l e t x t
Erste Schritte mit Git Datei in Index aufnehmen g i t add n e w f i l e t x t Änderungen (lokal) einchecken g i t commit
Erste Schritte mit Git Branch featurex erzeugen und HEAD auf Branch setzen g i t checkout b f e a t u r e X
Erste Schritte mit Git Branch featurex erzeugen und HEAD auf Branch setzen g i t checkout b f e a t u r e X Branch featurey in Working Copy auschecken g i t checkout f e a t u r e Y
Erste Schritte mit Git Branch featurex erzeugen und HEAD auf Branch setzen g i t checkout b f e a t u r e X Branch featurey in Working Copy auschecken g i t checkout f e a t u r e Y Branch erzeugen ohne Auschecken g i t branch f e a t u r e Z
Erste Schritte mit Git (Remote-)Repository klonen g i t c l o n e g i t o l i t e @ g i t s e r v e r : reponame
Erste Schritte mit Git (Remote-)Repository klonen g i t c l o n e g i t o l i t e @ g i t s e r v e r : reponame g i t c l o n e $HOME/ g i t r e p o s / p r o j e c t g i t
Erste Schritte mit Git (Remote-)Repository klonen g i t c l o n e g i t o l i t e @ g i t s e r v e r : reponame g i t c l o n e $HOME/ g i t r e p o s / p r o j e c t g i t g i t c l o n e g i t : / / g i t h u b com/ jandd / deform g i t Unterstützte Protokolle: ssh, git, http(s), ftp(s), rsync, file
Erste Schritte mit Git Änderungen aus Remote-Repository holen g i t f e t c h
Erste Schritte mit Git Änderungen aus Remote-Repository holen g i t g i t f e t c h inklusive Merge in Working Copy p u l l
Erste Schritte mit Git Änderungen aus Remote-Repository holen g i t g i t f e t c h inklusive Merge in Working Copy p u l l Änderungen in Remote-Repository übertragen g i t push
Erste Schritte mit Git Weiteres Remote-Repository hinzufügen g i t remote add k o l l e g e ' h t t p : / / c o l l e a g u e s m a c h i n e / repo g i t
Erste Schritte mit Git Weiteres Remote-Repository hinzufügen g i t remote add k o l l e g e ' h t t p : / / c o l l e a g u e s m a c h i n e / repo g i t das Standardrepository heißt origin
Erste Schritte mit Git Weiteres Remote-Repository hinzufügen g i t remote add k o l l e g e ' h t t p : / / c o l l e a g u e s m a c h i n e / repo g i t das Standardrepository heißt origin von Remote-Repository aktualisieren git fetch kollege
Erste Schritte mit Git History ansehen g i t l o g
Erste Schritte mit Git History ansehen g i t l o g Status der Working Copy und des Index g i t s t a t u s
Erste Schritte mit Git History ansehen g i t l o g Status der Working Copy und des Index g i t s t a t u s Unterschied zu Index g i t d i f f
Erste Schritte mit Git Änderungen aus Branch in aktuellen Branch mergen g i t merge f e a t u r e X
Erste Schritte mit Git Änderungen aus Branch in aktuellen Branch mergen g i t merge f e a t u r e X Hilfe zu <command> g i t h e l p <command>
Grundlegendes Repositorystrukturen Branch-
Grundlegendes Git schreibt nichts vor
Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7]
Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7] im Internet gibt es eine Reihe von guten Tipps
Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7] im Internet gibt es eine Reihe von guten Tipps Google: git workflows
Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7] im Internet gibt es eine Reihe von guten Tipps Google: git workflows Git bietet an vielen Stellen Möglichkeiten mit Hooks einzugreifen [8]
Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7] im Internet gibt es eine Reihe von guten Tipps Google: git workflows Git bietet an vielen Stellen Möglichkeiten mit Hooks einzugreifen [8] Tools wie Gerrit oder Gitolite helfen bei der Umsetzung von bzw Durchsetzung von Richtlinien
Grundlegendes Git Hooks clientseitig
Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit
Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit E-Mail-Workflow applypatch-msg, pre-applypatch, post-applypatch
Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit E-Mail-Workflow applypatch-msg, pre-applypatch, post-applypatch sonstige pre-rebase, post-checkout, post-merge
Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit E-Mail-Workflow applypatch-msg, pre-applypatch, post-applypatch sonstige pre-rebase, post-checkout, post-merge serverseitig
Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit E-Mail-Workflow applypatch-msg, pre-applypatch, post-applypatch sonstige pre-rebase, post-checkout, post-merge serverseitig Eingehende Push-Requests pre-receive, post-receive, update
Repositorystrukturen SVN-artig mit zentralem Repository
Repositorystrukturen dezentral mit Referenzrepository
Repositorystrukturen Integration-Manager
Repositorystrukturen Dictator and Lieutenants a a zb für Entwicklung des Linux-Kernels verwendet
Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master
Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches
Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches Rebase der Featurebranches auf master
Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches Rebase der Featurebranches auf master interaktives Rebase vor dem Merge
Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches Rebase der Featurebranches auf master interaktives Rebase vor dem Merge Merge des Featurebranches in Master
Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches Rebase der Featurebranches auf master interaktives Rebase vor dem Merge Merge des Featurebranches in Master Push in zentrales Repository
Feature for future release Bugfixes from rel branch may be continuously merged back into develop Incorporate bugfix in develop hotfixes Only bugfixes! 10 Start of release branch for Severe bug fixed for production: hotfix 02 release branches master Tag 10 Tag 02 Tag 01 Workflows Author: Vincent Driessen Original blog post: http://nviecom/archives/323 License: Creative Commons develop Branch-Workflows From this point on, next release means the release after 10 Major feature for next release feature branches Einleitung A successful Git Branching Model [10] Time
Branch- A successful Git Branching Model [10] master für Lieferstände
Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände
Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände release-* für Releasevorbereitung
Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände release-* für Releasevorbereitung hotfix-* für Hotfixes
Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände release-* für Releasevorbereitung hotfix-* für Hotfixes Featurebranches
Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände release-* für Releasevorbereitung hotfix-* für Hotfixes Featurebranches Unterstützung durch git-flow [9] (Debian-Paket: git-flow)
Branch- Einbeziehung von CI-Tools und/oder Code-Reviews http://sourceandroidcom/source/life-of-a-patchhtml
Hosting von Repositories Entwicklungstools Build-, Release- und Projektverwaltung
Hosting von Repositories Dateisystem, Fileshare
Hosting von Repositories Dateisystem, Fileshare eigener Server zb gitolite, ssh-server oder Apache mit WebDAV
Hosting von Repositories Dateisystem, Fileshare eigener Server zb gitolite, ssh-server oder Apache mit WebDAV spezialisierte Git-Hoster wie Gitorious [11] oder GitHub [12]
Hosting von Repositories Dateisystem, Fileshare eigener Server zb gitolite, ssh-server oder Apache mit WebDAV spezialisierte Git-Hoster wie Gitorious [11] oder GitHub [12] Entwicklungsplattformen wie BitBucket [13], SourceForge [14] oder Google Code [15]
Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit
Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit IntelliJ IDEA inklusive
Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit IntelliJ IDEA inklusive Netbeans inklusive ab Netbeans 70
Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit IntelliJ IDEA inklusive Netbeans inklusive ab Netbeans 70 GNU Emacs Basisupport inklusive ab 221, erweiterte Unterstützung mit Zusatzmodulen, Mode für Commit-Messages
Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit IntelliJ IDEA inklusive Netbeans inklusive ab Netbeans 70 GNU Emacs Basisupport inklusive ab 221, erweiterte Unterstützung mit Zusatzmodulen, Mode für Commit-Messages VIM diverse Wrapper, Syntax-Highlighting für Commit-Messages
Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit,
Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit, grafische History-Viewer gitk, gitg, gitx,
Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit, grafische History-Viewer gitk, gitg, gitx, Commit-/Merge-Tools git-gui
Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit, grafische History-Viewer gitk, gitg, gitx, Commit-/Merge-Tools git-gui TortoiseGit, SmartGit
Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit, grafische History-Viewer gitk, gitg, gitx, Commit-/Merge-Tools git-gui TortoiseGit, SmartGit meld, diffuse, TortoiseMerge,
Build-, Release- und Projektverwaltung Maven SCM-Provider http://mavenapacheorg/scm/githtml <project xmlns= http: //maven apache org /POM/400 > <scm> <connection>scm: git: http: // projectserver /repo git</ connection> <developerconnection>scm: git: ssh: // projectserver / git /repo git</ developerconnection> <url>http: // projectserver /gitweb /?p=repo git</ url> </scm> </ p r o j e c t>
Build-, Release- und Projektverwaltung Maven SCM-Provider http://mavenapacheorg/scm/githtml <project xmlns= http: //maven apache org /POM/400 > <scm> <connection>scm: git: http: // projectserver /repo git</ connection> <developerconnection>scm: git: ssh: // projectserver / git /repo git</ developerconnection> <url>http: // projectserver /gitweb /?p=repo git</ url> </scm> </ p r o j e c t> Ant über Macros ḥttp://tlrobinsonnet/blog/2008/11/13/ant-tasks-for-git/
Build-, Release- und Projektverwaltung Continuous Integration Jenkins CI/ Hudson CI
Build-, Release- und Projektverwaltung Continuous Integration Jenkins CI/ Hudson CI Cruise Control
Build-, Release- und Projektverwaltung Continuous Integration Jenkins CI/ Hudson CI Cruise Control Buildbot
Build-, Release- und Projektverwaltung Continuous Integration Jenkins CI/ Hudson CI Cruise Control Buildbot Code-Reviews Gerrit [16]
Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin)
Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin) Trac (mit Plugin)
Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin) Trac (mit Plugin) Bugzilla (mit GitZilla)
Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin) Trac (mit Plugin) Bugzilla (mit GitZilla) Mantis (ab 12)
Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin) Trac (mit Plugin) Bugzilla (mit GitZilla) Mantis (ab 12) Redmine
Git als Subversion-Frontend Umstieg auf Git
Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar
Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden
Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden sanfter Einstieg in DVCS
Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden sanfter Einstieg in DVCS Nachteile gegenüber nativem Git eingeschränkte (lokale)
Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden sanfter Einstieg in DVCS Nachteile gegenüber nativem Git eingeschränkte (lokale) langsame Remote-Repository-Aktionen
Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden sanfter Einstieg in DVCS Nachteile gegenüber nativem Git eingeschränkte (lokale) langsame Remote-Repository-Aktionen lokale Branches werden im SVN nicht als solche getrackt
Git als Subversion-Frontend SVN-Repository als lokales Git-Repository g i t svn c l o n e s A ~/ svn a u t h o r s t x t ' h t t p s : / / svn company org / p r o j e c t r e p o kann bei großen Repositories sehr lange dauern
Git als Subversion-Frontend SVN-Repository als lokales Git-Repository g i t svn c l o n e s A ~/ svn a u t h o r s t x t ' h t t p s : / / svn company org / p r o j e c t r e p o kann bei großen Repositories sehr lange dauern lokale Git-Commits in SVN-Repository g i t svn dcommit
Git als Subversion-Frontend SVN-Repository als lokales Git-Repository g i t svn c l o n e s A ~/ svn a u t h o r s t x t ' h t t p s : / / svn company org / p r o j e c t r e p o kann bei großen Repositories sehr lange dauern lokale Git-Commits in SVN-Repository g i t svn dcommit neue SVN-Revisions abholen g i t svn f e t c h
Umstieg auf Git vorher prüfen ob alle verwendeten Tools Git unterstützen
Umstieg auf Git vorher prüfen ob alle verwendeten Tools Git unterstützen SVN-Git-Clone mit vollständiger Autoren-Datei
Umstieg auf Git vorher prüfen ob alle verwendeten Tools Git unterstützen SVN-Git-Clone mit vollständiger Autoren-Datei Aufbereitung für Git-Spezialitäten (Tags sind keine Kopien, svn:ignore zu gitignore, )
Umstieg auf Git vorher prüfen ob alle verwendeten Tools Git unterstützen SVN-Git-Clone mit vollständiger Autoren-Datei Aufbereitung für Git-Spezialitäten (Tags sind keine Kopien, svn:ignore zu gitignore, ) gute Anleitung unter http://johnalbinnet/git/convert-subversion-to-git
weiter interessante Anwendungsfälle für Git Verteiltes Bugtracking
weiter interessante Anwendungsfälle für Git Verteiltes Bugtracking Verwaltung von Metadaten zu großen Dateien
weiter interessante Anwendungsfälle für Git Verteiltes Bugtracking Verwaltung von Metadaten zu großen Dateien Wikis https://gitwikikernelorg/indexphp/ InterfacesFrontendsAndTools
Anhang Anhang Gegenüberstellung Subversion- zu Git-Kommandos Kontakt
Anhang Gegenüberstellung Subversion- zu Git-Kommandos svn info git config -l svn status git status svn update git pull svn add git add - git commit svn commit git push svn diff git diff svn merge git merge svn copy git branch bzw git tag - git stash svn merge -c <rev> git cherry-pick
Anhang Kontakt Kontakt Communardo Software GmbH E-Mail: jandittberner@communardode http://wwwcommunardode/home/ techblog/author/jdi
Anhang Referenzen [1] Git project website url: http://wwwgit-scmcom/ [2] Scott Chacon Pro Git Apress, 2009 isbn: 1430218339 url: http://progitorg/book/ [3] Fedora Extra Packages for Enterprise Linux url: http://fedoraprojectorg/wiki/epel [4] msysgit Git for Windows url: http://codegooglecom/p/msysgit/ [5] Cygwin url: http://wwwcygwincom/ [6] TortoiseGit url: http://codegooglecom/p/tortoisegit/ [7] Git Manual gitworkflows (7)
Anhang Referenzen [8] Git Manual githooks (5) [9] Vincent Driessen gitflow url: https://githubcom/nvie/gitflow [10] Vincent Driessen A successful Git branching model 2010 url: http://nviecom/posts/a-successful-gitbranching-model/ [11] Gitorious url: http://gitoriousorg/ [12] Githubcom url: https://githubcom/ [13] BitBucket url: https://bitbucketorg/ [14] SourceForge url: http://wwwsourceforgenet/ [15] Google Code url: http://codegooglecom/
Anhang Referenzen [16] Gerrit Code Review url: http://codegooglecom/p/gerrit/