SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
  Szenario: Programmier Projekt mit
mehreren Beteiligten wird bearbeitet.Alle
sollen
◦  die aktuelleVersion des Programms haben
◦  über Neuerungen informiert werden
BestesVorgehen?
  Gemeinsame Arbeit
am Rechner ?
  Verteilen per Mail
oder USB Stick ?
  Unübersichtlich
◦  Durcheinander vonVersionen
◦  ÄltereVersionen gehen verloren
◦  Dokumentation geht verloren
  Nur eine aktuellsteVersion
◦  Gleichzeitiges Bearbeiten eines Teilstücks
schwierig
◦  Erhöhte Komplexität, wenn mehrere
Personen an verschiedenen Files arbeiten
  Daten Lokal gespeichert
◦  Datenverlust auf dem Rechner bedeutet auch
Verlust des Programms
  Versionierung
◦  Alle altenVersionen vorhanden
◦  Änderungen sichtbar/kommentiert
  Parallele Entwicklung wird unterstützt
◦  Branching/Merging
  Zentrale Ablage
◦  Für alle erreichbar
◦  Absturz des eigenen Rechners verkraftbar
  Entstehung 2005
  Entwickelt von Linus Torvalds
  Opensource Alternative zu damals verfügbarer
Software
  Einsatz: Entwicklung des Linux Kernels
  Github
  Atlassian
  Community
git config --global user.name “John Smith“
git config --global user.email john@example.com
git config --global alias.<alias-name> <git-command>
git config --system core.editor <editor>
git config --global --list
cd good-project
git init
git add --all
git commit –m “good first comment“
git remote add origin <somePage>
git push origin master
git clone <Repo>
git pull
# Some Work
git status
git diff
git add .
git commit –m “Important
Things“
git push
  git zurücksetzen
◦  rm –r .git
  Alle lokalen Änderungen verwerfen
◦  git reset --hard
◦  git clean -f
  Letzten commit rückgängig machen
◦  git revert HEAD
  Letzte Änderung an einem File rückgängig
machen
◦  git checkout <theFile>
  Commit nachträglich bearbeiten
◦  git add <someFile>
◦  git commit –amend
  File nicht mehr
tracken
◦  .gitignore file
◦  git rm --cached “...“
  Branch erstellen
◦  git branch <myBranch>
  Branch löschen
◦  git branch –d <myBranch>
  Zu Branch wechseln
◦  git checkout <myBranch>
  Branches anzeigen
◦  git branch
  branches are just pointers to commits
◦  When you create a branch, all Git needs to do is
create a new pointer—it doesn’t change the
repository in any other way.
◦  This has a dramatic impact on Git's merging
model.
  Whereas merges in SVN are done on a
file-basis, Git lets you work on the more
abstract level of commits.
  You can actually see merges in the project
history as a joining of two independent
commit histories.
# Start a new feature
git checkout -b new-feature master
# Edit some files
git add <file>
git commit -m "Start a feature“
# Edit some files
git add <file>
git commit -m "Finish a feature“
# Merge in the new-feature branch
git checkout master
git merge new-feature
git branch -d new-feature
# Start a new feature
git checkout -b new-feature master
# Edit some files
git add <file>
git commit -m "Start a feature“
# Edit some files
git add <file>
git commit -m "Finish a feature“
# Develop the master branch
git checkout master
# Edit some files
git add <file>
git commit -m "Make some super-stable
changes to master“
# Merge in the new-feature branch
git merge new-feature
git branch -d new-feature
  Studenten Account auf Github:
◦  https://education.github.com
  git Tutorials
◦  http://try.github.io
◦  https://guides.github.com
◦  https://www.atlassian.com/git
  git Docu
◦  http://git-scm.com/documentation
  git Sourcecode
◦  git clone https://github.com/git/git
Version management mit Git und Github

Weitere ähnliche Inhalte

Was ist angesagt?

Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesTobias Schneck
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantChristoph Möller
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easyinovex GmbH
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...inovex GmbH
 
6. Treffen der .NET User Group Paderborn
6. Treffen der .NET User Group Paderborn6. Treffen der .NET User Group Paderborn
6. Treffen der .NET User Group PaderbornMark Lechtermann
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenNicholas Dille
 
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployDevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployMark Lechtermann
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15m1no
 
5. Treffen der .NET User Group Paderborn
5. Treffen der .NET User Group Paderborn5. Treffen der .NET User Group Paderborn
5. Treffen der .NET User Group PaderbornMark Lechtermann
 
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easydocker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easyinovex GmbH
 
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerAlternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerOPITZ CONSULTING Deutschland
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmenoose
 
