SlideShare ist ein Scribd-Unternehmen logo
Mit Git beginnen
Alexander Groß
agross@therightstuff.de
@agross
Vom 21. – 23.10.2011 findet zum vierten Mal der
.NET Open Space in Leipzig statt
Anmeldung: netopenspace.de
Heute
 grundlegende Operationen verstehen
 Arbeit mit Servern/im Team
 Git Workflow
 Cool Stuff
Delta Storage
Snapshot Storage
http://www.flickr.com/photos/saschaaa/152502539/
http://www.flickr.com/photos/mklingo/717372511/
$ git log
commit ad9a291416165bb95a541321a7acf9cef9731c1d
Author: Alexander Groß <agross@therightstuff.de>
Date: Thu Sep 9 15:18:55 2011 +0200
hello, nrwonf
Installation
Cygwin
msysGit
GitExtensions
TortoiseGit
C:DontPanic
/c/DontPanic
$ git <verb>
$ git help <verb>
$ git <verb> --help
Git Basics
Repository erzeugen
$ git init
Initialized empty Git repository in
/scratch/.git/
Repository herunterladen
$ git clone git://github.com/machine/
machine.specifications.git
Änderungen einchecken
Checking…
$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files
and use "git add" to track)
Working…
$ touch hello_nrwconf.txt
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be
committed)
#
# hello_nrwconf.txt
nothing added to commit but untracked files present (use
"git add" to track)
Dateien unter Source Control bringen
$ git add --all
oder:
$ git add hello_nrwconf.txt
Dateien unter Source Control bringen
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to
# unstage)
#
# new file: hello_nrwconf.txt
Commit erzeugen
$ git commit –m “hello, nrwconf”
[master (root-commit) ea4bdca] hello, nrwconf
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 hello, nrwconf.txt
.gitignore
/Source/*/obj
/Source/*/bin
_ReSharper.*
*.user
*.suo
beinhaltet Dateien und Verzeichnisse die nicht
unter Source Control kommen
Protokoll
git log
gitk –all &
git log --oneline
git log -10
git log -1 --patch
Arbeiten mit Remotes
Clone
$ git clone git@github.com:machine/
machine.specifications.git
Cloning into machine.specifications...
remote: Counting objects: 10409, done.
remote: Compressing objects: 100% (2986/2986), done.
remote: Total 10409 (delta 7402), reused 10090
Receiving objects: 100% (10409/10409), 108.96 MiB.
Resolving deltas: 100% (7402/7402), done.
$ cd machine.specifications
$ git remote
origin
Remote-Operationen
$ git fetch origin
$ git push origin master
$ git pull origin master *
http://www.flickr.com/photos/sethponek/1581346753
Git Server
 Windows File Share
git clone //server/repository.git
 SSH-Server mit Public Key-Authentifizierung
und granularen Benutzerberechtigungen
http://bit.ly/oZbhtt
git clone git@server:repository.git
http://www.flickr.com/photos/wyrmworld/4837749008
Ein Commit
Mehrere Commits
Branches
Branch erzeugen
$ git branch testing
$ git checkout -b testing
Der HEAD
Branch wechseln
$ git checkout testing
Änderung committen
$ git commit -m „work on testing“
Zurückwecheln
$ git checkout master
Eine weitere Änderung
$ git commit –m „work on master“
Divergente Commits
Ein Merge
$ git checkout master
$ git merge experiment
Rebase
$ git checkout experiment
$ git rebase master
Fast-forward merge
$ git checkout master
$ git merge experiment
Regeln
http://www.flickr.com/photos/smolianitski/4818714313/
http://www.flickr.com/photos/lisaconnolly/27339281
 git cherry-pick
 git commit --amend
 git rebase --interactive
 git stash
 git {add|reset|rm|log|…} --patch
 git reflog
 git bisect
gitflow
Link
therightstuff.de/download/git.zip
Versionskontrolle mit Git

Weitere ähnliche Inhalte

Was ist angesagt?

Présentation de git
Présentation de gitPrésentation de git
Présentation de git
Julien Blin
 
Git slides
Git slidesGit slides
Git slides
Nanyak S
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With Git
Nick Quaranto
 
Git real slides
Git real slidesGit real slides
Git real slides
Lucas Couto
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
Roland Emmanuel Salunga
 
Git 101 Presentation
Git 101 PresentationGit 101 Presentation
Git 101 Presentation
Scott Chacon
 
git and github
git and githubgit and github
git and github
Darren Oakley
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
Riadh MNASRI
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow Introduction
David Paluy
 
Git rebase
Git rebaseGit rebase
Git rebase
SitaPrajapati
 
Learning git
Learning gitLearning git
Learning git
Sid Anand
 
Github basics
Github basicsGithub basics
Github basics
Radoslav Georgiev
 
Git
GitGit
Git & GitHub WorkShop
Git & GitHub WorkShopGit & GitHub WorkShop
Git & GitHub WorkShop
SheilaJimenezMorejon
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
Safique Ahmed Faruque
 
