Upload
benjamin-schuermann
View
235
Download
2
Embed Size (px)
Citation preview
Git Grundlagen Teil 1git {init, clone, config, add,
commit, status, log, rm, mv, push}
©2014 Benjamin Schürmann, [email protected]
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, [email protected]
git clonevorhandenes 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$ # ..SWEntwicklung beginnen..
©2014 Benjamin Schürmann, [email protected]
git configgit-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 "[email protected]"
bob@host:~$ git config global edit
©2014 Benjamin Schürmann, [email protected]
3 Git Ebenen
working directory
Arbeitsverzeichnis
staging area
Sammelpunkt für Änderungen
git reposity
Remote Git Projekt
©2014 Benjamin Schürmann, [email protected]
git addverschieben 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, [email protected]
git commithinzufü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, [email protected]
git statusprü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, [email protected]
git loganzeigen 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. <[email protected]>
Date: Tue Jan 8 12:57:51 2013 +0100
hinzufügen der Funktion sha1()
©2014 Benjamin Schürmann, [email protected]
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, [email protected]
git pushhochladen der Änderungen zum zentralen Repository
Willkommen zum Git tutorial
bob@host:~/project$ git push
©2014 Benjamin Schürmann, [email protected]
Git Arbeitsablauf 1. Änderungen durchführen2. Änderungen stagen → git add <file1> <file2> 3. Änderungen prüfen → git status4. Änderungen hinzufügen → git commit m "Kurzer Text"5. Änderungen hochladen → git push
©2014 Benjamin Schürmann, [email protected]
Git Grundlagen Teil 2git {rm, mv, checkout, revert,
clean, pull, branch, merge}
©2014 Benjamin Schürmann, [email protected]
git rmlö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, [email protected]
git mvverschieben 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, [email protected]
git checkoutÄnderungen zurückspielen
git checkout <commit> <file>
früheren commit einer Dateiwiederherstellen und alleanderen Dateien anpassen
git checkout <commit>
alle Dateien auf den Standeines bestimmten commitsmit 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, [email protected]
git revertRücksetzen eines kompletten commitSnapshots, 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ücksetzungwird 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, [email protected]
git cleanUngetrackte 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, sowieDateien 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, [email protected]
git pullLokales 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, [email protected]
git branchArbeitszweige 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
* mastertest
bob@host:~/project$ git checkout test
bob@host:~/project$ git branch m test2
bob@host:~/project$ git branch
Master * test2
©2014 Benjamin Schürmann, [email protected]
git mergeMehrere Arbeitszweige zusammenführen
git merge <branch>
Merge <branch> in den aktuell gewählten Arbeitszweig
git merge noff <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, [email protected]
Git Grundlagen Teil 3git {fsck, grep, help}
©2014 Benjamin Schürmann, [email protected]
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, [email protected]
git grepInhalte 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, [email protected]
git helpAuslistung 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, [email protected]