Git für Fortgeschrittene

Git für Fortgeschrittene

Im letzten Artikel Git & Github für Anfänger habe ich erklärt wie du Git & GitHub einrichtest und deine erste Repository anlegst. In diesem Artikel geht es etwas tiefer in die Materie. Du lernst wie du Dateien aus der Datenbank ausschließt, Dateien zwischen den 3 Status wechselst, wie du Dateien temporär bei Seite legst und wie du mit Branches arbeitest.

Dateien aus der Datenbank ausschließen

Um eine Datei dauerhaft aus GIT auszuschließen, musst du eine „.gitignore" Datei anlegen und den Dateipfad dort eintragen. Öffne deinen Editor und lege 2 Dateien an. Zum einen die Datei „.gitignore" und zum anderen eine Datei die du ausschließen möchtest.
Git für Fortgeschrittene
In der „.gitignore" Datei „/geheim/geheim.txt" eintragen, um die Datei geheim.txt von der Datenbank auszuschließen.
Git für Fortgeschrittene


Wenn du jetzt „git status" in deine Konsole eingibst, siehst du, dass die geheim Dateien nicht angezeigt werden und somit von Git ignoriert werden.

C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch master Your branch is up-to-date with 'origin/master'. Untracked files: (use "git add <file>..." to include in what will be committed) .gitignore nothing added to commit but untracked files present (use "git add" to track) C:\Users\Marc\Desktop\Projekte\boolie\gittut>git add . C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: .gitignore C:\Users\Marc\Desktop\Projekte\boolie\gittut>git commit -m "ignoreing secret Files" [master 252281b] ignoreing secret Files 1 file changed, 1 insertion(+) create mode 100644 .gitignore C:\Users\Marc\Desktop\Projekte\boolie\gittut>git push Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 337 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/Snowflame/GitTutorial .git 412ffc4..252281b master -> master

Datei Änderungen rückgängig machen

Mit dem „checkout" Befehl lassen sich Dateien wieder auf den Uhrsprung zurück setzen. Ändere die Datei die Datei README.md, trage eine Textstelle ein.Git für Fortgeschrittene Jetzt gibst du in der Konsole „git checkout README.md" ein, danach wird die Änderung rückgängig gemacht und die Datei ist wieder auf dem Stand des letzten pulls.

C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md no changes added to commit (use "git add" and/or "git commit -a") C:\Users\Marc\Desktop\Projekte\boolie\gittut>git checkout README.md C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working tree clean

Staged Markierung entfernen

Falls du schon eine Datei mit „git add" markiert hast, aber diese doch nicht in den Commit soll, kannst du die Datei mit „git reset DATEI" wieder aus dem staged Modus herausholen. Falls du die Datei bearbeitest und speicherst, wird die Datei automatisch aus dem staged genommen.

C:\Users\Marc\Desktop\Projekte\boolie\gittut>git add README.md C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: README.md C:\Users\Marc\Desktop\Projekte\boolie\gittut>git reset README.md Unstaged changes after reset: M README.md C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md no changes added to commit (use "git add" and/or "git commit -a")

Stash

Der Stash ist eine Art Zwischenablage, du kannst deine Änderungen in den Stash legen und z.B. ein pull machen. Nach dem pull machst du ein apply und deine Änderungen sind wieder da. Schreibe eine Zeile in die README.md.
Git für Fortgeschrittene
Jetzt gibst du in der Konsole „git stash" ein.

C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md no changes added to commit (use "git add" and/or "git commit -a") C:\Users\Marc\Desktop\Projekte\boolie\gittut>git stash Saved working directory and index state WIP on master: 252281b ignoreing secret Files C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working tree clean

Bearbeite jetzt die license.txt, schreibe z.B. deinen Namen rein.

Git für Fortgeschrittene


Jetzt führe den Befehl „git stash apply" in der Konsole aus.

C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: license.txt no changes added to commit (use "git add" and/or "git commit -a") C:\Users\Marc\Desktop\Projekte\boolie\gittut>git stash apply On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md modified: license.txt no changes added to commit (use "git add" and/or "git commit -a")

Jetzt ist die Änderung in der REAME.md wieder da!
Git für Fortgeschrittene

Branches

