tipps_und_tricks/README.md
2023-10-31 14:51:13 +01:00

3.5 KiB

Bei dem Error fatal: refusing to merge unrelated histories den Befehl git pull origin master --allow-unrelated-histories verwenden und das Problem ist gelöst.

Michis Git Verstäännis

Der Reponame "main" ist voreingestellt, es gehen auch andere.

Am Beispiel dieses Readme.md:

git checkout -b main  
git add README.md  
git commit -m "first commit"  
git remote add origin git@teapot.informationsanarchistik.de:Wobbl/tipps_und_tricks.git  
git push -u origin main  

ॐ wn@magma:/python/tipps_und_tricks→git:(main) vi README.md
ॐ wn@magma:
/python/tipps_und_tricks→git:(main)
ॐ wn@magma:/python/tipps_und_tricks→git:(main) ✗ git push -u origin main
Branch 'main' folgt nun Remote-Branch 'main' von 'origin'.
Everything up-to-date
ॐ wn@magma:
/python/tipps_und_tricks→git:(main) ✗ git commit README.md
[main a0d4d5c] geändert: README.md
1 file changed, 11 insertions(+), 1 deletion(-)
ॐ wn@magma:~/python/tipps_und_tricks→git:(main) git push -u origin main

Objekte aufzählen: 5, fertig.
Zähle Objekte: 100% (5/5), fertig.
Delta-Kompression verwendet bis zu 4 Threads.
Komprimiere Objekte: 100% (2/2), fertig.
Schreibe Objekte: 100% (3/3), 535 Bytes | 535.00 KiB/s, fertig.
Gesamt 3 (Delta 0), Wiederverwendet 0 (Delta 0), Pack wiederverwendet 0
remote: . Processing 1 references
remote: Processed 1 references in total
To teapot.informationsanarchistik.de:Wobbl/tipps_und_tricks.git
83c741e..a0d4d5c main -> main
Branch 'main' folgt nun Remote-Branch 'main' von 'origin'.

ssh

Ein Zugriff auf den Teetopf über https ist komplexer und unsicherer als über ssh
ssh ist ein unverzichtbare universelles "Schweizermesser" für professionelles und sicheres Arbeiten im Netz.
Um forgejo auf teapot mit ssh zu bedienen, muss mensch einen zweiteiligen Schlüssel generieren.
Das vom Server bevorzugte, weil am schwersten zu knackende Verschlüsselungssystem ist ed25519.
Einfach zu erzeugen:

ssh-keygen -t ed25519  

Das zum Entsperren des Schlüssels notwendige lokale Passwort sollte böse und gemein sein, sonst ist die Übung im Falle eines geklauten Rechners fürn A...
Je nach verwendetem Desktopsystem bietet Linus natürlich an, sich die Passphrase wegzuspeichern.
Um damit das remote System zu bedienen, muss der öffentliche Teil des Schlüssels dort abgelegt werden. Lokal ist das zumeist die Datei

~/.ssh/id_ed25519.pub  

Die klappste in die Zwischenablage und bunkerst sie in deinem Profil im forgejo
Auf keinen Fall den privaten Schlüssel hochladen oder überhaupt jemals irgendwo durch irgendwelche Leitungen schicken!
Sollte das versehentlich passiert sein, kannste den Schlüssel löschen und nen neuen anlegen.
Der Publickey darf im Fernsehen gesendet werden, das schadet nix.

Eine prima Seite mit Infos zu git und ssh schrieb der Patrick Asmus, klixdu hier: SSH-Keys für gitea

Wenn alles passt, kannst du mit der Befehlsverbindung &&, was soviel bedeutet wie "If Exitcode=OK then" die nötigen Kommandos zusammenfassen:

vi README.md && git commit -m "Mein Kommentar" README.md && git push -u origin main

und du hast die aktuelle Version im lokalen und im entfernten Repo. Das funktioniert nicht bei nicht eigenen Repos, wenn die auf "privat" geschaltet sind.