Tool.Yun
Handy værktøjer for udviklere
Beskær billede
Billede til SVG (potrace)
Billedfarveinverter
Billedformatkonverter
Billedsammenligning
Billedstørrelsesjustering
EXIF/Metadata/GPS/JPEG-kvalitetslæser for billeder
Fjern EXIF
Fjern billedets baggrund
GIF til MP4
HEIC-konverter
ICO/PNG-konverter
Kamera optager
OCRize billede og PDF
SVG-forhåndsvisning
Vandmærke
AGE Kryptografi
Argon2 Hasher
Bcrypt
Bech32-encoder/dekoder
CRC-beregner
CSR-generator
Certifikat-/nøgleparser
Dekryptering af Ansible Vault-kryptering
ECDSA-nøglepargenerator
Ed25519 nøglepargenerator
Filhasher
HMAC generator
Hash-tekst
JWT fortolker
JWT-generator
Jasypt-strengkryptering
Krypter / dekrypter tekst
Niceware Bytes til adgangskode
PGP-filkryptering
PGP-kryptering
PGP-nøglegenerator
Paseto/PASERK Lokal
Paseto/PASERK Offentlig/Privat
RSA nøglepar generator
RSA-kryptering
RSA/DSA/ECDSA-underskriver og -verifikator
SAML Parser
SSL-certifikatkonverter
Shamirs hemmelige deling
X509 certifikatgenerator
BMI-beregner
Forklar Shell-kommandoen
IBAN validator og fortolker
IES belysningsretningslinjer
ISBN-validator og parser
ISO 3166 landekodesøgning
ISO 639-søger
Kalenderkonverter
Kompatibilitet med softwarelicenser
Kreditkorttjekker
Luhn-validator
Løbetempoberegner
Momsnummervalidator
Online ordbog
RMB Store Bogstaver Konverter
SLA-beregner
Telefon fortolker og formatter
Unicode-søgning
Valutaomregner
Cron/Ugedagsalarm
Dageberegner
Dato+Varighedsberegner
Dato-tid konverter
ETA beregner
Hvilken dag?
ICAL-filparser
ICAL-generator
Nedtælling
Stop-ur
TTL-beregner
Tidsalarm
Tidszonekonverter
Ugetalkonverter
Varighedsberegner
iCal-fusion
Docker Compose Format Converter
Docker Compose Validator
Docker Compose til .env-fil
Docker Compose til Docker-kørselskonverter
Docker Compose til Quadlets
Docker Pangolin-etiketter
Docker run til Docker compose konverter
Docker-billeddownloader
Docker-inspektion for at køre Docker
Docker-kørsel til Kubernetes
Docker-kørsel til Quadlets
Docker-skrivning til Kubernetes
Dockerfile-etiketgenerator
Kubernetes RBAC-generator
Traefik Docker Compose Maker
Amortiseringsberegner
Accelerationskonverter
Arealenhedsomregner
Energienhedsomregner
Fitnesscomputer
Frekvensomformer
Hastighedskonverter
Illuminanskonverter
Kraftenhedskonverter
Længdeenhedskonverter
Madenergikonverter
Masseenhedsomregner
SI-præfikser konverter
Strømomformer
Temperaturkonverter
Trykenhedskonverter
Vinkelenhedskonverter
Volumenenhedskonverter
Volumenstrømningshastighedskonverter
Adgangskodegenerator
BIP39 adgangskode generator
Diceware adgangskodegenerator
Generator for tilfældige tal
NanoID-generator
Numeronym generator
OTP kode generator
Postkodegenerator
Token generator
UUID generator
UUID-konverter
CSV til JSON
JS til JSON konverter
JSON Linter
JSON difference
JSON minificering
JSON prettify og formatér
JSON til .env
JSON til C#
JSON til CSV
JSON til JS konverter
JSON til Java-enhed
JSON til MessagePack
JSON til TOML
JSON til TS
JSON til XML
JSON til YAML konverter
JSON til at gå
JSON til data
JSON til objekt
JSON-editor
JSON-fusion
JSON-sorteringsmaster
JSON-udjævning/ophævelse af udjævning
Jq/JSONPath-tester
Json Escaper/Unescaper
Json til PHP-array
Json til PHP-kode
Json til Python
Json til SQL DDL
Json til skema
Json-forespørgsel
Json-strengkonverter
Json-størrelsesanalysator
Meddelelsespakke til JSON
ObjGen til JSON
PHP-Array til JSON
tools.json-patch.name
Base64 Hex array-encoder/dekoder
Base64 filkonverter
Base64 streng koder/afkoder
Csv til data
E-mail normalisering
Egenskabskonverter
Energiforbrugs- og udgiftscomputer
Excel til data
Geografiske koordinatkonverter
Heltalsbase-konverter
Konverter til datalagringsenhed
Konverter til konvolutvariabler
Mange enheder konverter
Romertal konverter
Tekst til UTF-8 binær
Tekst til Unicode
Torrent til magnet
ULID generator
Unicode-tegn til Java-enheder konverter
dBm mW-konverter
Binær lommeregner
Drikkepengeberegner
Matematik OCR
Matematik evalueringsværktøj
Matematikformatkonverter
Trigonometrisk/ligningskurvevisualisator
Cron-udtryksbygger
Benchmark bygger
Billedformatberegner
Geografisk afstandsberegner
Procent lommeregner
Epub til Markdown
Forhåndsvisning af Markdown
Generator for markdown-tabel
HTML til markdown
Indsæt som Markdown
Markdown Lorem Ipsum
Markdown Table Pretifier
Markdown til HTML
Markdown til tekst
Markdown-editor
Markdown-indholdsfortegnelsesgenerator
Nedskrivning til DOCX
Nedskæring til data
Nedsættelsesforskel
tools.markdown-format-converter.name
ARPA-dekoder
Apache LogRotate Generator
BIMI DNS-generator
Basic auth generator
Chmod beregner
Cloudflare DNS/RDAP-forespørgsler
Crontab generator
DKIM DNS-generator
DMARC DNS-generator
DNS-forespørgsler
DNSBL-tjekker
Dataoverførselshastighedsberegner
FStab-generator
Generator for nedlukningskommandoer
HAS Desinfektionsmiddel
HDD-lommeregner
HTAccess-generator
Heltal til IPv4/IPv6
Htpasswd/htaccess-generator
IP-geografisk placering
IP-undernets ekskluderingsberegner
IPv4 adressekonverter
IPv4 rækkeudvider
IPv4 subnet beregner
IPv4-6/IPRange/CIDR i IPRange/CIDR/IPMaske
IPv4-undernetliste
IPv4/6-område til CIDR(er)-beregner
IPv6 ULA generator
IPv6-adressekonverter
Iptables Generator
Ipv4/6 CIDR til IP-områdeberegner
Ipv6-subnetberegner
Kodeords styrke analysator
Krøllekommandogenerator
Linearisering af Shell-kommandoer
MAC adresse generator
MAC-adressekonverter
Mikrofontester
Min IP-adresse
Multi-link downloader
Nginx-formateringsprogram
Option43-generator
PTR DNS-generator
Ping
Portnumre
Punycode-konverter
RAID-beregner
RAID-pålidelighedsberegner
Rsync-generator
SIP-autorisation
SPF DNS-generator
Shell-kommandoformatering
Slå MAC adresse op
TCP/UDP-porttester
Tilfældig port-generator
UFW-kommandogenerator
Visuel subnetberegner
WPA PSK-generator
Websocket-testning
Whois-tjekker
Wireguard-konfigurationsgenerator
X-VR-SpamCause-dekoder
ZPOOL RAID-beregner
ZPool snydeark
Zxcvbn adgangskodestyrke
firewalld kommandolinjegenerator
tools.restic-command-generator.name
tools.url-redirection-checker.name
HTML til PDF
PDF signaturkontrol
PDF-kompressor
PDF-tekstudtrækker
Pdf Linearize/FastWeb
Pdf-dekryptering og oplåsning
Pdf-kryptering
Pdf-sammenkædning
Pdf-sideudtrækker
ActiveDirectory LDAP-egenskabssøger
Cookie-parser
DMARC-rapportanalysator
DNS-forplantningstest
DNS-tester
Død pixel-tester
E-mail-parser
EMV TLV-dekoder
ETH-transaktionsdekoder
Filtypedetektor
Flydende kommatalkonverter
GZip/Deflate-konverter
HTTPS-tester
Hex-encoder/dekoder
Keycode info
MIME-kodningskonverter
Maskering af følsomme data
Middle-Endian-konverter
Modstandsberegner
MongoDB ObjectId-konverter
Nmap-kommandobygger
Outlook MSG-parser
Outlook Safelink-dekoder
Parketfiler Læser
Parser af afviste e-mails
RJ45 Cat6-ledningsføringssnydark
SMART Raw-konverter
Seriel portkonsol
SharePoint Share URL-afkoder
Snefnug-ID-udtrækker
TCDump-generator
Teksttegnsætdetektor/dekoder
URL fortolker
URL-bygger
Udvider af korte URL'er
键盘测试器
Almindelig Regex-snydeark
Bash snydeark
CSS-selektorer snydeark
Docker Compose cheatsheet
Docker SWARM snydeark
Docker-snydeark
Dockerfile snydeark
Git Semantic Commit Cheatsheet
Git snydeark
JSONPath Syntaks Cheatsheet
Jq snydeark
K8s snydeark
Markdown-snydeark
Nano-snydeark
Nginx snydeark
Powershell snydeark
Regex snydeark
Sed snydeark
Snydeark til skærmkommandoer
Tmux-kommando-snydeark
VIM-snydeark
XPath-syntaks-cheatsheet
Zellij-kommando-snydeark
chmod-kommando-snydeark
Kortvælger
Lykkehjul
Møntflipper
Terningkaster
GTIN-validator
QR kode generator
QR-kodedekoder
QR-kontaktinfogenerator
Stregkodegenerator
Stregkodelæser
WiFi QR kode generator
tools.epc-qrcode-generator.name
TOML Linter
TOML til JSON
TOML til YAML
AI-promptsplitter
ASCII kunsttekstgenerator
Billede til ASCII-kunst
Case konverter
Citationsgenerator
Emoji vælger
Finder af duplikerede linjer
Forskellige ord
GPT-token-encoder/dekoder
GPT-tokenestimator
Havfrueeksportør
I og L Checker
JSON til TOON
Levenshtein-lommeregner
Liste konverter
Lister Sammenlign
Lorem ipsum generator
Mappestrukturdiagram
Morsekodekonverter
Pak filer til AI
RSVP-læser
Regex-tester
Runekonverter
Sammenlign skrifttyper
Sed-kommandogenerator
Smart teksterstatning og linjebryder
Social linkdeler
Streng obfuskator
TOON til JSON
Tabulator til mellemrum
Tastaturlayoutkonverter
Tekst difference
Tekst til NATO-alfabetet
Tekst til Unicode-navne
Tekstoversætter
Tekststatistik
Tilfældig linjevælger
Udtræk tekst fra HTML
Unicode til GSM-7
Unicode-formatering
Zalgo Generator/Banner
ANSI Escape Tester
API-tests
CSS/JS Forskøn og minimer
Citatkonverter
Cli-kommandoeditor
Databaseoprettelsesværktøj
Databasetabelgenerator
Dataforfalsker
Django Secret Generator
Favicon-generator
Fildeler
GitIgnore-generator
Gitaattributgenerator
HEX-filkonverter
Javascript Obfuscator
Javascript Prettifier
Javascript Unfuscator/Unpacker
Json til Protobuf
Json til SQL INSERT
Json til Typescript
K6 load test script generator
Kode/Scripts-markør
Krøllekonverter
Mailto-generator
Open graph meta generator
Picomatch-tester
Pomodoro-timer
SQL prettify og formater
SQL-minifikator
SQL-parametergenerator
Stacktrace pænere
Strengeudløser
Stringgenerator til databaseforbindelse
Swagger UI-tester
Billede til CSS
CSS Gradientgenerator
CSS XPath-konverter
CSS-enhedskonverter
CSS-pænere
Enhedsoplysninger
Farve konvertering
Farvehjul
Farvekontrastkontrol
HTML WYSIWYG editor
HTML til XHTML
HTML til data
HTML-minimer
HTTP status koder
Html-forsmagningsværktøj
Html-renser
Kod/afkod URL-formatteret strenge
MIME typer
REM Pixel-konverter
SVG pladsholder generator
Slugify streng
URL-fanger
URL-renser
UTM URL-generator
Undslip HTML
Url-tekstsøgningsfragmentopretter
User-agent fortolker
ObjGen til HTML
XML formatter
XML til JSON
XML-linter
XPath-tester
XSLT-tester
YAML prettify og format
YAML til JSON konverter
YAML til TOML
YAML-fusion
YAML-udjævning/ophævelse af udjævning

