Ρύθμιση και διαμόρφωση ⤢ git configΟρίζει το όνομα, το email ή τον editor σου μία φορά για όλα τα αποθετήρια. git config --global user.name "Ada" ⤢ git config --global aliasΟρίζει ένα σύντομο όνομα για μια εντολή που πληκτρολογείς συχνά. git config --global alias.co checkout ⤢ git initΔημιουργεί ένα νέο αποθετήριο στον τρέχοντα φάκελο. git init ⤢ git cloneΑντιγράφει ένα απομακρυσμένο αποθετήριο στον υπολογιστή σου. git clone git@github.com:org/repo.git ⤢ git clone --depthΑντιγράφει μόνο τα νεότερα commits ενός μόνο κλάδου. git clone --depth 1 --single-branch git@github.com:org/repo.git Βασικά στιγμιότυπων ⤢ git statusΔείχνει τι είναι staged, τροποποιημένο και untracked. git status -sb ⤢ git addΚάνει stage τις αλλαγές ώστε να μπουν στο επόμενο commit. git add src/app.ts ⤢ git add -pΕλέγχει τις αλλαγές τμήμα-τμήμα και κάνει stage μόνο όσες αποδέχεσαι. git add -p src/app.ts ⤢ git add -uΚάνει stage τις αλλαγές όλων των tracked αρχείων χωρίς να προσθέτει νέα. git add -u ⤢ git commitΚαταγράφει τις staged αλλαγές ως νέο commit. git commit -m "fix: null check" ⤢ git commit --amendΑντικαθιστά το τελευταίο commit με ένα διορθωμένο. git commit --amend -m "fix: handle empty input" ⤢ git diffΔείχνει τις unstaged αλλαγές, ή τις staged με --staged. git diff --staged ⤢ git diff HEADΔείχνει κάθε αλλαγή από το τελευταίο commit, staged ή όχι. git diff HEAD Κλάδοι και συγχώνευση ⤢ git branchΕμφανίζει, δημιουργεί ή διαγράφει κλάδους. git branch feature-x ⤢ git branch -dΔιαγράφει έναν συγχωνευμένο κλάδο (το -D τον εξαναγκάζει, το -a εμφανίζει όλους τους κλάδους). git branch -d feature-x ⤢ git switchΕναλλάσσει κλάδους (ο σύγχρονος αντικαταστάτης του checkout). git switch feature-x ⤢ git switch -cΔημιουργεί νέο κλάδο και μεταβαίνει σε αυτόν σε ένα βήμα. git switch -c feature-x ⤢ git checkoutΕναλλάσσει κλάδους ή επαναφέρει αρχεία (η παλαιότερη, ευρύτερη εντολή). git checkout feature-x ⤢ git mergeΦέρνει τις αλλαγές άλλου κλάδου στον τρέχοντα. git merge feature-x ⤢ git merge --abortΑκυρώνει μια συγχώνευση με διενέξεις και επαναφέρει τον κλάδο στην προηγούμενη κατάστασή του. git merge --abort ⤢ git rebaseΕπαναλαμβάνει τα commits του τρέχοντος κλάδου πάνω σε άλλον κλάδο. git rebase main ⤢ git rebase -iΣυγχωνεύει, αναδιατάσσει ή επεξεργάζεται commits κατά την επανάληψη. git rebase -i main ⤢ git cherry-pickΑντιγράφει ένα μόνο commit από άλλον κλάδο σε αυτόν. git cherry-pick a1b2c3d ⤢ git tagΕπισημαίνει ένα commit με ένα αναγνώσιμο όνομα, όπως μια έκδοση. git tag -a v1.2.0 ⤢ git worktreeΕξάγει άλλον κλάδο σε ξεχωριστό φάκελο ταυτόχρονα. git worktree add ../repo-feature feature-x Εξερεύνηση ιστορικού ⤢ git logΠερνάει από το ιστορικό των commits. git log --oneline --graph --decorate ⤢ git log --allΠερνάει από το ιστορικό όλων των κλάδων, όχι μόνο του τρέχοντος. git log --oneline --graph --all ⤢ git showΔείχνει το πλήρες diff και το μήνυμα ενός commit. git show HEAD ⤢ git blameΔείχνει ποιος άλλαξε τελευταίος κάθε γραμμή ενός αρχείου. git blame src/app.ts ⤢ git reflogΔείχνει κάθε commit στο οποίο έχει δείξει το HEAD, συμπεριλαμβανομένων των απορριφθέντων. git reflog ⤢ git bisectΑναζητά στο ιστορικό ανά δύο για να βρει το commit που προκάλεσε βλάβη. git bisect start ⤢ git shortlogΣυνοψίζει τα commits ανά συγγραφέα. git shortlog -sn ⤢ git describeΟνομάζει το τρέχον commit μετρώντας από το πλησιέστερο tag. git describe --tags Συνεργασία με remote ⤢ git remoteΕμφανίζει ή προσθέτει απομακρυσμένα αποθετήρια. git remote add origin <url> ⤢ git remote -vΕμφανίζει τα remote με τα fetch και push URL τους. git remote -v ⤢ git fetchΚατεβάζει τις απομακρυσμένες αλλαγές χωρίς να αλλάζει τους κλάδους σου. git fetch origin ⤢ git fetch --pruneΚατεβάζει τις απομακρυσμένες αλλαγές και απορρίπτει refs σε διαγραμμένους απομακρυσμένους κλάδους. git fetch --prune ⤢ git pullΚατεβάζει και συγχωνεύει τις απομακρυσμένες αλλαγές του τρέχοντος κλάδου. git pull --rebase ⤢ git pushΣτέλνει τα τοπικά commits στο remote. git push -u origin feature-x ⤢ git push --force-with-leaseΑντικαθιστά τον απομακρυσμένο κλάδο, αλλά μόνο αν κανείς δεν έκανε push πρώτος. git push --force-with-lease origin feature-x Αναίρεση αλλαγών ⤢ git restoreΑπορρίπτει τις αλλαγές του working tree, ή τις αφαιρεί από το stage. git restore src/app.ts ⤢ git restore --stagedΑφαιρεί ένα αρχείο από το stage και κρατά τις αλλαγές του στο working tree. git restore --staged src/app.ts ⤢ git resetΜετακινεί την άκρη του τρέχοντος κλάδου και προαιρετικά τον δείκτη. git reset --hard HEAD~1 ⤢ git revertΠροσθέτει νέο commit που αναιρεί ένα προηγούμενο (ασφαλές για κοινή χρήση). git revert HEAD ⤢ git cleanΔιαγράφει untracked αρχεία και φακέλους. git clean -fd Stash ⤢ git stashΑποθηκεύει τη μη καταγεγραμμένη εργασία και επαναφέρει το working tree. git stash -u ⤢ git stash listΔείχνει όλα τα stash που έχεις αποθηκεύσει. git stash list ⤢ git stash applyΕφαρμόζει ξανά ένα stash και το κρατά αποθηκευμένο. git stash apply stash@{1} ⤢ git stash dropΔιαγράφει ένα stash που δεν χρειάζεσαι πια. git stash drop stash@{1} ⤢ git stash popΕφαρμόζει ξανά το πιο πρόσφατο stash και το διαγράφει. git stash pop Αρχεία και υποενότητες ⤢ git mvΜετακινεί ή μετονομάζει ένα αρχείο και κάνει stage την αλλαγή. git mv old.ts src/new.ts ⤢ git rmΔιαγράφει ένα αρχείο και κάνει stage τη διαγραφή. git rm src/old.ts ⤢ git submoduleΠαρακολουθεί ένα άλλο αποθετήριο ως φάκελο μέσα σε αυτό. git submodule add git@github.com:org/lib.git lib ⤢ git sparse-checkoutΕξάγει μόνο τους φακέλους που ονομάζεις από ένα μεγάλο αποθετήριο. git sparse-checkout set src docs ⤢ git archiveΕξάγει το δέντρο ενός commit ως αρχείο tar ή zip. git archive -o repo.zip HEAD