Grokking opensource with github
Grokking opensource with githubGrokking opensource with github
Grokking opensource with github
GoogleDeveloperStude4
 
git, 이해부터 활용까지
git, 이해부터 활용까지git, 이해부터 활용까지
git, 이해부터 활용까지
jylee1229
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
Yoad Snapir
 
Advanced Git
Advanced GitAdvanced Git
Advanced Git
Sergiu-Ioan Ungur
 
Git training v10
Git training v10Git training v10
Git training v10
Skander Hamza
 

Was ist angesagt? (20)

Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Git slides
Git slidesGit slides
Git slides
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With Git
 
Git real slides
Git real slidesGit real slides
Git real slides
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Git 101 Presentation
Git 101 PresentationGit 101 Presentation
Git 101 Presentation
 
git and github
git and githubgit and github
git and github
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow Introduction
 
Git rebase
Git rebaseGit rebase
Git rebase
 
Learning git
Learning gitLearning git
Learning git
 
Github basics
Github basicsGithub basics
Github basics
 
Git
GitGit
Git
 
Git & GitHub WorkShop
Git & GitHub WorkShopGit & GitHub WorkShop
Git & GitHub WorkShop
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
 
Grokking opensource with github
Grokking opensource with githubGrokking opensource with github
Grokking opensource with github
 
git, 이해부터 활용까지
git, 이해부터 활용까지git, 이해부터 활용까지
git, 이해부터 활용까지
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
Advanced Git
Advanced GitAdvanced Git
Advanced Git
 
Git training v10
Git training v10Git training v10
Git training v10
 

Ähnlich wie Versionskontrolle mit Git

Git
GitGit
Git im team
Git im teamGit im team
Git im team
Nicole Cordes
 
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
Andreas Günzel
 
JAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzenJAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzen
Jan Stamer
 
Childthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNChildthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGN
pixolin
 
Gitlab
GitlabGitlab
Gitlab
heiglandreas
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
Torben Brodt
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
Stefan Lay
 
Verteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit GitVerteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit Git
Jan Dittberner
 
Einführung Mercurial
Einführung MercurialEinführung Mercurial
Einführung Mercurialwielandp
 
Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)
Daniel Fesenmeyer
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Peter Kraume
 
OSDC 2013 | The truth is in the logs by Jan Doberstein
OSDC 2013 | The truth is in the logs by Jan DobersteinOSDC 2013 | The truth is in the logs by Jan Doberstein
OSDC 2013 | The truth is in the logs by Jan Doberstein
NETWAYS
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
Ralf Schwoebel
 
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeGo - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
Frank Müller
 
DOAG 2018 / Was bringt Solaris 11.4
DOAG 2018 / Was bringt Solaris 11.4DOAG 2018 / Was bringt Solaris 11.4
DOAG 2018 / Was bringt Solaris 11.4
JomaSoft
 
Werkzeugkasten
WerkzeugkastenWerkzeugkasten
Werkzeugkasten
Hendrik Lösch
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit Vagrant
B1 Systems GmbH
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Peter Löwe
 

Ähnlich wie Versionskontrolle mit Git (20)

Git
GitGit
Git
 
Git im team
Git im teamGit im team
Git im team
 
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
 
git started – IPC2012
git started – IPC2012git started – IPC2012
git started – IPC2012
 
JAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzenJAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzen
 
Childthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNChildthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGN
 
Gitlab
GitlabGitlab
Gitlab
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
 
Verteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit GitVerteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit Git
 
Einführung Mercurial
Einführung MercurialEinführung Mercurial
Einführung Mercurial
 
Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEV
 
OSDC 2013 | The truth is in the logs by Jan Doberstein
OSDC 2013 | The truth is in the logs by Jan DobersteinOSDC 2013 | The truth is in the logs by Jan Doberstein
OSDC 2013 | The truth is in the logs by Jan Doberstein
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
 
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeGo - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
 
DOAG 2018 / Was bringt Solaris 11.4
DOAG 2018 / Was bringt Solaris 11.4DOAG 2018 / Was bringt Solaris 11.4
DOAG 2018 / Was bringt Solaris 11.4
 
Werkzeugkasten
WerkzeugkastenWerkzeugkasten
Werkzeugkasten
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit Vagrant
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
 

Mehr von NETUserGroupBern

Large Language Models, Data & APIs - Integrating Generative AI Power into you...
Large Language Models, Data & APIs - Integrating Generative AI Power into you...Large Language Models, Data & APIs - Integrating Generative AI Power into you...
Large Language Models, Data & APIs - Integrating Generative AI Power into you...
NETUserGroupBern
 
AAD und .NET
AAD und .NETAAD und .NET
AAD und .NET
NETUserGroupBern
 
SHIFT LEFT WITH DEVSECOPS
SHIFT LEFT WITH DEVSECOPSSHIFT LEFT WITH DEVSECOPS
SHIFT LEFT WITH DEVSECOPS
NETUserGroupBern
 
Securing .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applicationsSecuring .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applications
NETUserGroupBern
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET Core
NETUserGroupBern
 
Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET Entwickler
NETUserGroupBern
 