Projekt Web Hooks 04
Projekt  Web Hooks 04Projekt  Web Hooks 04
Projekt Web Hooks 04guest081f80d
 
Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)
Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)
Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)Torben Knerr
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsChristian Erhardt
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische EinführungMarcel Eichner
 

Was ist angesagt? (20)

Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easy
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
 
Slides
SlidesSlides
Slides
 
6. Treffen der .NET User Group Paderborn
6. Treffen der .NET User Group Paderborn6. Treffen der .NET User Group Paderborn
6. Treffen der .NET User Group Paderborn
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
 
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployDevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
 
5. Treffen der .NET User Group Paderborn
5. Treffen der .NET User Group Paderborn5. Treffen der .NET User Group Paderborn
5. Treffen der .NET User Group Paderborn
 
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easydocker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
 
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerAlternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
Gitlab
GitlabGitlab
Gitlab
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmen
 
Projekt Web Hooks 04
Projekt  Web Hooks 04Projekt  Web Hooks 04
Projekt Web Hooks 04
 
Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)
Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)
Automatisierte Entwickler VMs -- "works on my machine" zählt nicht mehr ;-)
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code Reviews
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
 

Ähnlich wie Version management mit Git und Github

Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Michael Whittaker
 
Versionierung mit GIT
Versionierung mit GITVersionierung mit GIT
Versionierung mit GITgedoplan
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...Marc Müller
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?inovex GmbH
 
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...Marc Müller
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungMario Müller
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVPeter Kraume
 
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM.org
 
Git class german / english
Git class german / englishGit class german / english
Git class german / englishKevin Read
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudAndreas Günzel
 
DWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersDWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersMarc Müller
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradleadesso AG
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Thorsten Kamann
 
Dnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionDnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionOliver Busse
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und GerritStefan Lay
 

Ähnlich wie Version management mit Git und Github (20)

Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
 
Versionierung mit GIT
Versionierung mit GITVersionierung mit GIT
Versionierung mit GIT
 
Git
GitGit
Git
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende Einführung
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEV
 
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
 
Git class german / english
Git class german / englishGit class german / english
Git class german / english
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
 
DWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersDWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS Entwicklers
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Mercurial
MercurialMercurial
Mercurial
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradle
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
Git im team
Git im teamGit im team
Git im team
 
Dnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionDnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsession
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
 

Mehr von fg.informatik Universität Basel

JavaScript packt aus: "Alle haben mich falsch verstanden!"
JavaScript packt aus: "Alle haben mich falsch verstanden!"JavaScript packt aus: "Alle haben mich falsch verstanden!"
JavaScript packt aus: "Alle haben mich falsch verstanden!"fg.informatik Universität Basel
 

Mehr von fg.informatik Universität Basel (17)

fg.workshop: Software vulnerability
fg.workshop: Software vulnerabilityfg.workshop: Software vulnerability
fg.workshop: Software vulnerability
 
fg.workshop: Opensource licenses
fg.workshop: Opensource licensesfg.workshop: Opensource licenses
fg.workshop: Opensource licenses
 
Drahtlose Kommunikation und SDR
Drahtlose Kommunikation und SDR Drahtlose Kommunikation und SDR
Drahtlose Kommunikation und SDR
 
OpenCL Grundlagen
OpenCL GrundlagenOpenCL Grundlagen
OpenCL Grundlagen
 
Website-Security
Website-SecurityWebsite-Security
Website-Security
 
Hardware-Basteleien für Informatiker
Hardware-Basteleien für InformatikerHardware-Basteleien für Informatiker
Hardware-Basteleien für Informatiker
 
Emergent gameplay
Emergent gameplayEmergent gameplay
Emergent gameplay
 
JavaScript packt aus: "Alle haben mich falsch verstanden!"
JavaScript packt aus: "Alle haben mich falsch verstanden!"JavaScript packt aus: "Alle haben mich falsch verstanden!"
JavaScript packt aus: "Alle haben mich falsch verstanden!"
 
Game Design Dokumentation und Projekt Management
Game Design Dokumentation und Projekt Management Game Design Dokumentation und Projekt Management
Game Design Dokumentation und Projekt Management
 
Hydraulische Erosion und Terraingeneration (GPGPU)
Hydraulische Erosion und Terraingeneration (GPGPU)Hydraulische Erosion und Terraingeneration (GPGPU)
Hydraulische Erosion und Terraingeneration (GPGPU)
 
Ruby, Ruby, Ruby!
Ruby, Ruby, Ruby!Ruby, Ruby, Ruby!
Ruby, Ruby, Ruby!
 
CS108 Bootcamp Eyeballs
CS108 Bootcamp EyeballsCS108 Bootcamp Eyeballs
CS108 Bootcamp Eyeballs
 
