git setup zrschosen
This commit is contained in:
commit
aa38f2a948
2 changed files with 242 additions and 0 deletions
68
README.md
Normal file
68
README.md
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
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](./michi_git.md "Git isz doof")
|
||||||
|
|
||||||
|
|
||||||
|
### 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](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.
|
||||||
|
|
174
michi_git.md
Normal file
174
michi_git.md
Normal file
|
@ -0,0 +1,174 @@
|
||||||
|
# Git
|
||||||
|
|
||||||
|
Git ist nen Versionverknalltütenprogramm was eder brauch oder auch nicht.
|
||||||
|
|
||||||
|
## Inhaltsverzeichniss
|
||||||
|
1. [Git Configurieren](#git-cofigurieren)
|
||||||
|
2. [Start](#start)
|
||||||
|
3. [Daten hinzufügen und entfernen](#daten-hinzufügen-und-entfernen)
|
||||||
|
4. [Neue Version an Git geben und überprüfen](#neue-version-an-git-geben-und-überprüfen)
|
||||||
|
5. [Mit Git Servern arbeiten](#mit-git-servern-arbeiten)
|
||||||
|
6. [push und pull](#push-und-pull)
|
||||||
|
7. [Branches](#branches)
|
||||||
|
8. [Grafisches Git](#grafisches-git)
|
||||||
|
|
||||||
|
## Git Cofigurieren
|
||||||
|
|
||||||
|
>### Nutzername
|
||||||
|
>```
|
||||||
|
>git config user.name "<user-name>"
|
||||||
|
>```
|
||||||
|
>>- Setzt den Nutzername für das Aktuelle Repo
|
||||||
|
>>- Wenn kein Name angegeben ist wird der aktuelle Festgelegter Name ausgegeben
|
||||||
|
>>- Wen nach config ein --global gesetzt wird dann wird das für die ganze git installation des Benutzer festgelegt oder usgegeben
|
||||||
|
|
||||||
|
>### E-Mail
|
||||||
|
>```
|
||||||
|
>git config user.name "<e-mail>"
|
||||||
|
>```
|
||||||
|
>>- Setzt die E-Mail für das Aktuelle Repo
|
||||||
|
>>- Wenn keine E-Mail angegeben ist wird der aktuelle Festgelegte E-Mail ausgegeben
|
||||||
|
>>- Wen nach config ein --global gesetzt wird dann wird das für die ganze git installation des Benutzer festgelegt oder usgegeben
|
||||||
|
|
||||||
|
## Start:
|
||||||
|
Ein Repo ist ein Ding wo deine Projektdaten gespeichert sind.
|
||||||
|
|
||||||
|
>### Initialisieren deines Repos:
|
||||||
|
>```
|
||||||
|
>git init
|
||||||
|
>```
|
||||||
|
|
||||||
|
>### Downloade ein existierenes Repo:
|
||||||
|
>```
|
||||||
|
>git clone <url>
|
||||||
|
>```
|
||||||
|
Nun kannst du mit Git arbeiten z.b. Daten Erstellen und bearbeiten
|
||||||
|
|
||||||
|
## Daten hinzufügen und entfernen:
|
||||||
|
|
||||||
|
>### Füge Daten zum Repo hinzu:
|
||||||
|
>```
|
||||||
|
>git add <datei>
|
||||||
|
>```
|
||||||
|
>>Beispiel:
|
||||||
|
>>```
|
||||||
|
>>git add README.md
|
||||||
|
>>git add .
|
||||||
|
>>git add ./README.md
|
||||||
|
>>```
|
||||||
|
|
||||||
|
>### Entferne Daten von Repo:
|
||||||
|
>```
|
||||||
|
>git rm <datei>
|
||||||
|
>```
|
||||||
|
>>Beispiel:
|
||||||
|
>>```
|
||||||
|
>>git rm README.md
|
||||||
|
>>git rm .
|
||||||
|
>>git rm ./README.md
|
||||||
|
>>```
|
||||||
|
|
||||||
|
## Neue Version an Git geben und überprüfen:
|
||||||
|
>### Commit erstellen:
|
||||||
|
>```
|
||||||
|
>git commit <message>
|
||||||
|
>```
|
||||||
|
>> eine Message ist Pflicht!
|
||||||
|
|
||||||
|
>### Log anschauen
|
||||||
|
>```
|
||||||
|
>git log
|
||||||
|
>```
|
||||||
|
>> Zeigt dir deine commits an und auch was du geändert hast
|
||||||
|
|
||||||
|
|
||||||
|
>### Status ansehen
|
||||||
|
>```
|
||||||
|
>git status
|
||||||
|
>```
|
||||||
|
>> Zeigt dir deine Aktuellen Änderungen an und den aktuelen Branch
|
||||||
|
|
||||||
|
## Mit Git Servern arbeiten:
|
||||||
|
>### Füge ein entferntes Repo hinzu:
|
||||||
|
>```
|
||||||
|
>git remote add origin <url>
|
||||||
|
>```
|
||||||
|
>>- Die adresse muss mit .git enden
|
||||||
|
>>- origin ist die Bezeichnung des entfernen Repos
|
||||||
|
|
||||||
|
>### Entferne ein entferntes Repo :
|
||||||
|
>```
|
||||||
|
>git remote rm origin <url>
|
||||||
|
>```
|
||||||
|
|
||||||
|
## push und pull:
|
||||||
|
>### push ladet den Branch auf den Server:
|
||||||
|
>```
|
||||||
|
>git push origin main
|
||||||
|
>```
|
||||||
|
>>- origin ist die Beschreibung des Remote Servers
|
||||||
|
>>- main Ist Der Branch der gepusht werden soll
|
||||||
|
>>- push(en) = drücken(de)
|
||||||
|
|
||||||
|
>### pull ladet den Branch von Server:
|
||||||
|
>```
|
||||||
|
>git pull origin main
|
||||||
|
>```
|
||||||
|
>>- origin ist die Beschreibung des Remote Servers
|
||||||
|
>>- main Ist Der Branch der gepusht werden soll
|
||||||
|
>>- pull(en) = ziehen(de)
|
||||||
|
|
||||||
|
## Branches
|
||||||
|
|
||||||
|
Branches auch Zweige sind einfach mehrere Arbeitsflächen.
|
||||||
|
|
||||||
|
>### Neuen Branch erstellen
|
||||||
|
>```
|
||||||
|
>git branch <branch-name>
|
||||||
|
>```
|
||||||
|
>>- Erstellt einfach ein Abbild von den aktuellen Branch
|
||||||
|
>>- Du bist aber immer noch auf den Aktuellen Branch
|
||||||
|
|
||||||
|
>### Branch wecheln
|
||||||
|
>```
|
||||||
|
>git checkout <branch-name>
|
||||||
|
>```
|
||||||
|
>> Nun hast du den Branch gewechselt
|
||||||
|
|
||||||
|
>### Branches zusammenführen
|
||||||
|
>```
|
||||||
|
>git merge <branch-name>
|
||||||
|
>```
|
||||||
|
>>- Nimmt die Änderungen von den angegebenen Branch und Schiebt sie auf den aktuellen Branch
|
||||||
|
|
||||||
|
>### Branches loschen
|
||||||
|
>```
|
||||||
|
>git branche -d <branch-name>
|
||||||
|
>```
|
||||||
|
>>- Du darfst blos nicht in diesen Branch sein also mit checkout in ein anderen Branch wechseln
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Grafisches Git
|
||||||
|
|
||||||
|
Falls man den überblick verliehrt ist es hilfreich sich Das Repo grafisch anzusehen
|
||||||
|
|
||||||
|
>### Git Gui
|
||||||
|
>```
|
||||||
|
>git gui
|
||||||
|
>```
|
||||||
|
>> Grafische Benutzeroberfläche mit vielen Features
|
||||||
|
|
||||||
|
>### Gitk
|
||||||
|
>```
|
||||||
|
>gitk
|
||||||
|
>```
|
||||||
|
>> Eher um die Vergangenheit des Projetes anzuschauen
|
||||||
|
|
||||||
|
>### Entwicklerplattformen
|
||||||
|
>Viele Entwicklerplattformen haben eine git intigration
|
||||||
|
>>- Visual studio Code
|
||||||
|
>>- Jetbrains IDE
|
||||||
|
>>- ...
|
Loading…
Reference in a new issue