Merge pull request 'adding old tipps' (#1) from Megamichi/Gulmwiki:main into main
Reviewed-on: #1
This commit is contained in:
commit
a234879d22
4 changed files with 380 additions and 1 deletions
10
README.md
10
README.md
|
@ -4,4 +4,12 @@ Mal gucken, hoffentlich wird das hier das neue Gulmwiki.
|
|||
|
||||
Wiki-Admin: [[The Wobbler]]
|
||||
|
||||
Blubb (test)
|
||||
|
||||
## Tipps und Tricks zu verschiedenen Sachen
|
||||
|
||||
### Git
|
||||
- [Git README](./tipps_und_tricks/git/git.md "Git ist doof")
|
||||
- [YT Tutorial (Morpheus)](https://youtube.com/playlist?list=PLNmsVeXQZj7rbmmqb1Lt_RGU4DEhelTrR&si=U-ldkXilfRgSsBYn)
|
||||
|
||||
### Python
|
||||
- [One Line Python Scripts](./tipps_und_tricks/python/oneline.md)
|
80
tipps_und_tricks/git/git.md
Normal file
80
tipps_und_tricks/git/git.md
Normal file
|
@ -0,0 +1,80 @@
|
|||
# Alles rund um Git
|
||||
|
||||
## Readme's
|
||||
- [Michis Git Verstännis](michi_git "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.
|
||||
|
||||
## Dateien komplett aus der History löschen
|
||||
|
||||
Wenn man mal Dateien comittet hat, diese aber aus allen Commits wieder entfernen möchte: \
|
||||
https://www.baeldung.com/ops/git-remove-file-commit-history
|
188
tipps_und_tricks/git/michi_git.md
Normal file
188
tipps_und_tricks/git/michi_git.md
Normal file
|
@ -0,0 +1,188 @@
|
|||
# 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
|
||||
|
||||
## Forks und Pull Requests
|
||||
|
||||
ein Fork ist eine unabhängige Kopie eines Repos.
|
||||
|
||||
Ein Pull Request ist eine aufforderung an Die Mittarbeiter des original Repos und den Fork zu mergen also um alle änÄderungen des Forkes in das original Repo zu übernehmen.
|
||||
|
||||
>### Fork erstellen und bearbeiten
|
||||
>1. In der Weboberfläche oben rechts auf Fork klicken
|
||||
>2. Den erstellten Fork in Profil suchen und git url oder ssh kopieren
|
||||
>3. In der Konsole git clone ausführen
|
||||
>4. Änderungen machen
|
||||
>5. Pushen
|
||||
|
||||
>### Pull Request erstellen
|
||||
>1. In er Weboberfläche das original Repo öffnen
|
||||
>2. In Tab Pull Request ein Pull Request erstellen und den passenden Start und as passende Ziel Repo auswählen und passende Infos hinzufügen
|
||||
>3. Auf erstetellen klicken und Mit en Entwicklern besprechen was man damit nun tut
|
||||
|
||||
## 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
|
||||
>>- ...
|
103
tipps_und_tricks/python/oneline.md
Normal file
103
tipps_und_tricks/python/oneline.md
Normal file
|
@ -0,0 +1,103 @@
|
|||
# Python Programme in einer Zeile code schreiben
|
||||
|
||||
Wenn du Scripte bis zur einer Zeile Code verkürzen möchtest; Hab ich hier ein paar Möglichkeite aufgeschrieben.
|
||||
Eine ist Lambda, weiteres findest du in Inhaltsverzeichniss:
|
||||
|
||||
## Inhaltsverzeichnis:
|
||||
1. [Lambda](##-lambda-funktionen-grundlage)
|
||||
2. [Semikolons](##-semikolon)
|
||||
3. [Listen definieren](#-list-comprehension)
|
||||
4. [Mehrfachzuwesungen](##-variablen-mehrfachzuwesungen)
|
||||
|
||||
## Lambda Funktionen Grundlage
|
||||
Lambda wird benutzt um eine **Anonyme Funktion** zu definieren
|
||||
> Beispiel:
|
||||
> ```
|
||||
> funcbla = <lambda-ausdruck>
|
||||
> funcbla()
|
||||
> ```
|
||||
|
||||
Oder du kannst eine lambda Funktion direkt ausführen:
|
||||
> `(<lambda-ausdruck>)(<zu-übergebene-variablen>)`oder `<lambda-ausdruck(ohne "lambda : <vars>")` <-- **locale variablen werden genutzt**
|
||||
### Lambda Ausdrücke:
|
||||
man definiert eine Ausdruck so:
|
||||
> ```
|
||||
> lambda <vars> : <func1()> if <statement> else <func2>
|
||||
> ```
|
||||
|
||||
> Beispiel:
|
||||
> ```
|
||||
> print((lambda x : "ungerade" if x%2 else "gerade")(123))
|
||||
> ```
|
||||
> Output: `ungerade`
|
||||
>
|
||||
> **Wenn du eine Funktion in einen Lambda Ausdruck verwendest, muss sie eine Variable zurückgeben.
|
||||
> Lambda gibt entweder `ungerade` oder `gerade` im Beispiel and print() zurück.**
|
||||
|
||||
|
||||
## Semikolon
|
||||
Nutze ein `;` um mehrere Funktionen in einer Zeile zu verketten
|
||||
> Beispiel:
|
||||
> ```
|
||||
> func1()
|
||||
> func2()
|
||||
> ```
|
||||
> wird zu:
|
||||
> ```
|
||||
> func1();func2()
|
||||
> ```
|
||||
|
||||
|
||||
# List Comprehension
|
||||
Mit List Comprehensions kann man Listen in einer zeiler definieren und darüber iterieren:
|
||||
> Beispiel:
|
||||
> ```
|
||||
> list1 = []
|
||||
> for x in range(10):
|
||||
> list1.append(x)
|
||||
> ```
|
||||
> wird zu:
|
||||
> ```
|
||||
> list1 = [<vart-to-add(or you can use Variables like "x")> for x in range(10)]
|
||||
> ```
|
||||
|
||||
Mann kan auch if statements in Comprehentions nutzen:
|
||||
```
|
||||
newlist = [expression for item in iterable if condition == True]
|
||||
```
|
||||
> Beispiel:
|
||||
> ```
|
||||
> list1 = ["a", "b", "c", "d", "e"]
|
||||
> list2 = [x for x in fruits if "a" in x]
|
||||
> ```
|
||||
> ^ Addiert Das Objekt x zu list2 wenn `if "a" in x` also eine "a" in den String Objekt ist.
|
||||
|
||||
|
||||
## Variablen Mehrfachzuwesungen
|
||||
variablen sind was sehr nützliches was nicht fehlen darf!
|
||||
Man kann sie auf verschiedene arten zuwei?en, eine davon ist mit Mehrfachzuweisungen:
|
||||
> ```
|
||||
> var1 = 1
|
||||
> var2 = 2
|
||||
> var3 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
> ```
|
||||
> wir zu:
|
||||
> ```
|
||||
> var1, var2, var3 = 1, 2, [x for x in range(10]```
|
||||
|
||||
### Stapel = Stapel
|
||||
In Grunde kann man mit Mehrfachzuweisungen Stapel(Tuple) entpacken oder packen:
|
||||
> Packen eines Tupels in eine Variable
|
||||
> ```
|
||||
> var1 = a,b,c
|
||||
> ```
|
||||
> soviel wie:
|
||||
> "var = tulple"
|
||||
> ^ "Anfenger Hinweiss: Wenn man das untenstehenliegene Prinzip verstanden hat ist man flexibler"
|
||||
|
||||
> Packen eines Tupels in einen Tuple:
|
||||
> ```
|
||||
> var1, var2, var3 = 1, 2, 3
|
||||
> ```
|
||||
> soviel wie:
|
||||
> "tuple = tulple"
|
Loading…
Add table
Add a link
Reference in a new issue