Ein Branch ist eine Sammlung von Commits, die wiederum eine neue Funktion in deiner App darstellen. Sprich jede neue Funktion in deiner App sollte eine eigene Branch besitzen. Wenn Entwickler 1 an der Branch „bezahl Funktion" arbeitet und Entwickler 2 an „Produktauswahl", kommen die beiden sich nicht in die Quere, da die beiden in unterschiedlichen Branches arbeiten. Später werden beide Branches dann merged und ergeben ein Paket aus neuen Funktionen für die App.
Git für Fortgeschrittene

Um eine Branch zu erstellen musst du „checkout -b [NAME]" in die Konsole eingeben. Mit dem Befehl erstellst du die Branch und wechselst gleich in die Branch. Mit dem Befehl „git branch" kannst du dir alle Branches anzeigen lassen.

C:\Users\Marc\Desktop\Projekte\boolie\gittut>git checkout -b "README_Info" Switched to a new branch 'README_Info' C:\Users\Marc\Desktop\Projekte\boolie\gittut>git branch * README_Info master

Wenn du jetzt in der Brnach README_Info arbeitest, werden keine Änderungen im master vorgenommen. Ändere jetzt in der REAME.md wieder eine Zeile bzw. füge eine neue Zeile ein.Git für Fortgeschrittene
Schiebe jetzt deine Branch auf den Server. Aber diesmal musst du bei deinem push ein Upstream setzen. „git push -set-upstream origin README_Info" sagt dem Server eine neue Branch wurde erstellt und füge diese auf dem Server hinzu.

C:\Users\Marc\Desktop\Projekte\boolie\gittut>git status On branch README_Info Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md no changes added to commit (use "git add" and/or "git commit -a") C:\Users\Marc\Desktop\Projekte\boolie\gittut>git add README.md C:\Users\Marc\Desktop\Projekte\boolie\gittut>git commit -m "new working Branch" [README_Info 4ceb2aa] new working Branch 1 file changed, 3 insertions(+) C:\Users\Marc\Desktop\Projekte\boolie\gittut>git push --set-upstream origin README_Info Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 416 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/Snowflame/GitTutorial.git * [new branch] README_Info -> README_Info Branch README_Info set up to track remote branch README_Info from origin.

Jetzt zeigt GitHub auch die Branch an, öffne deine Branch und klicke auf „branches".
Git für FortgeschritteneGit für Fortgeschrittene

Du kannst mit dem „git checkout [BRANCHNAME]" Befehl zwischen den Branches wechseln. Wechsel jetzt zurück auf den Master Branch.

C:\Users\Marc\Desktop\Projekte\boolie\gittut>git branch * README_Info master C:\Users\Marc\Desktop\Projekte\boolie\gittut>git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/master'. C:\Users\Marc\Desktop\Projekte\boolie\gittut>git branch README_Info * master

Jetzt siehst du in deinem Editor, dass die Änderungen weg sind. Aber die Änderungen sind nicht weg, die liegen nur in der anderen Branch.

Branches mergen

Ein merge ist eine Zusammenfügung von 2 Branches, dabei wird der angegebene Branch in den aktuellen Branch eingefügt. Bei Git machst du das mit dem Befehl „git merge [BRANCH]". Wechsle also in den Master Brnach und merge README_Info. Der Befehl sieht dann folgendermaßen aus: „git merge README_Info".

C:\Users\Marc\Desktop\Projekte\boolie\gittut>git merge README_info Updating 323f602..4ceb2aa Fast-forward README.md | 3 +++ 1 file changed, 3 insertions(+)

Fertig, die beiden Branches sind jetzt zusammen gesetzt worden und der master Branch hat den Code vom README_Info mit drin.

Fazit

Wenn du vorher das Anfänger Tutorial gemacht hast und jetzt das Fortgeschrittene Tutorial, könntest du schon in einem Unternehmen, das Git verwendet, arbeiten. Du kannst jetzt: Dateien Ignorieren, Änderungen rückgängig machen, Dateien aus dem Staged Modus nehmen, Dateien zur Seite packen, Branches anlegen und mergen.


wallpaper-1019588
5 Dinge, die du als Trailrunning-Anfänger wissen solltest
wallpaper-1019588
Kalorienarme Lebensmittel: Top-Auswahl für Ihre Diät
wallpaper-1019588
Kalorienarme Lebensmittel: Top-Auswahl für Ihre Diät
wallpaper-1019588
#1492 [Review] Manga ~ Dein Verlangen gehört mir