Notizen, Tipps und Tricks zum Versionsverwaltung git
.
Änderungen siehe Changelog unten.
schickeres diff
1alias diffogram='git --no-pager diff --no-index'
nur gucken
1git show origin/<branchname>:pfad/datei.name
Beispiel
1git show origin/main:local-deb-repo/README.md
master in main umbenennen
Wer aus $GRUENDEN seinen
master
-Zweig in den main
-Zweig1 umbenennen möchte, kann das
folgendermaßen tun:
1$ git branch -m master main
2$ git push -u origin main
3Gesamt 0 (Delta 0), Wiederverwendet 0 (Delta 0)
4remote:
5remote: To create a merge request for main, visit:
6remote: https://gitlab.com/rainerrose/unbound-tools/-/merge_requests/new?merge_request%5Bsource_branch%5D=main
7remote:
8To gitlab.com:rainerrose/unbound-tools.git
9 * [new branch] main -> main
10Branch 'main' folgt nun Remote-Branch 'main' von 'origin'.
Das -m
bewirkt, dass auch die Historie verschoben2 wird, es bleiben
also alle Änderungen erhalten.
Default Branch in git setzen
Geht wohl erst ab Version 2.28
1git config --global init.defaultBranch main
dann soll auch folgendes gehen
1git init --initial-branch=main
2git init -b main
Default Branch in Gitlab setzen
Anschließend lässt sich der Default-Branch in Gitlab folgenderweise auf
main
setzen:
Allgemein
->Einstellungen
->Repository
->Default-Branch
->Aufklappen
Dort jetzt noch main
auswählen und schlussendlich die Änderungen
abspeichern (Save changes
).
Zwei-Faktor-Authentisierung bei Gitlab
Wird die 2FA in Gitlab aktiviert, kann sich nicht mehr über HTTPS per Username/Passwort angemeldet werden. (SSH mit Pub-Key geht weiterhin).
1$ git pull
2remote: HTTP Basic: Access denied
3remote: You must use a personal access token with 'read_repository' or 'write_repository' scope for Git over HTTP.
4remote: You can generate one at https://gitlab.com/-/profile/personal_access_tokens
5fatal: Authentication failed for 'https://gitlab.com/username/projekt-name.git'
Abhilfe
in Gitlab
In Gitlab anmelden: Benutzereinstellungen->Zugangs-Token
Dort ein "persönliches Zugangs-Token" (Add a personal access token)
generieren und Rechte vergeben read_repository
oder write_repository
im Repository
Erstmal wegnehmen
1$ git remote remove origin
remote mit geheimen Token einfügen
1$ git remote add origin https://oauth2:HIER_GEHEIMES_TOKEN_EINFUEGEN@gitlab.com/username/projekt-name.git
Upstream-Branch setzen
1$ git branch --set-upstream-to=origin/master master
Tipp
Falls nach
git pull
genörgelt wird, denselben Befehl im Upstream-Branch nochmal absetzen.
Alle branches (auch remote) anzeigen
1git branch -a
git remote branch lokal speichern
1git checkout -b <local branch name> origin/<remote branch name>
2git checkout -b serverfix origin/serverfix
Branch hochladen
1git push origin <Name des Branch>
mit anderem ssh-key anmelden
In der SSH-Konfiguration einen neuen Eintrag anlegen
1$ cat ~/.ssh/config
2Host gutMerkbarerName
3 HostName der.gitlab.host.name.fqdn
4 User rose
5 IdentityFile /home/rose/.ssh/id_ed25519.rose
6 IdentitiesOnly yes
Jetzt kann noch ein neues Remote-Ziel angelegt werden
1$ git remote add rose ssh://git@gutMerkbarerName:22/rose/project.git
jetzt kann mit
1$ git push rose
hochgeladen werden und git fragt nach dem anderen key
1Enter passphrase for key '/home/rose/.ssh/id_ed25519.rose':
statt
1$ git push origin
2Enter passphrase for key '/home/rose/.ssh/id_ed25519':
als anderer committen
1$ git config --local user.name "Rainer Rose"
2$ git config --local user.email "email@adresse"
3$ git commit
4$ git config --local --unset user.name
5$ git config --local --unset user.email
Alternativen zu --local
:
Git Config User / Email
Parameter | Ort |
---|---|
--local |
.git/config |
--global |
~/.gitconfig |
--system |
/etc/gitconfig |
Tags pushen
einzelner
1git push origin v0.42
alle
1git push origin --tags
lokale Branches löschen
Hinweis
Außer den aktuellen Branch, der ausgechecked ist!
nur die, die gemerged sind
1git branch --merged | grep -v \* | xargs git branch -D
alle
1git branch | grep -v \* | xargs git branch -D
Changelog
Datum | Änderung |
---|---|
11.10.2023 | zwei neue Tipps: “schickeres diff” & “Nur gucken” |
06.12.2023 | git remote branch lokal speichern |
11.12.2023 | Branch hochladen |
29.04.2025 | Neuer Abschnitt Git Config User / Email |
15.05.2025 | lokale Branches löschen |