IT-Wissen/git
Roger Rutishauser 8f0010a1ce update git
2025-01-15 13:59:57 +01:00
..
README.md update git 2025-01-15 13:59:57 +01:00

Table of Contents

Git

delete branch

Lokal Branch löschen z.B. wenn er auf Origin in master gemergt wurde.

// delete branch locally
git branch -d localBranchName

// delete branch remotely
git push origin --delete remoteBranchName

master updaten auf Stand von origin/master

git checkout master
git pull
git reset --hard origin/master
git pull

Lokal ausgecheckter Feature-Branch in master mergen

Vorgehensweise: Lokal in den master-Branch mergen und dann nach origin/master pushen.

Der übliche Weg sieht etwa so aus (ohne Pull-Request-Workflow):

  • Auf master wechseln (lokal): git checkout master
  • Aktuellste Änderungen von origin/master holen und mit lokalem master synchronisieren: git pull origin master
  • Deinen Feature-Branch in den lokalen master mergen (angenommen, Dein Branch heißt feature/mybranch): git merge feature/mybranch
  • Falls Merge-Konflikte auftreten, diese im Code beheben, Dateien committen, sodass der Merge abgeschlossen werden kann.
  • Änderungen auf den Remote-Master pushen: git push origin master

Nun ist der Code aus feature/mybranch in origin/master eingeflossen.

Remote Branch als neuen local branch

git fetch origin
# Anzeigen aller Branches
git branch -a
# zuerst local dann origin-name angeben:
git checkout -b INITIATIVE-242_Ru origin/INITIATIVE-242_Ru

Branch löschen

Lokal löschen

git branch -d <branchname> (wenn gemergt)
git branch -D <branchname> (um zu erzwingen)

Remote löschen

git push origin --delete <branchname>

Tag löschen

Lokal

git tag -d tagname

Remote

git push --delete origin tagname

1 oder mehrere Commits zurück

1 Schritt zurück

git reset --hard HEAD~1

Mehrere Schritte zurück

git reset --hard <commit-id>

! nicht vergessen, anschliessend für remote anpassen:

git push -f

Overwrite local history with remote

git fetch --all
git reset --hard <remote>/<branch-name>

Eigenen Branch mit dem Master-Branch aktualisieren

git checkout master
git pull
git checkout xyz
git rebase -i master

... hier die Konflikte lösen ...

git add .
git rebase --continue
git push --force-with-lease

Neuer Branch aus falschem Branch

Ausgangslage

Neuer Branch (b) wurde fälschlicherweise aus einem anderen Branch (a) (anstatt dem Master) erstellt. Die Files aus (a) sind nun doppelt vorhanden, nämlich auch in (b). Bei einem Pull-Request für (b) sind dann die files auch von (a) drin.

Problemlösung

git checkout master
git pull
git checkout (b)
git pull
git rebase -i master

bei den commits aus (b), also die, die nicht in den neuen branch gehören, ein d vorne dran (anstatt bestehendem pick) und speichern

git log (zum prüfen ob ok)
git push --force-with-lease