75 lines
3.3 KiB
Markdown
75 lines
3.3 KiB
Markdown
|
# Alles rund um Git
|
||
|
|
||
|
## Readme's
|
||
|
- [Michis Git Verstännis](./michi_git.md "Git ist doof")
|
||
|
|
||
|
|
||
|
## Weiteres:
|
||
|
### Der Reponame "main" ist voreingestellt, es gehen auch andere.
|
||
|
> Am Beispiel dieses Readme.md:
|
||
|
> _Setup:_
|
||
|
> ```
|
||
|
> 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
|
||
|
> ```
|
||
|
> _Bash:_
|
||
|
> ```
|
||
|
> $ vi README.md
|
||
|
> $ git push -u origin main
|
||
|
> Branch 'main' folgt nun Remote-Branch 'main' von 'origin'.
|
||
|
> Everything up-to-date
|
||
|
> $ 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 Setup
|
||
|
|
||
|
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](https://www.media-techport.de/2023/08/howto-ssh-schluessel-fuer-gitea-einfache-einrichtung/ "HP Patrick Asmus")
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
## 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.
|