Git snydeark

Git er et decentraliseret versionsstyringssoftware. Med dette snydeark får du hurtig adgang til de mest almindelige git-kommandoer.

Git is a distributed version control system: every clone is a full repository with its own history, branches and tags. This is a quick reference for the commands that come up daily — placeholders are written as <file>, <branch>, <commit> and <url>.

💡 Every command below has its own help (git rebase --help), and the destructive ones (clean, push, rm, mv) take -n / --dry-run to preview what would happen.

⚙️ Configuration

# identity used on every commit
git config --global user.name "<name>"
git config --global user.email "<email>"

# name of the branch created by git init
git config --global init.defaultBranch main

# editor for messages, rebases, ...
git config --global core.editor "code --wait"

# rebase instead of merging on pull
git config --global pull.rebase true

# plain 'git push' works on new branches
git config --global push.autoSetupRemote true

# every setting and the file it came from
git config --list --show-origin

# override for this repository only
git config --local user.email "<work-email>"

Handy aliases:

git config --global alias.st status

git config --global alias.co checkout

git config --global alias.lg "log --oneline --graph --decorate --all"

git config --global alias.last "log -1 --stat"

🚀 Get Started

# create a repository in the current directory
git init

# clone a remote repository
git clone <url>

# clone into a specific directory
git clone <url> <directory>

