Skip to content

Latest commit

 

History

History
677 lines (461 loc) · 21.8 KB

File metadata and controls

677 lines (461 loc) · 21.8 KB

Git Cheat Sheet Ελληνικά

Git Logo

Ένας γρήγορος οδηγός αναφοράς για τις πιο χρησιμοποιούμενες εντολές Git, οργανωμένες σε κατηγορίες για εύκολη χρήση.


📖 Σχετικά με τον Οδηγό

Αυτός ο περιεκτικός οδηγός αναφοράς Git είναι μια πλήρης αναφορά για όλους όσους θέλουν να βελτιώσουν τη ροή εργασίας τους με το Git. Από αρχάριους που ξεκινούν το ταξίδι τους με το Git μέχρι έμπειρους προγραμματιστές, αυτός ο οδηγός παρέχει οργανωμένες και κατηγοριοποιημένες εντολές για να επιταχύνει το ταξίδι ανάπτυξής σας.

Βασικά Χαρακτηριστικά:

  • Οργανωμένες κατηγορίες: Οι εντολές είναι ταξινομημένες σε σαφείς και λογικές ομάδες
  • Πρακτικά παραδείγματα: Με περιπτώσεις χρήσης από τον πραγματικό κόσμο
  • Φιλικό προς αρχάριους: Με σαφείς εξηγήσεις και συμβουλές
  • Γρήγορη αναφορά: Γρήγορη πρόσβαση στις απαραίτητες εντολές

📑 Πίνακας Περιεχομένων


🔧 Αρχική Ρύθμιση

Ρυθμίστε το Git με τις προσωπικές σας πληροφορίες:

# Ρύθμιση ονόματος χρήστη
git config --global user.name "Το Όνομά Σας"

# Ρύθμιση email
git config --global user.email "email@example.com"

# Προβολή τρεχουσών ρυθμίσεων
git config --list

# Ρύθμιση προεπιλεγμένου επεξεργαστή
git config --global core.editor "nano"

# Ρύθμιση εργαλείου συγχώνευσης
git config --global merge.tool vimdiff

📁 Ρύθμιση Αποθετηρίου

Δημιουργία νέου αποθετηρίου:

# Δημιουργία νέου Git αποθετηρίου
git init

# Κλωνοποίηση υπάρχοντος αποθετηρίου
git clone <url-αποθετηρίου>

# Κλωνοποίηση σε συγκεκριμένο φάκελο
git clone <url-αποθετηρίου> <όνομα-φακέλου>

📊 Εντολές Κατάστασης

Έλεγχος κατάστασης του αποθετηρίου σας:

# Προβολή τρέχουσας κατάστασης αποθετηρίου
git status

# Προβολή κατάστασης σε σύντομη μορφή
git status -s

# Προβολή κατάστασης αγνοώντας μη παρακολουθούμενα αρχεία
git status --ignored

# Προβολή διαφορών σε τροποποιημένα αρχεία
git diff

# Προβολή διαφορών στην περιοχή staging
git diff --staged

# Προβολή διαφορών μεταξύ κλάδων
git diff <κλάδος1> <κλάδος2>

📝 Διαχείριση Αρχείων

Προσθήκη και αφαίρεση αρχείων:

# Προσθήκη συγκεκριμένου αρχείου στην περιοχή staging
git add <αρχείο>

# Προσθήκη όλων των τροποποιημένων αρχείων
git add .

# Προσθήκη όλων των αρχείων συγκεκριμένου τύπου
git add *.txt

# Διαδραστική προσθήκη
git add -i

# Αφαίρεση αρχείου από αποθετήριο και φάκελο εργασίας
git rm <αρχείο>

# Αφαίρεση αρχείου μόνο από αποθετήριο (διατήρηση στον φάκελο)
git rm --cached <αρχείο>

# Μετακίνηση/μετονομασία αρχείου
git mv <αρχείο-πηγής> <αρχείο-προορισμού>

💾 Υποβολές (Commits)

Αποθήκευση αλλαγών στο αποθετήριο:

# Υποβολή με μήνυμα
git commit -m "Μήνυμα υποβολής"

# Υποβολή προσθέτοντας όλα τα τροποποιημένα αρχεία
git commit -am "Μήνυμα υποβολής"

# Τροποποίηση της τελευταίας υποβολής
git commit --amend

# Κενή υποβολή (χρήσιμη για CI/CD triggers)
git commit --allow-empty -m "Trigger CI"

# Υποβολή με λεπτομερές μήνυμα (ανοίγει επεξεργαστή)
git commit

🌿 Κλάδοι (Branches)

Εργασία με κλάδους:

# Προβολή όλων των κλάδων
git branch

# Προβολή απομακρυσμένων κλάδων
git branch -r