CS108 Bootcamp Einführung YASY
CS108 Bootcamp Einführung YASYCS108 Bootcamp Einführung YASY
CS108 Bootcamp Einführung YASY
 
CS108 Bootcamp 2011 Intro - Jarwars
CS108 Bootcamp 2011 Intro - JarwarsCS108 Bootcamp 2011 Intro - Jarwars
CS108 Bootcamp 2011 Intro - Jarwars
 
NumericOS - How to build your own Operatingsystem
NumericOS - How to build your own OperatingsystemNumericOS - How to build your own Operatingsystem
NumericOS - How to build your own Operatingsystem
 
DLL-Injection
DLL-InjectionDLL-Injection
DLL-Injection
 
Open source hardware
Open source hardwareOpen source hardware
Open source hardware
 

Version management mit Git und Github

  • 1.
  • 2.   Szenario: Programmier Projekt mit mehreren Beteiligten wird bearbeitet.Alle sollen ◦  die aktuelleVersion des Programms haben ◦  über Neuerungen informiert werden BestesVorgehen?
  • 3.   Gemeinsame Arbeit am Rechner ?   Verteilen per Mail oder USB Stick ?
  • 4.   Unübersichtlich ◦  Durcheinander vonVersionen ◦  ÄltereVersionen gehen verloren ◦  Dokumentation geht verloren
  • 5.   Nur eine aktuellsteVersion ◦  Gleichzeitiges Bearbeiten eines Teilstücks schwierig ◦  Erhöhte Komplexität, wenn mehrere Personen an verschiedenen Files arbeiten
  • 6.   Daten Lokal gespeichert ◦  Datenverlust auf dem Rechner bedeutet auch Verlust des Programms
  • 7.
  • 8.   Versionierung ◦  Alle altenVersionen vorhanden ◦  Änderungen sichtbar/kommentiert   Parallele Entwicklung wird unterstützt ◦  Branching/Merging   Zentrale Ablage ◦  Für alle erreichbar ◦  Absturz des eigenen Rechners verkraftbar
  • 9.   Entstehung 2005   Entwickelt von Linus Torvalds   Opensource Alternative zu damals verfügbarer Software   Einsatz: Entwicklung des Linux Kernels
  • 10.
  • 12.
  • 13. git config --global user.name “John Smith“ git config --global user.email john@example.com git config --global alias.<alias-name> <git-command> git config --system core.editor <editor> git config --global --list
  • 14. cd good-project git init git add --all git commit –m “good first comment“ git remote add origin <somePage> git push origin master
  • 16. git pull # Some Work git status git diff git add . git commit –m “Important Things“ git push
  • 17.   git zurücksetzen ◦  rm –r .git   Alle lokalen Änderungen verwerfen ◦  git reset --hard ◦  git clean -f
  • 18.   Letzten commit rückgängig machen ◦  git revert HEAD   Letzte Änderung an einem File rückgängig machen ◦  git checkout <theFile>   Commit nachträglich bearbeiten ◦  git add <someFile> ◦  git commit –amend
  • 19.   File nicht mehr tracken ◦  .gitignore file ◦  git rm --cached “...“
  • 20.   Branch erstellen ◦  git branch <myBranch>   Branch löschen ◦  git branch –d <myBranch>   Zu Branch wechseln ◦  git checkout <myBranch>   Branches anzeigen ◦  git branch
  • 21.   branches are just pointers to commits ◦  When you create a branch, all Git needs to do is create a new pointer—it doesn’t change the repository in any other way. ◦  This has a dramatic impact on Git's merging model.
  • 22.   Whereas merges in SVN are done on a file-basis, Git lets you work on the more abstract level of commits.   You can actually see merges in the project history as a joining of two independent commit histories.
  • 23. # Start a new feature git checkout -b new-feature master # Edit some files git add <file> git commit -m "Start a feature“ # Edit some files git add <file> git commit -m "Finish a feature“ # Merge in the new-feature branch git checkout master git merge new-feature git branch -d new-feature
  • 24. # Start a new feature git checkout -b new-feature master # Edit some files git add <file> git commit -m "Start a feature“ # Edit some files git add <file> git commit -m "Finish a feature“
  • 25. # Develop the master branch git checkout master # Edit some files git add <file> git commit -m "Make some super-stable changes to master“ # Merge in the new-feature branch git merge new-feature git branch -d new-feature
  • 26.   Studenten Account auf Github: ◦  https://education.github.com   git Tutorials ◦  http://try.github.io ◦  https://guides.github.com ◦  https://www.atlassian.com/git   git Docu ◦  http://git-scm.com/documentation   git Sourcecode ◦  git clone https://github.com/git/git