Git Grundlagen

2.939 Aufrufe

Veröffentlicht am

Eine kurze Git Einführung im Rahmen eines Softwareprojektes der Westfälischen Hochschule Gelsenkirchen.

Veröffentlicht in: Software
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.939
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1.326
Aktionen
Geteilt
0
Downloads
21
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Git Grundlagen

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 13. Git Grundlagen Teil 2 git {rm, mv, checkout, revert, clean, pull, branch, merge} ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  14. 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. 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. 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. 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. 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. 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. 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. 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. 22. Git Grundlagen Teil 3 git {fsck, grep, help} ©2014 Benjamin Schürmann, edu-git@schuermann.cc
  23. 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. 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. 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. 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

×