Tool.Yun
Uirlisí úsáideacha do fhorbróirí
Áireamhán Amúchta
Bileog Cheat Bash
Bileog Cheat Comhréire JSONPath
Bileog Cheat Comhréire XPath
Bileog Cheat Docker
Bileog Cheat Jq
Bileog Cheat K8s
Bileog Cheat Markdown
Bileog Cheat Nano
Bileog Cheat Ordú Scáileáin
Bileog Cheat Ordú Tmux
Bileog Cheat Ordú Zellij
Bileog Cheat Ordú chmod
Bileog Cheat Powershell
Bileog Cheat Regex Choitianta
Bileog Cheat Roghnóirí CSS
Bileog Cheat Tiomnais Seimeantach Git
Bileog Cheat VIM
Bileog caimiléir Git
Bileog cheat Docker Compose
Bileog cheat Docker SWARM
Bileog cheat Dockerfile
Bileog cheat Regex
Bileog cheat Sed
NBileog Cheat ginx
Flipper Bonn
Roghnóir Cártaí
Rollóir Dísle
Roth an fhortún
Argon2 Hasher
Bcrypt
Beart Niceware go Frása Pasfhocail
Cripteagrafaíocht AOIS
Criptigh / díchriptiú téacs
Criptithe cruinneachán Ansible a dhíchriptiú
Criptiú Comhaid PGP
Criptiú PGP
Criptiú RSA
Criptiú Teaghrán Jasypt
Eochairghiniúint PGP
Gineadóir CSR
Gineadóir JWT
Gineadóir péire eochracha Ed25519
Gineadóir péirí eochracha ECDSA
Gineadóir teastais X509
Hais Comhaid
Hais téacs
Hmac gineadóir
Ionchódóir/Díchódóir Bech32
Parsálaí JWT
Parsálaí SAML
Parsálaí Teastais/Eochrach
Paseto/PASERK Poiblí/Príobháideach
Paseto/PASERK Áitiúil
RSA gineadóir eochair péire
Roinnt Rúnda Shamirs
Sínitheoir agus Fíoraitheoir RSA/DSA/ECDSA
Tiontaire Teastais SSL
Áireamhán CRC
Bailíochtóir GTIN
Díchódóir Cód QR
Gineadóir Faisnéise Teagmhála QR
Gineadóir barrachóid
Gineadóir cóid QR
Gineadóir cóid QR WiFi
Léitheoir Barrachóid
tools.epc-qrcode-generator.name
Bailíochtóir Cumadóireachta Docker
Docker Compose chuig comhad .env
Docker Compose go Quadlets
Docker compose go kubernetes
Docker iniúchta le haghaidh rith Docker
Déantóir Cumadóireachta Docker Traefik
Gineadóir Lipéad Dockerfile
Gineadóir RBAC Kubernetes
Lipéid Docker Pangolin
Rith Docker go Kubernetes
Rith Docker go Quadlets
Rith docker chuig tiontaire cumadóireachta Docker
Tiontaire Formáide Docker Compose
Tiontaire rith Docker Compose go Docker
Íoslódálaí Íomhánna Docker
Aláram Ama
Aláram Cron/Laethanta na Seachtaine
Comhaireamh síos
Cróniméadar
Cumaisc iCal
Cén Lá?
Gineadóir ICAL
Parsálaí Comhad ICAL
Tiontaire Crios Ama
Tiontaire Uimhreacha Seachtaine
Tiontaire dáta-am
Áireamhán Dáta+Fad
Áireamhán ETA
Áireamhán Fad
Áireamhán Laethanta
Áireamhán TTL
Ríomhaire Aclaíochta
Tiontaire Aonaid Achar
Tiontaire Aonaid Brú
Tiontaire Aonaid Fad
Tiontaire Aonaid Fuinnimh
Tiontaire Aonaid Fórsa
Tiontaire Aonaid Mais
Tiontaire Aonaid Toirte
Tiontaire Aonaid Uillinne
Tiontaire Cumhachta
Tiontaire Fuinnimh Bia
Tiontaire Luas
Tiontaire Luasghéaraithe
Tiontaire Minicíochta
Tiontaire Ráta Sreafa Toirte
Tiontaire Réimíreanna SI
Tiontaire Soilsiúcháin
Tiontaire teochta
Aibhsitheoir Cód/Scripteanna
Amaire Pomodoro
Bréigeoir Sonraí
CSS/JS Áilleachtú & Laghdaigh
Ceo Javascript
Dí-chomhbhrúiteoir/Díphacáileoir Javascript
Eagarthóir orduithe Cli
Gineadóir Favicon
Gineadóir GitIgnore
Gineadóir Mailto
Gineadóir Paraiméadair SQL
Gineadóir Rúnda Django
Gineadóir Scripteanna Tástála Ualaigh K6
Gineadóir Tréithe Git
Gineadóir Tábla Bunachar Sonraí
Json go Protobuf
Json go SQL INSERT
Json go Typescript
Miniféir SQL
Oscail gineadóir meta graf
SQL prettify agus formáid
Scoilteoir Comhad
Stacktrace níos deise
Tiontaire Comhad HEX
Tiontaire Lua
Tiontaire Lúb
Tástálaí API
Tástálaí Chomhéadain Swagger
Tástálaí Picomatch
Tástálaí Éalaithe ANSI
Tógálaí Cruthaithe Bunachar Sonraí
Tógálaí Teaghrán Ceangail Bunachar Sonraí
Áillitheoir Javascript
Éalaitheoir Teaghrán
Anailíseoir Tuairiscí DMARC
Bileog Cheat Sreangaithe RJ45 Cat6
Brathadóir Cineál Comhaid
Brathadóir/Díchódóir Tacair Charachtair Téacs
Consól Port Sraitheach
Cuardaitheoir airíonna LDAP ActiveDirectory
Díchódóir EMV TLV
Díchódóir Idirbhirt ETH
Díchódóir Safelink Outlook
Díchódóir Url Comhroinnte SharePoint
Eastóscóir aitheantais calóga sneachta
Faisnéis eochairchóid
Gineadóir TCPDump
Ionchódóir/Díchódóir Heicsidheachúlach
Leathnaitheoir URLanna Gearra
Léitheoir comhaid Parquet
Mascóir sonraí íogaire
Parsálaí Fianán
Parsálaí MSG Outlook
Parsálaí Ríomhphoist
Parsálaí Ríomhphoist Preabtha
Parsálaí URL
Tiontaire GZip/Díbhoilscithe
Tiontaire IdRéadaí MongoDB
Tiontaire Ionchódaithe MIME
Tiontaire Meán-Endian
Tiontaire SMART Raw
Tiontaire uimhir snámhphointe
Tástálaí DNS
Tástálaí HTTPS
Tástálaí Ilphlandúcháin DNS
Tástálaí Picteil Marbh
Tógálaí Ordú Nmap
Tógálaí URL
Áireamhán Friotóra
键盘测试器
Gineadóir Cód PIN
Gineadóir Frása Pas
Gineadóir NanoIDanna
Gineadóir Pasfhocal Diceware
Gineadóir UUIDs
Gineadóir comhartha
Gineadóir cóid OTP saor in aisce,
Gineadóir pasfhrása BIP39
Gineadóir uimhreacha
Gineadóir uimhreacha randamacha
Tiontaire UUID
Cineálacha MIME
Cóid stádais HTTP
Déantóir Blúirí Cuardaigh Téacs Url
Eagarthóir HTML WYSIWYG
Eolas gléas
Gabhálaí Url
Gineadóir Grádáin CSS
Gineadóir URL UTM
Gineadóir áitsealbhóirí SVG
Glantóir Html
Glantóir URL
HTML go XHTML
HTML go sonraí
Ionchódaigh/díchódaigh teaghráin formáidithe URL
Laghdaitheoir HTML
Parsálaí úsáideora-ghníomhaire
Roth Dathanna
Seiceálaí Codarsnachta Datha
Slabhra sluga a chruthú
Tiontaire Aonad CSS
Tiontaire CSS XPath
Tiontaire datha
Tiontaire picteilín REM
Áillitheoir CSS
Áillitheoir Html
Éalú aonáin HTML
Íomhá go CSS
Anailíseoir Méid Json
CSV go JSON
Cumaisc JSON
Cód Json go PHP
Difríocht JSON
Eagarthóir JSON
Iarratas Json
JSON Leacaitheoir/Díleacaitheoir
JSON Linter
JSON ceartaigh agus formáid
JSON chuig an Eintiteas Java
JSON go .env
JSON go C#
JSON go CSV
JSON go Go
JSON go MessagePack
JSON go Sonraí
JSON go TOML
JSON go TS
JSON go XML
JSON go réad
Json go PHP-Array
Json go Python
Json go SQL DDL
Json go Scéim
Laghdaigh JSON
Máistir sórtála JSON
ObjGen go JSON
PHP-Eagar go JSON
Pacáiste Teachtaireachta chuig JSON
Tiontaire JS go JSON
Tiontaire JSON go JS
Tiontaire JSON go YAML
Tiontaire teaghrán Json
Tástálaí Jq/JSONPath
tools.json-patch.name
Éalú Json/Unescape
Anailíseoir neart pasfhocal
Bileog Cheat ZPool
Cuardach seoladh MAC
Díchódóir ARPA
Díchódóir X-VR-SpamCause
Fiosrúcháin DNS
Forbróir raon IPv4
Formáideoir Nginx
Formáideoir Orduithe Shell
Geoshuíomh IP
Gineadóir Crontab
Gineadóir Cumraíochta Wireguard
Gineadóir DMARC DNS
Gineadóir DNS BIMI
Gineadóir DNS DKIM
Gineadóir DNS PTR
Gineadóir DNS SPF
Gineadóir FStab
Gineadóir HTAccess
Gineadóir Htpasswd/htaccess
Gineadóir Iptables
Gineadóir LogRotate Apache
Gineadóir Option43
Gineadóir Orduithe Múchta
Gineadóir Ordú Curl
Gineadóir Ordú UFW
Gineadóir Rsync
Gineadóir WPA PSK
Gineadóir port randamach
Gineadóir seoladh MAC
Gineadóir údaraithe bunúsach
IPv4-6/IPRange/CIDR in IPRange/CIDR/IPMask
IPv6 gineadóir ULA
Iarratais DNS/RDAP Cloudflare
Liosta Fo-líonra IPv4
Línearaitheoir Orduithe Shell
Mo Sheoladh IP
Neart Pasfhocal Zxcvbn
Ping
Seiceálaí DNSBL
Seiceálaí Whois
Sláintitheoir HAR
Slánuimhreacha chuig IPv4/IPv6
Tiontaire Punycode
Tiontaire Seoladh MAC
Tiontaire seoladh IPv4
Tiontaire seoladh Ipv6
Tástálaí Calafoirt TCP/UDP
Tástálaí Micreafóin
Tástálaí soicéad gréasáin
Uimhreacha Poirt
gineadóir líne ordaithe firewalld
tools.restic-command-generator.name
tools.url-redirection-checker.name
Áireamhán Chmod
Áireamhán Eisiaimh Fo-líonraí IP
Áireamhán Fo-líonra Amhairc
Áireamhán HDD
Áireamhán Iontaofachta RAID
Áireamhán RAID
Áireamhán RAID ZPOOL
Áireamhán Raoin IP ó CIDR Ipv4/6
Áireamhán Raon IPv4/6 go CIDR(anna)
Áireamhán Ráta Aistrithe Sonraí
Áireamhán fo-líonra Ipv6
Áireamhán subnet IPv4
Íoslódálaí il-naisc
Údarú SIP
Difríocht Marcáil anuas
Eagarthóir Markdown
Epub go Markdown
Gineadóir Tábla Marcála
Gineadóir toc Markdown
Greamaigh mar Markdown
HTML le marcáil síos
Lorem Ipsum Markdown
Marcáil síos ar shonraí
Marcáil síos go DOCX
Marcáil síos go HTML
Marcáil síos go Téacs
Réamhamharc marcála síos
tools.markdown-format-converter.name
Áilleoir Tábla Marcála
Amharcléiritheoir Cuar Triantánach/Cothromóideach
Measúnaí mata
OCR Matamaitice
Tiontaire Formáidí Matamaitice
Áireamhán Dénártha
Áireamhán leideanna
Comhbhrúiteoir PDF
Comhcheanglóir Pdf
Eastóscóir Téacs PDF
HTML go PDF
Pdf Criptithe
Pdf Eastóscóir Leathanach
Pdf Línearú/FastWeb
Pdf a dhíchriptiú agus a dhíghlasáil
Seiceáil sínithe PDF
Tógálaí Léirithe Cron
Bailíochtóir Luhn
Bailíochtóir agus Parsálaí ISBN
Bailíochtóir agus parsálaí IBAN
Bailíochtú Uimhreacha CBL
Comhoiriúnacht ceadúnas bogearraí
Cuardach Unicode
Cuardaitheoir Cód Tíre ISO 3166
Cuardaitheoir ISO 639
Foclóir Ar Líne
Mínigh an tOrdú Shell
Parsálaí agus formáidí fón
Seiceálaí Cárta Creidmheasa
Tiontaire Airgeadra
Tiontaire Cás Uachtarach RMB
Tiontaire Féilire
Treoirlínte Soilsithe IES
Áireamhán BMI
Áireamhán Luas Rith
Áireamhán SLA
TOML Linter
TOML go JSON
TOML go YAML
Csv go Sonraí
Excel go sonraí
Gineadóir ULID
Ionchódóir/díchódóir eagar heicsidheachúlach Base64
Ionchódóir/díchódóir teaghrán Base64
Normalaitheoir ríomhphoist
Ríomhaire Ídiú Fuinnimh agus Costais
Tiontaire Aonad Go Leor
Tiontaire Aonaid Stórála Sonraí
Tiontaire Carachtair Unicode go Eintitis Java
Tiontaire Comhordanáidí Geografacha
Tiontaire Formáid Athróg Comhdhlútha
Tiontaire airíonna
Tiontaire bonn slánuimhir
Tiontaire comhad base64 íoslódáil
Tiontaire dBm mW
Tiontaire uimhreacha Rómhánacha
Torrent go Maighnéad
Téacs go Unicode
Téacs go dénártha UTF-8
Tógálaí tagarmhairc
Áireamhán Cóimheas Gnéithe
Áireamhán achair gheografaigh
Áireamhán céatadánach
Aimsitheoir Línte Dúblacha
Aistritheoir Téacs
Athsholáthar Téacs Cliste agus Briseadh Líne
Bain téacs as HTML
Comhroinnteoir Nasc Sóisialta
Comparadóir Liostaí
Difríocht téacs
Déan Comparáid Clónna
Focail Ar Leith
Formáideoir Unicode
Gineadóir Ordú Sed
Gineadóir Sleachta
Gineadóir Téacs Ealaíne ASCII
Gineadóir an-mhaith
Gineadóir/Meirge Zalgo
Ionchódóir/Díchódóir Comhartha GPT
JSON go TOON
Liosta tiontaire
Léaráid Struchtúr Fillteán
Léitheoir RSVP
Meastóir Comharthaí GPT
Onnmhaireoir maighdeana mara
Pacáil comhaid le haghaidh AI
Roghnóir Emoji
Roghnóir Líní Rándamach
Scoilteoir Pras AI
Scrambalóir slabhra
Seiceálaí I agus L
Staitisticí téacs
TOON go JSON
Tabáil go Spásanna
Tiontaire Cód Morse
Tiontaire Leagan Amach Méarchláir
Tiontaire Rún
Tiontaire cás
Tástálaí Regex
Téacs chuig Ainmneacha Unicode
Téacs go aibítir NATO
Unicode go GSM-7
Áireamhán Levenshtein
Íomhá go hEalaín ASCII
Formáidiú XML
Linter XML
ObjGen go HTML
Tástálaí XPath
Tástálaí XSLT
XML go JSON
Cumasc YAML
Tiontaire YAML go JSON
YAML Leacaitheoir/Díleacaitheoir
YAML go TOML
YAML prettify agus formáid
Athraitheoir íomhá
Bain Cúlra na hÍomhá
Bain EXIF
Comparáid Íomhá
GIF go MP4
Inbhéartóir Dath Íomhá
Léitheoir cáilíochta EXIF/Meiteashonraí/GPS/JPEG íomhá
OCRúigh íomhá agus PDF
Réamhamharcóir SVG
Ríomhairigh íomhá
Taifeadta ceamara
Tiontaire Formáidí Íomhá
Tiontaire HEIC
Tiontaire ICO/PNG
Uiscemharc
Íomhá go SVG (potrace)

Bileog caimiléir Git

Is bogearraí bainistíochta leagan díláraithe é Git. Leis an bhileog cheat seo, beidh rochtain thapa agat ar na horduithe git is coitianta.

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