SlideShare ist ein Scribd-Unternehmen logo
Git Grundlagen Teil 1 
git {init, clone, config, add, 
commit, status, log, rm, mv, push} 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git init (server seitig) 
zentrales Git Repository anlegen 
­­bare 
Deklaration eines 
zentralen Speicherortes 
→ enden üblicherweise mit .git 
→ Git Repo ohne Arbeitsverzeichnis 
Willkommen zum Git tutorial 
bob@host:~$ ssh bob@server 
bob@server:~$ cd meinprojekt 
bob@server:~$ git init ­­bare 
project.git 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git clone 
vorhandenes Git Repository kopieren 
→ die erzeugte Arbeitskopie stellt 
ein vollwertiges Git Repo dar 
→ erzeugtes .git Unterverzeichnis 
enthält Metadaten des Git Repo 
Willkommen zum Git tutorial 
bob@host:~$ git clone ssh://bob@server/project.git 
bob@host:~$ cd projekt 
bob@host:~/project$ # ..SW­Entwicklung 
beginnen.. 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git config 
git-Installationen konfigurieren 
user.name Deklaration eines 
Nutzernamens 
user.email Deklaration der 
Nutzer-Emailadresse 
­­edit 
Bearbeitung aller 
Einstellungen 
(Farb-Unterstützung, ...) 
Willkommen zum Git tutorial 
bob@host:~$ git config ­­global 
user.name "Bob M." 
bob@host:~$ git config ­­global 
user.email "b@m.de" 
bob@host:~$ git config ­­global 
­­edit 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
3 Git Ebenen 
working directory 
Arbeitsverzeichnis 
staging area 
Sammelpunkt für Änderungen 
git reposity 
Remote Git Projekt 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git add 
verschieben von Änderungen im 
Arbeitsverzeichnis in die Staging Area 
→ kennzeichnet Änderungen für 
das nächste commit 
Willkommen zum Git tutorial 
bob@host:~/project$ git add hello.java 
bob@host:~/project$ git commit ­m 
"datei erstellt" 
bob@host:~/project$ git add src 
bob@host:~/project$ git commit ­m 
"ordner erstellt" 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git commit 
hinzufügen der aktuellen Staging Area 
als Snapshot zum Projektverlauf 
­m 
Kurzbeschreibung der 
Änderungen im Snapshot 
­a 
Berücksichtigung der 
Änderungen an allen 
Dateien 
Willkommen zum Git tutorial 
bob@host:~/project$ git commit ­m 
"Fehlerbehebung #42" 
bob@host:~/project$ git commit ­am 
"neue Datenstruktur" 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git status 
prüfen des Status vom 
Arbeitsverzeichnis & Staging Area 
Willkommen zum Git tutorial 
bob@host:~/project$ # ..Edit hello.java.. 
bob@host:~/project$ git status 
hello.java: "Changes not staged for commit" 
bob@host:~/project$ git add hello.java 
bob@host:~/project$ git status 
hello.java: "Changes to be commited" 
bob@host:~/project$ git commit 
bob@host:~/project$ git status 
nothing to commit (working directory clean) 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git log 
anzeigen der Snapshots, die commited 
wurden 
­­author="< 
pattern>" 
Änderungen einzelner Nutzer 
­­stat, 
-p 
Detailliertere Ansichten 
­­oneline 
Jeder commit als Einzeiler (Übersicht) 
Willkommen zum Git tutorial 
bob@host:~/project$ git log 
commit 3157ee3718e180a9476bf2e5cab8e3f1e 
Author: Bob M. <b@m.de> 
Date: Tue Jan 8 12:57:51 2013 +0100 
hinzufügen der Funktion sha1() 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git {rm, mv} 
löschen, kopieren, verschieben von 
Dateien 
git rm 
löschen von Dateien 
git mv 
verschieben von Dateien 
Willkommen zum Git tutorial 
bob@host:~/project$ git rm hello.java 
bob@host:~/project$ git mv hello.java src/ 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git push 
hochladen der Änderungen zum 
zentralen Repository 
Willkommen zum Git tutorial 
bob@host:~/project$ git push 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
Git Arbeitsablauf 
1. Änderungen durchführen 
2. Änderungen stagen → git add <file1> <file2> 
3. Änderungen prüfen → git status 
4. Änderungen hinzufügen → git commit ­m 
"Kurzer Text" 
5. Änderungen hochladen → git push 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
Git Grundlagen Teil 2 
git {rm, mv, checkout, revert, 
clean, pull, branch, merge} 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git rm 
löschen von Dateien 
● Löschen kann jederzeit rückgängig 
gemacht werden 
git rm 
löschen von Dateien 
git rm ­r 
löschen von Ordner 
Willkommen zum Git tutorial 
bob@host:~/project$ git rm hello.java 
bob@host:~/project$ git rm ­r 
src/ 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git mv 
verschieben von Dateien 
git mv 
verschieben von Dateien 
Willkommen zum Git tutorial 
bob@host:~/project$ git mv ordner1/ ordner2/ 
bob@host:~/project$ git status 
renamed: ordner1/1.c ­> 
ordner2/ordner1/1.c 
bob@host:~/project$ git mv hello.java src/ 
bob@host:~/project$ git status 
renamed: hello.java ­> 
src/hello.java 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git checkout 
Änderungen zurückspielen 
git checkout <commit> <file> 
früheren commit einer Datei 
wiederherstellen und alle 
anderen Dateien anpassen 
git checkout <commit> 
alle Dateien auf den Stand 
eines bestimmten commits 
mit mehreren Dateien bringen 
Willkommen zum Git tutorial 
bob@host:~/project$ git log –oneline 
9183f9f Bug #14 in Run.java gefixt. 
bob@host:~/project$ git checkout 9183f9f Run.java 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git revert 
Rücksetzen eines kompletten commit 
Snapshots, ohne dass der commit 
aus der history gelöscht wird! 
● Git versucht Änderungen durch den 
gewählten commit zurückzuspielen 
● Nach Ausführung der Rücksetzung 
wird ein neuer commit mit den 
neuen Änderungen vorgeschlagen 
Willkommen zum Git tutorial 
bob@host:~/project$ git log –oneline 
9183f9f Bug #14 in Run.java gefixt. 
bob@host:~/project$ git revert 9183f9f 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git clean 
Ungetrackte Dateien automatisch aufräumen lassen 
● Achtung: 
Im Gegensatz zum manuellen git rm können Änderungen 
durch git clean nicht mehr rückgängig gemacht werden. 
git clean ­n 
„dry-run“: Nur Auflisten aller 
Dateien die gelöscht werden 
git clean ­df 
<path> 
Untracked Dateien -f und Ordner -d löschen 
git clean ­xdf 
<path> 
Untracked Dateien -f und Ordner -d, sowie 
Dateien nach .gitignore -x löschen 
Willkommen zum Git tutorial 
bob@host:~/project$ git status 
Untracked files: 
(use "git add <file>..." …) 
Run.java 
bob@host:~/project$ git clean ­n 
Would remove Run.java 
bob@host:~/project$ git clean ­xdf 
Removing Run.java 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git pull 
Lokales Repository mit neuesten 
Änderungen aktualisieren 
1. Änderungen werden herungeladen 
git fetch 
2. Änderungen werden 
zusammengeführt 
git merge 
Willkommen zum Git tutorial 
bob@host:~/project$ git checkout master 
bob@host:~/project$ git pull 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git branch 
Arbeitszweige auflisten, erstellen, löschen 
git branch <name> 
neuen Arbeitszweig <name> 
erstellen 
git branch 
alle Arbeitszweige auflisten 
git branch ­D 
<name> 
Arbeitszweig <name> löschen 
git branch ­m 
<name> 
Arbeitszweig <name> umbenennen 
Willkommen zum Git tutorial 
bob@host:~/project$ git branch 
* master 
test 
bob@host:~/project$ git checkout test 
bob@host:~/project$ git branch ­m 
test2 
bob@host:~/project$ git branch 
Master 
* test2 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git merge 
Mehrere Arbeitszweige 
zusammenführen 
git merge <branch> 
Merge <branch> in den aktuell 
gewählten Arbeitszweig 
git merge ­­no­ff 
<branch> 
Merge <branch> in den aktuell 
gewählten Arbeitszweig, aber lege 
einen merge commit an 
Willkommen zum Git tutorial 
bob@host:~/project$ git checkout master 
bob@host:~/project$ git branch 
* Master 
test 
bob@host:~/project$ git merge test 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
Git Grundlagen Teil 3 
git {fsck, grep, help} 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git fsck 
Überprüfung der Verbindung und 
Validierung der Objektdaten 
Willkommen zum Git tutorial 
bob@host:~/project$ git fsck 
Checking object directories: 100% (256/256), 
done. 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git grep 
Inhalte in commiteten Dateien 
finden 
git grep ­­text 
<text> 
Sucht in allen commiteten Dateien 
nach dem String <text> 
git grep ­n 
­­text 
<text> 
Liefert neben dem Dateinamen 
auch die Zeile 
Willkommen zum Git tutorial 
bob@host:~/project$ git grep ­­text 
"main" 
o.java: public static void main(String[] args){ 
bob@host:~/project$ git grep ­n 
­­text 
"MAX_C" 
o.java:10: private static final int MAX_C = 0; 
©2014 Benjamin Schürmann, edu-git@schuermann.cc
git help 
Auslistung aller git Befehlen 
git help ­a 
Liefert eine Übersicht zu allen 
verfügbaren git Befehlen 
git help <command> 
Liefert weitere Informationen zu 
dem git Befehl <command> 
Willkommen zum Git tutorial 
bob@host:~/project$ git help ­a 
bob@host:~/project$ git help merge
Git Grundlagen Links 
● Git Tutorials von atlassian.com 
● Git Guide von <rogerdudler> 
● Interaktives Git Tutorial von github.com 
● Tutorial zu Git Branching von <pcottle> 
©2014 Benjamin Schürmann, edu-git@schuermann.cc

Weitere ähnliche Inhalte

Was ist angesagt?

A Practical Introduction to git
A Practical Introduction to gitA Practical Introduction to git
A Practical Introduction to git
Emanuele Olivetti
 
Introduction git
Introduction gitIntroduction git
Introduction git
Dian Sigit Prastowo
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
Yoad Snapir
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
Lee Hanxue
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With Git
Nick Quaranto
 
Versionskontrolle mit Git
Versionskontrolle mit GitVersionskontrolle mit Git
Versionskontrolle mit Git
NETUserGroupBern
 
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
Mario Müller
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction Tutorial
Thomas Rausch
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
Arulmurugan Rajaraman
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
E Carter
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
glen_a_smith
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
Safique Ahmed Faruque
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
Junyoung Lee
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
Tilton2
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
Julien Blin
 
Git training v10
Git training v10Git training v10
Git training v10
Skander Hamza
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
Senthilkumar Gopal
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
Vikram SV
 
Git basics
Git basicsGit basics
Git basics
GHARSALLAH Mohamed
 

Was ist angesagt? (20)

A Practical Introduction to git
A Practical Introduction to gitA Practical Introduction to git
A Practical Introduction to git
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With Git
 
Versionskontrolle mit Git
Versionskontrolle mit GitVersionskontrolle mit Git
Versionskontrolle mit Git
 
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
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction Tutorial
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Git training v10
Git training v10Git training v10
Git training v10
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 
Git basics
Git basicsGit basics
Git basics
 

Ähnlich wie Git Grundlagen

Git
GitGit
Git Essentials Cheatsheet Deutsch
Git Essentials Cheatsheet DeutschGit Essentials Cheatsheet Deutsch
Git Essentials Cheatsheet Deutsch
Infralovers
 
Git im team
Git im teamGit im team
Git im team
Nicole Cordes
 
Childthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNChildthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGN
pixolin
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
Torben Brodt
 
Gitlab
GitlabGitlab
Gitlab
heiglandreas
 
Version management mit Git und Github
Version management mit Git und Github Version management mit Git und Github
Version management mit Git und Github
fg.informatik Universität Basel
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Peter Kraume
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
Stefan Lay
 
Git Power-Workshop
Git Power-WorkshopGit Power-Workshop
Git Power-Workshop
Steffen Gebert
 
Gitことはじめ
GitことはじめGitことはじめ
Gitことはじめ
bleis tift
 
Mercurial
MercurialMercurial
Homebrew
HomebrewHomebrew
Homebrew
Hussein Morsy
 
Versionierung mit GIT
Versionierung mit GITVersionierung mit GIT
Versionierung mit GIT
gedoplan
 
How to install Gitweb on Ubuntu
How to install Gitweb on UbuntuHow to install Gitweb on Ubuntu
How to install Gitweb on Ubuntu
teena77
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
NETWAYS
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
Schlomo Schapiro
 
'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!
Benjamin Schmid
 
Do it the_git_way
Do it the_git_wayDo it the_git_way
Do it the_git_wayPeter Ukena
 

Ähnlich wie Git Grundlagen (20)

Git
GitGit
Git
 
Git Essentials Cheatsheet Deutsch
Git Essentials Cheatsheet DeutschGit Essentials Cheatsheet Deutsch
Git Essentials Cheatsheet Deutsch
 
Git im team
Git im teamGit im team
Git im team
 
Childthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNChildthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGN
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
 
Gitlab
GitlabGitlab
Gitlab
 
Version management mit Git und Github
Version management mit Git und Github Version management mit Git und Github
Version management mit Git und Github
 
git started – IPC2012
git started – IPC2012git started – IPC2012
git started – IPC2012
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEV
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
 
Git Power-Workshop
Git Power-WorkshopGit Power-Workshop
Git Power-Workshop
 
Gitことはじめ
GitことはじめGitことはじめ
Gitことはじめ
 
Mercurial
MercurialMercurial
Mercurial
 
Homebrew
HomebrewHomebrew
Homebrew
 
Versionierung mit GIT
Versionierung mit GITVersionierung mit GIT
Versionierung mit GIT
 
How to install Gitweb on Ubuntu
How to install Gitweb on UbuntuHow to install Gitweb on Ubuntu
How to install Gitweb on Ubuntu
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
 
'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!
 
Do it the_git_way
Do it the_git_wayDo it the_git_way
Do it the_git_way
 

Git Grundlagen

  • 1. Git Grundlagen Teil 1 git {init, clone, config, add, commit, status, log, rm, mv, push} ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 2. git init (server seitig) zentrales Git Repository anlegen ­­bare Deklaration eines zentralen Speicherortes → enden üblicherweise mit .git → Git Repo ohne Arbeitsverzeichnis Willkommen zum Git tutorial bob@host:~$ ssh bob@server bob@server:~$ cd meinprojekt bob@server:~$ git init ­­bare project.git ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 3. git clone vorhandenes Git Repository kopieren → die erzeugte Arbeitskopie stellt ein vollwertiges Git Repo dar → erzeugtes .git Unterverzeichnis enthält Metadaten des Git Repo Willkommen zum Git tutorial bob@host:~$ git clone ssh://bob@server/project.git bob@host:~$ cd projekt bob@host:~/project$ # ..SW­Entwicklung beginnen.. ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 4. git config git-Installationen konfigurieren user.name Deklaration eines Nutzernamens user.email Deklaration der Nutzer-Emailadresse ­­edit Bearbeitung aller Einstellungen (Farb-Unterstützung, ...) Willkommen zum Git tutorial bob@host:~$ git config ­­global user.name "Bob M." bob@host:~$ git config ­­global user.email "b@m.de" bob@host:~$ git config ­­global ­­edit ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 5. 3 Git Ebenen working directory Arbeitsverzeichnis staging area Sammelpunkt für Änderungen git reposity Remote Git Projekt ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 6. git add verschieben von Änderungen im Arbeitsverzeichnis in die Staging Area → kennzeichnet Änderungen für das nächste commit Willkommen zum Git tutorial bob@host:~/project$ git add hello.java bob@host:~/project$ git commit ­m "datei erstellt" bob@host:~/project$ git add src bob@host:~/project$ git commit ­m "ordner erstellt" ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 7. git commit hinzufügen der aktuellen Staging Area als Snapshot zum Projektverlauf ­m Kurzbeschreibung der Änderungen im Snapshot ­a Berücksichtigung der Änderungen an allen Dateien Willkommen zum Git tutorial bob@host:~/project$ git commit ­m "Fehlerbehebung #42" bob@host:~/project$ git commit ­am "neue Datenstruktur" ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 8. git status prüfen des Status vom Arbeitsverzeichnis & Staging Area Willkommen zum Git tutorial bob@host:~/project$ # ..Edit hello.java.. bob@host:~/project$ git status hello.java: "Changes not staged for commit" bob@host:~/project$ git add hello.java bob@host:~/project$ git status hello.java: "Changes to be commited" bob@host:~/project$ git commit bob@host:~/project$ git status nothing to commit (working directory clean) ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 9. git log anzeigen der Snapshots, die commited wurden ­­author="< pattern>" Änderungen einzelner Nutzer ­­stat, -p Detailliertere Ansichten ­­oneline Jeder commit als Einzeiler (Übersicht) Willkommen zum Git tutorial bob@host:~/project$ git log commit 3157ee3718e180a9476bf2e5cab8e3f1e Author: Bob M. <b@m.de> Date: Tue Jan 8 12:57:51 2013 +0100 hinzufügen der Funktion sha1() ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 10. git {rm, mv} löschen, kopieren, verschieben von Dateien git rm löschen von Dateien git mv verschieben von Dateien Willkommen zum Git tutorial bob@host:~/project$ git rm hello.java bob@host:~/project$ git mv hello.java src/ ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 11. git push hochladen der Änderungen zum zentralen Repository Willkommen zum Git tutorial bob@host:~/project$ git push ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 12. Git Arbeitsablauf 1. Änderungen durchführen 2. Änderungen stagen → git add <file1> <file2> 3. Änderungen prüfen → git status 4. Änderungen hinzufügen → git commit ­m "Kurzer Text" 5. Änderungen hochladen → git push ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 13. Git Grundlagen Teil 2 git {rm, mv, checkout, revert, clean, pull, branch, merge} ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 14. git rm löschen von Dateien ● Löschen kann jederzeit rückgängig gemacht werden git rm löschen von Dateien git rm ­r löschen von Ordner Willkommen zum Git tutorial bob@host:~/project$ git rm hello.java bob@host:~/project$ git rm ­r src/ ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 15. git mv verschieben von Dateien git mv verschieben von Dateien Willkommen zum Git tutorial bob@host:~/project$ git mv ordner1/ ordner2/ bob@host:~/project$ git status renamed: ordner1/1.c ­> ordner2/ordner1/1.c bob@host:~/project$ git mv hello.java src/ bob@host:~/project$ git status renamed: hello.java ­> src/hello.java ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 16. git checkout Änderungen zurückspielen git checkout <commit> <file> früheren commit einer Datei wiederherstellen und alle anderen Dateien anpassen git checkout <commit> alle Dateien auf den Stand eines bestimmten commits mit mehreren Dateien bringen Willkommen zum Git tutorial bob@host:~/project$ git log –oneline 9183f9f Bug #14 in Run.java gefixt. bob@host:~/project$ git checkout 9183f9f Run.java ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 17. git revert Rücksetzen eines kompletten commit Snapshots, ohne dass der commit aus der history gelöscht wird! ● Git versucht Änderungen durch den gewählten commit zurückzuspielen ● Nach Ausführung der Rücksetzung wird ein neuer commit mit den neuen Änderungen vorgeschlagen Willkommen zum Git tutorial bob@host:~/project$ git log –oneline 9183f9f Bug #14 in Run.java gefixt. bob@host:~/project$ git revert 9183f9f ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 18. git clean Ungetrackte Dateien automatisch aufräumen lassen ● Achtung: Im Gegensatz zum manuellen git rm können Änderungen durch git clean nicht mehr rückgängig gemacht werden. git clean ­n „dry-run“: Nur Auflisten aller Dateien die gelöscht werden git clean ­df <path> Untracked Dateien -f und Ordner -d löschen git clean ­xdf <path> Untracked Dateien -f und Ordner -d, sowie Dateien nach .gitignore -x löschen Willkommen zum Git tutorial bob@host:~/project$ git status Untracked files: (use "git add <file>..." …) Run.java bob@host:~/project$ git clean ­n Would remove Run.java bob@host:~/project$ git clean ­xdf Removing Run.java ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 19. git pull Lokales Repository mit neuesten Änderungen aktualisieren 1. Änderungen werden herungeladen git fetch 2. Änderungen werden zusammengeführt git merge Willkommen zum Git tutorial bob@host:~/project$ git checkout master bob@host:~/project$ git pull ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 20. git branch Arbeitszweige auflisten, erstellen, löschen git branch <name> neuen Arbeitszweig <name> erstellen git branch alle Arbeitszweige auflisten git branch ­D <name> Arbeitszweig <name> löschen git branch ­m <name> Arbeitszweig <name> umbenennen Willkommen zum Git tutorial bob@host:~/project$ git branch * master test bob@host:~/project$ git checkout test bob@host:~/project$ git branch ­m test2 bob@host:~/project$ git branch Master * test2 ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 21. git merge Mehrere Arbeitszweige zusammenführen git merge <branch> Merge <branch> in den aktuell gewählten Arbeitszweig git merge ­­no­ff <branch> Merge <branch> in den aktuell gewählten Arbeitszweig, aber lege einen merge commit an Willkommen zum Git tutorial bob@host:~/project$ git checkout master bob@host:~/project$ git branch * Master test bob@host:~/project$ git merge test ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 22. Git Grundlagen Teil 3 git {fsck, grep, help} ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 23. git fsck Überprüfung der Verbindung und Validierung der Objektdaten Willkommen zum Git tutorial bob@host:~/project$ git fsck Checking object directories: 100% (256/256), done. ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 24. git grep Inhalte in commiteten Dateien finden git grep ­­text <text> Sucht in allen commiteten Dateien nach dem String <text> git grep ­n ­­text <text> Liefert neben dem Dateinamen auch die Zeile Willkommen zum Git tutorial bob@host:~/project$ git grep ­­text "main" o.java: public static void main(String[] args){ bob@host:~/project$ git grep ­n ­­text "MAX_C" o.java:10: private static final int MAX_C = 0; ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  • 25. git help Auslistung aller git Befehlen git help ­a Liefert eine Übersicht zu allen verfügbaren git Befehlen git help <command> Liefert weitere Informationen zu dem git Befehl <command> Willkommen zum Git tutorial bob@host:~/project$ git help ­a bob@host:~/project$ git help merge
  • 26. Git Grundlagen Links ● Git Tutorials von atlassian.com ● Git Guide von <rogerdudler> ● Interaktives Git Tutorial von github.com ● Tutorial zu Git Branching von <pcottle> ©2014 Benjamin Schürmann, edu-git@schuermann.cc