# clone and check out one branch
git clone --branch <branch> <url>

# shallow clone, latest commit only
git clone --depth 1 <url>

# clone including submodules
git clone --recurse-submodules <url>

# what is staged, changed, untracked
git status

# the same, in short format
git status -sb

➕ Staging

# stage a specific file
git add <file>

# stage everything under the current directory
git add .

# stage everything in the repository, deletions included
git add -A

# interactively stage individual hunks
git add -p <file>

# stage modifications and deletions, not new files
git add -u

# unstage, keep the changes in the working tree
git restore --staged <file>

# stop tracking a file, keep it on disk
git rm --cached <file>

# rename and stage in one step
git mv <old> <new>

# which .gitignore rule is hiding this file?
git check-ignore -v <file>

✅ Commit

# commit what is staged
git commit -m "<message>"

# stage tracked changes and commit
git commit -am "<message>"

# rewrite the last commit (message + content)
git commit --amend

# amend without changing the message
git commit --amend --no-edit

# fixup commit, squashed later by --autosquash
git commit --fixup <commit>

# add a Signed-off-by trailer
git commit -s -m "<message>"

# empty commit, e.g. to trigger CI
git commit --allow-empty -m "<message>"

⚠️ --amend rewrites history. Only amend commits that have not been pushed to a shared branch.