# Προβολή όλων των κλάδων (τοπικών και απομακρυσμένων)
git branch -a

# Δημιουργία νέου κλάδου
git branch <όνομα-κλάδου>

# Μετάβαση σε κλάδο
git checkout <όνομα-κλάδου>

# Δημιουργία και μετάβαση σε νέο κλάδο
git checkout -b <όνομα-κλάδου>

# Δημιουργία κλάδου από συγκεκριμένη υποβολή
git checkout -b <όνομα-κλάδου> <hash-υποβολής>

# Διαγραφή κλάδου
git branch -d <όνομα-κλάδου>

# Βίαιη διαγραφή κλάδου
git branch -D <όνομα-κλάδου>

# Μετονομασία τρέχοντος κλάδου
git branch -m <νέο-όνομα>

# Μετονομασία συγκεκριμένου κλάδου
git branch -m <παλιό-όνομα> <νέο-όνομα>

🔀 Συγχώνευση (Merge)

Συγχώνευση αλλαγών μεταξύ κλάδων:

# Συγχώνευση κλάδου στον τρέχοντα κλάδο
git merge <όνομα-κλάδου>

# Συγχώνευση χωρίς fast-forward (δημιουργία merge commit)
git merge --no-ff <όνομα-κλάδου>

# Συγχώνευση μόνο αν είναι fast-forward
git merge --ff-only <όνομα-κλάδου>

# Ακύρωση τρέχουσας συγχώνευσης
git merge --abort

# Συνέχιση συγχώνευσης μετά την επίλυση συγκρούσεων
git merge --continue

🌐 Απομακρυσμένα Αποθετήρια

Διαχείριση απομακρυσμένων αποθετηρίων:

# Προβολή απομακρυσμένων αποθετηρίων
git remote

# Προβολή απομακρυσμένων αποθετηρίων με URLs
git remote -v

# Προσθήκη απομακρυσμένου αποθετηρίου
git remote add <όνομα> <url>

# Αλλαγή URL απομακρυσμένου αποθετηρίου
git remote set-url <όνομα> <νέο-url>

# Αφαίρεση απομακρυσμένου αποθετηρίου
git remote remove <όνομα>

# Αποστολή αλλαγών στο απομακρυσμένο αποθετήριο
git push <απομακρυσμένο> <κλάδος>

# Αποστολή κλάδου και ρύθμιση παρακολούθησης
git push -u <απομακρυσμένο> <κλάδος>

# Αποστολή όλων των κλάδων
git push --all

# Αποστολή ετικετών
git push --tags

# Λήψη αλλαγών από απομακρυσμένο αποθετήριο
git pull <απομακρυσμένο> <κλάδος>

# Λήψη αλλαγών χωρίς συγχώνευση
git fetch <απομακρυσμένο>

# Λήψη όλων των απομακρυσμένων κλάδων
git fetch --all

📚 Ιστορικό και Αρχεία

Εξερεύνηση ιστορικού υποβολών:

# Προβολή ιστορικού υποβολών
git log

# Προβολή ιστορικού σε μία γραμμή ανά υποβολή
git log --oneline

# Προβολή ιστορικού με γράφημα
git log --graph

# Προβολή ιστορικού συγκεκριμένου αρχείου
git log <αρχείο>

# Προβολή στατιστικών υποβολών
git log --stat

# Προβολή αλλαγών σε κάθε υποβολή
git log -p

# Προβολή τελευταίων N υποβολών
git log -n <αριθμός>

# Προβολή υποβολών μεταξύ ημερομηνιών
git log --since="2023-01-01" --until="2023-12-31"

# Προβολή υποβολών ανά συγγραφέα
git log --author="Όνομα Συγγραφέα"

# Αναζήτηση σε μηνύματα υποβολών
git log --grep="λέξη κλειδί"

🏷️ Ετικέτες (Tags)

Διαχείριση ετικετών έκδοσης:

# Προβολή όλων των ετικετών
git tag

# Δημιουργία ελαφριάς ετικέτας
git tag <όνομα-ετικέτας>

# Δημιουργία σχολιασμένης ετικέτας
git tag -a <όνομα-ετικέτας> -m "Μήνυμα ετικέτας"

# Δημιουργία ετικέτας σε συγκεκριμένη υποβολή
git tag -a <όνομα-ετικέτας> <hash-υποβολής>

# Προβολή πληροφοριών ετικέτας
git show <όνομα-ετικέτας>

# Διαγραφή τοπικής ετικέτας
git tag -d <όνομα-ετικέτας>

# Διαγραφή απομακρυσμένης ετικέτας
git push --delete <απομακρυσμένο> <όνομα-ετικέτας>

# Αποστολή συγκεκριμένης ετικέτας
git push <απομακρυσμένο> <όνομα-ετικέτας>