Einführung in RavenDB
Einführung in RavenDBEinführung in RavenDB
Einführung in RavenDB
NETUserGroupBern
 
What Doctors Can Teach Us on Continuous Learning
What Doctors Can Teach Us on Continuous LearningWhat Doctors Can Teach Us on Continuous Learning
What Doctors Can Teach Us on Continuous Learning
NETUserGroupBern
 
Entity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf CoreEntity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf Core
NETUserGroupBern
 
Weiches Zeugs für harte Jungs und Mädels
Weiches Zeugs für harte Jungs und MädelsWeiches Zeugs für harte Jungs und Mädels
Weiches Zeugs für harte Jungs und Mädels
NETUserGroupBern
 
Änderungen im Cardinality Estimator SQL Server 2014
Änderungen im Cardinality Estimator SQL Server 2014Änderungen im Cardinality Estimator SQL Server 2014
Änderungen im Cardinality Estimator SQL Server 2014
NETUserGroupBern
 
Rest Fundamentals
Rest FundamentalsRest Fundamentals
Rest Fundamentals
NETUserGroupBern
 
Refactoring: Mythen & Fakten
Refactoring: Mythen & FaktenRefactoring: Mythen & Fakten
Refactoring: Mythen & Fakten
NETUserGroupBern
 
AngularJs
AngularJsAngularJs
AngularJs
NETUserGroupBern
 
Pragmatische Anforderungen
Pragmatische AnforderungenPragmatische Anforderungen
Pragmatische Anforderungen
NETUserGroupBern
 
Einführung in MongoDB
Einführung in MongoDBEinführung in MongoDB
Einführung in MongoDB
NETUserGroupBern
 
What the hell is PowerShell?
What the hell is PowerShell?What the hell is PowerShell?
What the hell is PowerShell?
NETUserGroupBern
 
Know your warm up
Know your warm upKnow your warm up
Know your warm up
NETUserGroupBern
 
BDD mit Machine.Specifications (MSpec)
BDD mit Machine.Specifications (MSpec)BDD mit Machine.Specifications (MSpec)
BDD mit Machine.Specifications (MSpec)
NETUserGroupBern
 
.NETworking Workshop Design Thinking
.NETworking Workshop Design Thinking.NETworking Workshop Design Thinking
.NETworking Workshop Design Thinking
NETUserGroupBern
 

Mehr von NETUserGroupBern (20)

Large Language Models, Data & APIs - Integrating Generative AI Power into you...
Large Language Models, Data & APIs - Integrating Generative AI Power into you...Large Language Models, Data & APIs - Integrating Generative AI Power into you...
Large Language Models, Data & APIs - Integrating Generative AI Power into you...
 
AAD und .NET
AAD und .NETAAD und .NET
AAD und .NET
 
SHIFT LEFT WITH DEVSECOPS
SHIFT LEFT WITH DEVSECOPSSHIFT LEFT WITH DEVSECOPS
SHIFT LEFT WITH DEVSECOPS
 
Securing .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applicationsSecuring .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applications
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET Core
 
Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET Entwickler
 
Einführung in RavenDB
Einführung in RavenDBEinführung in RavenDB
Einführung in RavenDB
 
What Doctors Can Teach Us on Continuous Learning
What Doctors Can Teach Us on Continuous LearningWhat Doctors Can Teach Us on Continuous Learning
What Doctors Can Teach Us on Continuous Learning
 
Entity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf CoreEntity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf Core
 
Weiches Zeugs für harte Jungs und Mädels
Weiches Zeugs für harte Jungs und MädelsWeiches Zeugs für harte Jungs und Mädels
Weiches Zeugs für harte Jungs und Mädels
 
Änderungen im Cardinality Estimator SQL Server 2014
Änderungen im Cardinality Estimator SQL Server 2014Änderungen im Cardinality Estimator SQL Server 2014
Änderungen im Cardinality Estimator SQL Server 2014
 
Rest Fundamentals
Rest FundamentalsRest Fundamentals
Rest Fundamentals
 
Refactoring: Mythen & Fakten
Refactoring: Mythen & FaktenRefactoring: Mythen & Fakten
Refactoring: Mythen & Fakten
 
AngularJs
AngularJsAngularJs
AngularJs
 
Pragmatische Anforderungen
Pragmatische AnforderungenPragmatische Anforderungen
Pragmatische Anforderungen
 
Einführung in MongoDB
Einführung in MongoDBEinführung in MongoDB
Einführung in MongoDB
 
What the hell is PowerShell?
What the hell is PowerShell?What the hell is PowerShell?
What the hell is PowerShell?
 
Know your warm up
Know your warm upKnow your warm up
Know your warm up
 
BDD mit Machine.Specifications (MSpec)
BDD mit Machine.Specifications (MSpec)BDD mit Machine.Specifications (MSpec)
BDD mit Machine.Specifications (MSpec)
 
.NETworking Workshop Design Thinking
.NETworking Workshop Design Thinking.NETworking Workshop Design Thinking
.NETworking Workshop Design Thinking
 

Versionskontrolle mit Git