🌿 Branches

# list local branches
git branch

# local and remote-tracking branches
git branch -a

# last commit and upstream of each branch
git branch -vv

# switch to an existing branch
git switch <branch>

# create a branch and switch to it
git switch -c <branch>

# jump back to the previous branch
git switch -

# older equivalent of switch -c
git checkout -b <branch>

# branch off a specific commit or tag
git switch -c <branch> <commit>

# rename a branch
git branch -m <old> <new>

# delete a merged branch
git branch -d <branch>

# force-delete an unmerged branch
git branch -D <branch>

# branches already merged into HEAD (safe to delete)
git branch --merged

🔀 Merging & Rebasing

# merge a branch into the current one
git merge <branch>

# always create a merge commit
git merge --no-ff <branch>

# bring in the changes as one staged change set
git merge --squash <branch>

# bail out of a conflicted merge
git merge --abort

# replay the current branch on top of another
git rebase <branch>

# interactively squash, reword, drop, reorder commits
git rebase -i HEAD~5

# apply the --fixup commits automatically
git rebase -i --autosquash <base>

# resume after resolving conflicts
git rebase --continue

# drop the conflicting commit and continue
git rebase --skip

# return to the state before the rebase
git rebase --abort

# resolve conflicts with the configured merge tool
git mergetool