# Αποστολή όλων των ετικετών
git push <απομακρυσμένο> --tags

↩️ Αναίρεση Αλλαγών

Επαναφορά τροποποιήσεων:

# Ακύρωση αλλαγών σε συγκεκριμένο αρχείο
git checkout <αρχείο>

# Ακύρωση όλων των μη υποβληθεισών αλλαγών
git checkout .

# Επαναφορά αρχείου σε συγκεκριμένη έκδοση
git checkout <hash-υποβολής> <αρχείο>

# Αφαίρεση αρχείου από την περιοχή staging
git reset <αρχείο>

# Αφαίρεση όλων των αρχείων από την περιοχή staging
git reset

# Επιστροφή στην προηγούμενη υποβολή (διατήρηση αλλαγών)
git reset --soft HEAD~1

# Επιστροφή στην προηγούμενη υποβολή (ακύρωση αλλαγών)
git reset --hard HEAD~1

# Επιστροφή σε συγκεκριμένη υποβολή
git reset --hard <hash-υποβολής>

# Δημιουργία υποβολής που ακυρώνει άλλη υποβολή
git revert <hash-υποβολής>

# Ακύρωση πολλαπλών υποβολών
git revert <hash-από>..<hash-έως>

📦 Αποθήκευση (Stash)

Προσωρινή αποθήκευση εργασίας:

# Αποθήκευση τρεχουσών αλλαγών στο stash
git stash

# Αποθήκευση με περιγραφικό μήνυμα
git stash save "Περιγραφικό μήνυμα"

# Προβολή όλων των stashes
git stash list

# Εφαρμογή του τελευταίου stash
git stash apply

# Εφαρμογή συγκεκριμένου stash
git stash apply stash@{0}

# Εφαρμογή και διαγραφή του τελευταίου stash
git stash pop

# Διαγραφή συγκεκριμένου stash
git stash drop stash@{0}

# Διαγραφή όλων των stashes
git stash clear

# Προβολή αλλαγών σε stash
git stash show stash@{0}

# Δημιουργία κλάδου από stash
git stash branch <όνομα-κλάδου> stash@{0}

🌊 Git Flow

Το Git Flow είναι ένα μοντέλο διακλάδωσης που ορίζει μια αυστηρή ροή εργασίας σχεδιασμένη γύρω από την έκδοση του έργου.

Κύριοι κλάδοι:

  • master/main: Κώδικας παραγωγής
  • develop: Κύριος κλάδος ανάπτυξης

Κλάδοι υποστήριξης:

  • feature: Για νέες λειτουργίες
  • release: Για προετοιμασία νέων εκδόσεων
  • hotfix: Για επείγουσες διορθώσεις στην παραγωγή

Εντολές Git Flow:

# Αρχικοποίηση git flow
git flow init

# Έναρξη νέας λειτουργίας
git flow feature start <όνομα-λειτουργίας>

# Ολοκλήρωση λειτουργίας
git flow feature finish <όνομα-λειτουργίας>

# Δημοσίευση λειτουργίας
git flow feature publish <όνομα-λειτουργίας>

# Έναρξη έκδοσης
git flow release start <έκδοση>

# Ολοκλήρωση έκδοσης
git flow release finish <έκδοση>

# Έναρξη hotfix
git flow hotfix start <έκδοση>

# Ολοκλήρωση hotfix
git flow hotfix finish <έκδοση>

Ροή εργασίας χωρίς Git Flow:

Git Flow Commands

# Δημιουργία κλάδου λειτουργίας
git checkout develop
git checkout -b feature/νέα-λειτουργία

# Εργασία στη λειτουργία
git add .
git commit -m "Προσθήκη νέας λειτουργίας"

# Συγχώνευση λειτουργίας στο develop
git checkout develop
git merge --no-ff feature/νέα-λειτουργία
git branch -d feature/νέα-λειτουργία

# Δημιουργία κλάδου έκδοσης
git checkout develop
git checkout -b release/1.0.0

# Ολοκλήρωση έκδοσης
git checkout master
git merge --no-ff release/1.0.0
git tag -a 1.0.0 -m "Έκδοση 1.0.0"
git checkout develop
git merge --no-ff release/1.0.0
git branch -d release/1.0.0

💡 Χρήσιμες Συμβουλές

Χρήσιμα aliases:

# Ρύθμιση χρήσιμων aliases
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.visual '!gitk'

Αρχεία .gitignore:

# Δημιουργία αρχείου .gitignore
echo "node_modules/" >> .gitignore
echo "*.log" >> .gitignore
echo ".env" >> .gitignore

# Αγνόηση ήδη παρακολουθούμενων αρχείων
git rm --cached <αρχείο>
echo "<αρχείο>" >> .gitignore
git add .gitignore
git commit -m "Προσθήκη αρχείου στο .gitignore"

