Git


      
Git
14.04.2023

Cherry-picking


git cherry-pick wird verwendet um andere commits auf den aktuellen Branch zu übertragen.
Dazu muss dem Befehl lediglich die Commit-Id übergeben werden. Diese erhält man mit git log oder aber über Bitbucket (falls verwendet).

git cherry-pick b04e15466f5

b04e15466f5 ist natürlich nur eine beispielhafte Commit-Id.



      
Git
15.12.2022

stash in Datei exportieren


Exportieren mit:
git stash show -p > myFile.patch

Importieren mit:
git apply myFile.patch




      
Git
25.05.2022

Dateien - Kommando rückgängig machen


git commit rückgängig machen

git reset HEAD myFile
git checkout myFile
(Meist reicht die zweite Zeile)

git add rückgängig machen

git reset myFile



      
Git
25.05.2022

.gitignore


Mit der Datei .gitignore kann man Dateien ausschließen. Das heißt, diese Dateien werden von git ignoriert.
.gitignore ist eine Textdtei und kann einzelne Dateien enthalten und auch Ordner.

Beispiel:
/tmp/**
/config/config.xml


Falls die .gitignore nicht funktioniert hilft Folgendes:

git rm -r --cached .
git add . 




      
Git
23.05.2022

Prompt mit Git-Branch


Prompt mit aktuellem Verzeichnis und Git-Branch

Dazu muss folgende Zeile am Ende der ~./bashrc eintragen werden:

PS1="\\w \[\033[0;36m\]\$(git branch 2>/dev/null | grep '^*' | colrm 1 2)\[\033[0;30m\]> "

oder

parse_git_branch() {
   git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\]> "

weitere Mögichkeiten:
  • \$(parse_git_branch)\[\033[00m\] - Git-Branch mit Farbe
  • \u@\h \[\033[32m\] - User, Hostname mit Farbe
  • \w\[\033[33m\] - Verzeichnis mit Farbe




      
Git
16.05.2022

Stash


Die Staging Area ist so eine Art Zwischenablage. In dieser können Änderungen zwischengespeichert werden. Beispielsweise, wenn man mal kurz den Branch wechseln möchte ohne die vorhandenen Änderungen im aktuelle Branch zu commiten.


git stash um Änderungen zwischenzulagern
git stash pop um Änderungen wieder einzuspielen (stashing area wird bei Erfolg gelöscht)
git stash apply um Änderungen wieder einzuspielen (stashing area wird nicht gelöscht)
git stash clear stashing area wird gelöscht
git stash list zeigt den Inhalt der stashing area



      
Git
16.05.2022

Add


add

git add . fügt alle geänderten Dateien hinzu (zwischen "add" und dem "." muss ein Leerzeichen sein!).
git add myFilePath fügt eine bestimmte Datei hinzu.



      
Git
16.05.2022

Commit


Commit durchführen

git -m "MyCommitMessage"
(Bedingung: vorher müssen mit add Dateien hinzugefügt werden)

Commit rückgängig machen

git reset --soft HEAD~1
Dabei bleiben die Änderungen erhalten!
Mit einer höheren Zahl (z.B.: 3) können mehrere commits rückgängig gemacht werden.
Mit anschließendem git commit kann man dann alles commiten (Also indirekt die commits zusammenfassen).

Commit-Message ändern

git commit --amend
War der commit bereits gepushed, so muss noch ein
git push -f
folgen.



      
Git
05.05.2022

Zeilenumbrüche


Leider gibt es verschiedenen Zeilenumbrüche, je nach System.
Windows:

git config --global core.autocrlf true

Linux u. Mac
git config --global core.autocrlf input



      
Git
04.05.2022

Branches


Branch wechseln

git checkout develop
Der aktuelle Branch ist nun develop

Branch prüfen

git branch
Gibt eine Liste aller schon mal ausgecheckten Branches aus.
Der aktuelle Branch ist mit einem Sternchen gekennzeichnet

Neuen Branch erstellen

(Basis ist der aktuell ausgecheckte Branch, also in der Regel develop):
git branch myOwnBranch

Pushen

... des neuen Branches in das remote repository
git push -u origin myOwnBranch

Mergen

... eines Branches in den aktuellen Branch (develop):
git merge anotherBranch

Branch zurücksetzen

git reset --hard origin/myOwnBranch
Alle(!) lokalen Änderungen werden verworfen und der Stand von origin wird wieder hergestellt.

Branch umbenennen

git branch --move bad-branch-name corrected-branch-name (gibt dem Branch im lokalen Repositoryeinen neuen Namen)
git push --set-upstream origin corrected-branch-name (bringt die Änderung auf den remote branch)

Branch löschen

git branch -d myOwnBranch (löscht den Branch im lokalen Repository, aber nur, wenn er bereits gemergt wrude)
git branch -D myOwnBranch (löscht den Branch im lokalen Repository; git push anschließend löscht auch remote)
git push origin :myOwnBranch (Leerzeichen vor dem ":"!)

Branch finden

git branch -a --contains commit (findet den Commit in allen Branches)