Resolving a conflict:

# 1. see which files conflict
git status

# 2. edit them and remove the <<<<<<< ======= >>>>>>> markers

# 3. mark each resolved file
git add <file>

# 4. resume (during a merge: git merge --continue)
git rebase --continue

⚠️ Rebasing rewrites commits. Never rebase a branch other people are already working on.

🌍 Remotes & Syncing

# list remotes and their URLs
git remote -v

# add a remote
git remote add origin <url>

# point a remote somewhere else
git remote set-url origin <url>

# rename a remote
git remote rename <old> <new>

# forget a remote
git remote remove <name>

# download objects and refs, change nothing
git fetch origin

# fetch everything, drop deleted remote branches
git fetch --all --prune

# fetch + merge (or rebase) the upstream branch
git pull

# replay local commits on top of the upstream
git pull --rebase

# push the current branch
git push

# push and set the upstream tracking branch
git push -u origin <branch>

# force-push, but refuse to clobber new commits
git push --force-with-lease

# delete a remote branch
git push origin --delete <branch>

# push all tags
git push origin --tags

⚠️ Prefer --force-with-lease over --force: it aborts if someone else pushed in the meantime.

📦 Stashing

# shelve tracked changes and clean the working tree
git stash

# include untracked files
git stash -u

# stash specific paths with a label
git stash push -m "<message>" <file>

# list every stash
git stash list

# show a stash as a patch
git stash show -p stash@{0}

# re-apply the newest stash and drop it
git stash pop

# re-apply a specific stash, keep it in the list
git stash apply stash@{2}

# create a branch from a stash and apply it
git stash branch <branch>

# delete one stash
git stash drop stash@{0}

# delete all stashes
git stash clear

🔍 Inspecting

# the whole history as a compact graph
git log --oneline --graph --decorate --all

# history of a file, with diffs
git log -p <file>

# history of a file, following renames
git log --follow <file>

# filter by date and author
git log --since="2 weeks ago" --author=<name>

# search commit messages
git log --grep="<pattern>"

# commits that added or removed a string
git log -S"<string>"

# commits in b that are not in a
git log <branch-a>..<branch-b>

# commit count per author
git shortlog -sn

# a single commit with its diff
git show <commit>

# working tree vs. index
git diff

# index vs. last commit
git diff --staged

# between two commits
git diff HEAD~1 HEAD

# changes since the branches diverged
git diff <branch-a>...<branch-b>

# summary of changed files
git diff --stat

# who last touched every line
git blame <file>

# blame a range of lines only
git blame -L 10,40 <file>