⚙️ Αρχεία Ρυθμίσεων

Το Git χρησιμοποιεί αρχεία ρυθμίσεων για την αποθήκευση προτιμήσεων χρήστη και αποθετηρίου:

Επίπεδα ρυθμίσεων:

# Συστήματος (όλοι οι χρήστες)
git config --system

# Χρήστη (τρέχων χρήστης)
git config --global

# Αποθετηρίου (συγκεκριμένο έργο)
git config --local

Κοινές ρυθμίσεις:

# Ταυτότητα χρήστη
git config --global user.name "Το Όνομά σας"
git config --global user.email "email@example.com"

# Επεξεργαστής κειμένου
git config --global core.editor nano

# Εργαλείο συγχώνευσης
git config --global merge.tool vimdiff

# Χρώματα στην έξοδο
git config --global color.ui auto

# Προβολή ρυθμίσεων
git config --list

🔍 Αναζήτηση

Αναζήτηση στο ιστορικό και περιεχόμενο:

# Αναζήτηση στα μηνύματα υποβολών
git log --grep="λέξη-κλειδί"

# Αναζήτηση αλλαγών στον κώδικα
git log -S "κομμάτι κώδικα"

# Αναζήτηση σε αρχεία εργασίας
git grep "μοτίβο"

# Αναζήτηση σε συγκεκριμένη υποβολή
git grep "μοτίβο" <hash-υποβολής>

# Αναζήτηση με αγνόηση πεζών/κεφαλαίων
git grep -i "μοτίβο"

# Αναζήτηση ολόκληρων λέξεων
git grep -w "λέξη"

# Εμφάνιση αριθμών γραμμών
git grep -n "μοτίβο"

📁 Μετακίνηση/Μετονομασία

Μετακίνηση και μετονομασία αρχείων:

# Μετονομασία αρχείου
git mv παλιό_όνομα.txt νέο_όνομα.txt

# Μετακίνηση αρχείου σε φάκελο
git mv αρχείο.txt φάκελος/

# Μετονομασία φακέλου
git mv παλιός_φάκελος νέος_φάκελος

# Διαδικασία μετονομασίας χωρίς git mv
mv παλιό_όνομα.txt νέο_όνομα.txt
git add νέο_όνομα.txt
git rm παλιό_όνομα.txt

# Εντοπισμός μετονομασιών στο log
git log --follow αρχείο.txt

# Παρακολούθηση μετακινήσεων
git log --stat -M

🌍 Άλλες Γλώσσες

Αυτό το Git cheat sheet είναι διαθέσιμο σε διάφορες γλώσσες:

Γλώσσα Αρχείο
🇺🇸 English README.md
🇸🇦 العربية git-cheat-sheet-ar.md
🇧🇩 বাংলা git-cheat-sheet-bn.md
🇩🇪 Deutsch git-cheat-sheet-de.md
🇬🇷 Ελληνικά git-cheat-sheet-el.md
🇪🇸 Español git-cheat-sheet-es.md
🇮🇳 हिन्दी git-cheat-sheet-hi.md
🇰🇷 한국어 git-cheat-sheet-ko.md
🇵🇱 Polski git-cheat-sheet-pl.md
🇧🇷 Português (Brasil) git-cheat-sheet-pt_BR.md
🇹🇷 Türkçe git-cheat-sheet-tr.md
🇨🇳 中文 git-cheat-sheet-zh.md

🤝 Συνεισφορά

Οι συνεισφορές είναι ευπρόσδεκτες! Αν θέλετε να βελτιώσετε αυτό το cheat sheet:

  1. Κάντε Fork το αποθετήριο
  2. Δημιουργήστε έναν κλάδο λειτουργίας (git checkout -b feature/βελτίωση)
  3. Κάντε commit τις αλλαγές σας (git commit -am 'Προσθήκη νέας λειτουργίας')
  4. Κάντε Push στον κλάδο (git push origin feature/βελτίωση)
  5. Δημιουργήστε ένα Pull Request

Παρακαλούμε ακολουθήστε τις οδηγίες συνεισφοράς και διασφαλίστε ότι ο κώδικάς σας ακολουθεί τα υπάρχοντα πρότυπα.


📄 Άδεια Χρήσης

Αυτό το έργο αδειοδοτείται με την MIT License.

Μπορείτε ελεύθερα να χρησιμοποιήσετε, τροποποιήσετε και διανείμετε αυτό το cheat sheet σύμφωνα με τους όρους της άδειας MIT.


📖 Επιπλέον Πόροι


Σημείωση: Αυτό το cheat sheet καλύπτει τις πιο συνηθισμένες εντολές Git. Για πιο προχωρημένες χρήσεις, συμβουλευτείτε την επίσημη τεκμηρίωση του Git.