# search the tracked files
git grep "<pattern>"

# every position HEAD has had — your safety net
git reflog

🍒 Cherry-pick

# apply one commit onto the current branch
git cherry-pick <commit>

# apply a range of commits
git cherry-pick <commit-a>^..<commit-b>

# apply without committing
git cherry-pick -n <commit>

# after resolving conflicts
git cherry-pick --continue

# undo the whole cherry-pick
git cherry-pick --abort

🏷 Tags

# list tags
git tag

# list matching tags
git tag -l "v1.*"

# annotated tag on HEAD
git tag -a v1.0.0 -m "Release v1.0.0"

# tag an older commit
git tag -a v1.0.0 <commit>

# show a tag and its commit
git show v1.0.0

# push one tag
git push origin v1.0.0

# push all tags
git push origin --tags

# delete a local tag
git tag -d v1.0.0

# delete a remote tag
git push origin --delete v1.0.0

# closest tag to the current commit
git describe --tags

🧯 I’ve Made a Mistake

# fix the last commit message
git commit --amend

# undo the last commit, keep the changes unstaged
git reset HEAD~1

# undo the last n commits, keep the changes
git reset HEAD~<n>

# undo the last commit and throw the changes away
git reset --hard HEAD~1

# discard changes to one file
git restore <file>

# discard every uncommitted change
git restore .

# restore a file as it was at a commit
git restore --source=<commit> <file>

# undo a commit with a new commit (safe when shared)
git revert <commit>

# stage the revert without committing
git revert -n <commit>

# make the local branch match the remote (fetch first)
git reset --hard origin/<branch>

# find the lost commit...
git reflog

# bring a lost commit back on a new branch
git switch -c <branch> <commit>

git reset modes at a glance:

ModeMoves HEADIndex (staging)Working treeUse it to
--soft✅untoucheduntouchedRecommit differently, keep everything staged
--mixed✅resetuntouchedUnstage but keep the edits (default)
--hard✅resetresetThrow the changes away entirely ⚠️

💡 Nothing committed is really lost for ~90 days: git reflog lists every commit HEAD pointed at, even on deleted branches.

🧹 Cleaning

# dry run: what would be removed
git clean -n

# remove untracked files and directories
git clean -fd

# also remove ignored files (build output, node_modules)
git clean -fdx

# compress and tidy the object database
git gc

# drop unreachable objects
git prune

# check the repository for corruption
git fsck

🐛 Debugging

# begin a binary search for a bad commit
git bisect start

# a commit that is broken (often HEAD)
git bisect bad <commit>

# a commit that was fine
git bisect good <commit>

# let a test script decide automatically
git bisect run <command>

# end the search and return to the original HEAD
git bisect reset

# follow lines moved from other files
git blame -C <file>

🧩 Submodules & Worktrees

# add a submodule
git submodule add <url> <path>

# check out every submodule
git submodule update --init --recursive

# update submodules to their latest commit
git submodule update --remote

# commit each submodule sits on
git submodule status

# check out a second branch side by side
git worktree add ../<dir> <branch>

# list linked working trees
git worktree list

# remove one again
git worktree remove ../<dir>

🧠 Miscellaneous

# rename the local default branch
git branch -m master main

# graph of merge commits only
git log --graph --merges

# export a snapshot without .git
git archive -o release.zip HEAD

# contributions per author
git shortlog -sn --no-merges

# full SHA of the current commit
git rev-parse HEAD

# name of the current branch
git rev-parse --abbrev-ref HEAD

# repository size on disk
git count-objects -vH

# enable background repacking (Git 2.30+)
git maintenance start

Update a feature branch with the latest mainline:

git switch <branch>
git fetch origin <main-branch>
git rebase origin/<main-branch>   # or: git merge origin/<main-branch>

📚 Resources

  • Official documentation
  • Pro Git (free book)
  • Interactive branching tutorial
  • Dangit, Git!?! — recovering from the classic mistakes