Skip to content
Λογότυπο GrCode Club σε μαύρο Λογότυπο GrCode Club σε λευκό GrCode Club

GrCode Club

Λογότυπο GrCode Club σε μαύρο Λογότυπο GrCode Club σε λευκό GrCode Club

GrCode Club

  • Αρχική
  • Προγραμματισμός
    • Developer
    • Web Development
    • Γλώσσες Προγραμματισμού
    • Docker
  • Δίκτυα
    • Βασικές Πληροφορίες
    • Πρωτόκολλα Δικτύων
    • Υπηρεσίες & Θύρες
    • Cloud Computing
  • Λειτουργικά Συστήματα
    • Βασικές Πληροφορίες
    • Linux: Οδηγός
    • Microsoft Windows
  • Κυβερνοασφάλεια
    • Βασικές Πληροφορίες
    • Κυβερνοεπιθέσεις
    • Εργαλεία Κυβερνοασφάλειας
  • Hardware
    • Βασικές Πληροφορίες
    • Εξαρτήματα Υπολογιστή
    • Οθόνες & Τηλεοράσεις
    • Υποστήριξη Υπολογιστή
    • Πιστοποίηση IP
  • Κινητά
    • Βασικές Πληροφορίες
    • Android
    • iPhone
  • Κοινότητα
    • Σύνδεση / Λογαριασμός
    • Μέλη
    • Γίνε Content Creator
    • Projects Μελών
    • Ξεκινήστε να Μαθαίνετε
  • Αρχική
  • Προγραμματισμός
    • Developer
    • Web Development
    • Γλώσσες Προγραμματισμού
    • Docker
  • Δίκτυα
    • Βασικές Πληροφορίες
    • Πρωτόκολλα Δικτύων
    • Υπηρεσίες & Θύρες
    • Cloud Computing
  • Λειτουργικά Συστήματα
    • Βασικές Πληροφορίες
    • Linux: Οδηγός
    • Microsoft Windows
  • Κυβερνοασφάλεια
    • Βασικές Πληροφορίες
    • Κυβερνοεπιθέσεις
    • Εργαλεία Κυβερνοασφάλειας
  • Hardware
    • Βασικές Πληροφορίες
    • Εξαρτήματα Υπολογιστή
    • Οθόνες & Τηλεοράσεις
    • Υποστήριξη Υπολογιστή
    • Πιστοποίηση IP
  • Κινητά
    • Βασικές Πληροφορίες
    • Android
    • iPhone
  • Κοινότητα
    • Σύνδεση / Λογαριασμός
    • Μέλη
    • Γίνε Content Creator
    • Projects Μελών
    • Ξεκινήστε να Μαθαίνετε

Git και GitHub: Βασικές Έννοιες και Εντολές

Το GitHub είναι μια πλατφόρμα για αποθήκευση και συνεργασία σε projects με χρήση του Git. Στο GitHub μπορείς να ανεβάζεις τον κώδικά σου, να δουλεύεις σε ομάδες και να κρατάς ιστορικό αλλαγών.

Βασικές Έννοιες

ΈννοιαΠεριγραφή
Repository (Repo)Αποθετήριο – εκεί που φυλάσσεται ο κώδικας
CommitΜια αποθηκευμένη αλλαγή στο project
BranchΔιαφορετική εκδοχή του project
Pull Request (PR)Πρόταση για να ενωθούν αλλαγές από ένα branch στο κύριο
PushΣτέλνει τις αλλαγές που έχεις κάνει τοπικά (στον υπολογιστή σου) στο αποθετήριο στο GitHub.
CloneΑντιγραφή repo στον υπολογιστή σου
ForkΔημιουργία αντιγράφου του repo στο δικό σου λογαριασμό

Αναλυτικά το “git push origin main”:

Στείλε τις αλλαγές μου από τον υπολογιστή μου στο GitHub (στο αποθετήριο), στο συγκεκριμένο branch που λέγεται main.

gitΤο εργαλείο Git
push“Σπρώξε” τις αλλαγές
originΤο αποθετήριο στο GitHub
mainΤο branch στο οποίο στέλνεις (π.χ. main ή master)

Παράδειγμα:

echo "Hello GitHub" > index.html
git add .
git commit -m "Πρόσθεσα το αρχικό index"
git push origin main

README

Το README.md είναι το πρώτο αρχείο που βλέπει κάποιος όταν επισκέπτεται το αποθετήριό σου στο GitHub.

Γιατί είναι σημαντικό;

  1. Βοηθάει άλλους να καταλάβουν το project σου
  2. Κάνει το repo σου να φαίνεται επαγγελματικό
  3. Είναι απαραίτητο για open source συνεργασία

Git και GitHub: Ποια είναι η διαφορά;

Το Git είναι ένα κατανεμημένο σύστημα ελέγχου εκδόσεων (Version Control System – VCS). Καταγράφει τις αλλαγές στα αρχεία ενός project και επιτρέπει την επιστροφή σε προηγούμενες εκδόσεις. Το GitHub είναι μια διαδικτυακή πλατφόρμα φιλοξενίας αποθετηρίων Git, η οποία προσθέτει εργαλεία συνεργασίας, διαχείρισης εργασιών και αυτοματοποίησης.

  • Git: εκτελείται τοπικά στον υπολογιστή σου και διαχειρίζεται το ιστορικό αλλαγών.
  • GitHub: φιλοξενεί απομακρυσμένα repositories και διευκολύνει τη συνεργασία.
  • GitHub δεν είναι το Git: μπορείς να χρησιμοποιείς Git χωρίς λογαριασμό στο GitHub ή να φιλοξενείς Git repositories σε άλλες υπηρεσίες.

Εγκατάσταση και αρχική ρύθμιση του Git

Πριν ξεκινήσεις, εγκατέστησε το Git από την επίσημη ιστοσελίδα git-scm.com/downloads. Έπειτα άνοιξε το Terminal ή τη γραμμή εντολών και έλεγξε την εγκατάσταση.

git --version

Όρισε το όνομα και το email που θα συνδέονται με τα commits σου. Χρησιμοποίησε στοιχεία που θέλεις να εμφανίζονται στο ιστορικό των αλλαγών σου.

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

# Εμφάνιση των ρυθμίσεων
git config --global --list

Δημιουργία του πρώτου Repository

Μπορείς να ξεκινήσεις ένα νέο τοπικό project και να το μετατρέψεις σε Git repository με την εντολή git init. Στη συνέχεια προσθέτεις αρχεία στο staging area και δημιουργείς το πρώτο commit.

# Δημιουργία φακέλου project
mkdir my-first-project
cd my-first-project

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

# Δημιουργία αρχείου
echo "# My First Project" > README.md

# Έλεγχος κατάστασης
git status

# Προσθήκη αρχείου στο staging area
git add README.md

# Δημιουργία commit
git commit -m "Initial commit"

Τι είναι το staging area; Είναι το ενδιάμεσο στάδιο στο οποίο επιλέγεις ποιες αλλαγές θα συμπεριληφθούν στο επόμενο commit. Η εντολή git add προσθέτει αλλαγές σε αυτό το στάδιο, ενώ η git commit τις καταγράφει στο ιστορικό.

Σύνδεση τοπικού Repository με το GitHub

Δημιούργησε ένα νέο repository στον λογαριασμό σου στο GitHub. Αν έχεις ήδη δημιουργήσει το project τοπικά, πρόσθεσε το URL του απομακρυσμένου repository ως origin και ανέβασε το branch main.

# Σύνδεση με το απομακρυσμένο repository
git remote add origin https://github.com/USERNAME/REPOSITORY.git

# Έλεγχος απομακρυσμένων συνδέσεων
git remote -v

# Ορισμός του main ως κύριου branch
git branch -M main

# Αποστολή του branch στο GitHub
git push -u origin main

Αντικατάστησε τα USERNAME και REPOSITORY με το όνομα χρήστη και το όνομα του repository σου. Η επιλογή -u ορίζει το upstream branch, ώστε στις επόμενες ενημερώσεις να μπορείς συνήθως να χρησιμοποιείς απλώς git push και git pull.

Βασικές εντολές Git

ΕντολήΛειτουργία
git statusΕμφανίζει την κατάσταση των αρχείων και των αλλαγών.
git add .Προσθέτει τις αλλαγές του τρέχοντος φακέλου στο staging area.
git commit -m "message"Καταγράφει τις staged αλλαγές με ένα μήνυμα.
git log --onelineΕμφανίζει συνοπτικά το ιστορικό των commits.
git diffΔείχνει τις αλλαγές που δεν έχουν προστεθεί στο staging area.
git branchΕμφανίζει τα τοπικά branches.
git switch mainΜεταβαίνει στο branch main.
git pullΕνημερώνει το τοπικό branch από το αντίστοιχο απομακρυσμένο branch.
git fetchΚατεβάζει πληροφορίες από το remote χωρίς να ενσωματώνει αυτόματα τις αλλαγές στο τρέχον branch.
git clone URLΔημιουργεί τοπικό αντίγραφο ενός απομακρυσμένου repository.
git restore FILEΕπαναφέρει αλλαγές σε αρχείο που δεν έχουν γίνει commit. Χρησιμοποίησέ το προσεκτικά, γιατί μπορεί να χαθούν τοπικές αλλαγές.

Branches: Παράλληλη ανάπτυξη

Ένα branch επιτρέπει να αναπτύσσεις μια νέα λειτουργία ή να διορθώνεις ένα σφάλμα χωρίς να επηρεάζεις άμεσα τον κύριο κώδικα. Όταν ολοκληρωθεί η εργασία, οι αλλαγές μπορούν να ενσωματωθούν στο main μέσω merge ή Pull Request.

# Δημιουργία νέου branch
git branch feature/login

# Μετάβαση στο branch
git switch feature/login

# Εναλλακτικά: δημιουργία και μετάβαση μαζί
git switch -c feature/register

# Εμφάνιση branches
git branch

# Επιστροφή στο main
git switch main

# Ενσωμάτωση branch στο main
git merge feature/login

# Διαγραφή τοπικού branch μετά το merge
git branch -d feature/login

Pull Requests (PR)

Το Pull Request είναι ένας μηχανισμός συνεργασίας στο GitHub. Μέσω αυτού ζητάς να ενσωματωθούν οι αλλαγές ενός branch σε κάποιο άλλο branch. Πριν από την ενσωμάτωση, οι συνεργάτες μπορούν να ελέγξουν τον κώδικα, να αφήσουν σχόλια και να ζητήσουν διορθώσεις.

  1. Δημιούργησε ένα νέο branch για την εργασία σου.
  2. Κάνε τις αλλαγές στον κώδικα και δημιούργησε commits.
  3. Ανέβασε το branch στο GitHub με git push -u origin branch-name.
  4. Άνοιξε το repository στο GitHub και επίλεξε δημιουργία Pull Request.
  5. Συμπλήρωσε τίτλο και περιγραφή, εξηγώντας τι αλλάζει.
  6. Περίμενε τον έλεγχο (Code Review) και αντιμετώπισε τυχόν σχόλια.
  7. Όταν εγκριθεί, το PR μπορεί να γίνει merge.

Issues και διαχείριση εργασιών

Τα GitHub Issues χρησιμοποιούνται για την καταγραφή bugs, νέων λειτουργιών, προτάσεων και εργασιών. Κάθε Issue μπορεί να έχει περιγραφή, labels, assignees, milestone και σχόλια. Έτσι, η ομάδα παρακολουθεί τι πρέπει να γίνει και ποιος έχει αναλάβει κάθε εργασία.

  • Bug: αναφορά προβλήματος ή λανθασμένης συμπεριφοράς.
  • Feature Request: πρόταση για νέα δυνατότητα.
  • Labels: κατηγοριοποίηση, όπως bug, enhancement ή documentation.
  • Milestones: ομαδοποίηση εργασιών με κοινό στόχο ή έκδοση.

Το αρχείο .gitignore

Το .gitignore ορίζει ποια αρχεία και φάκελοι δεν πρέπει να παρακολουθούνται από το Git. Είναι χρήσιμο για προσωρινά αρχεία, εξαρτήσεις, logs και τοπικές ρυθμίσεις. Δεν αφαιρεί αρχεία που έχουν ήδη προστεθεί στο repository.

Παράδειγμα αρχείου .gitignore για ένα γενικό project:

# Environment variables και μυστικά
.env
.env.*

# Εξαρτήσεις Node.js
node_modules/

# Logs
*.log

# Προσωρινά αρχεία
*.tmp
.DS_Store

# Φάκελοι IDE
.vscode/
.idea/

Σημαντικό: Μην ανεβάζεις passwords, API keys, access tokens, private keys ή άλλα μυστικά στο GitHub. Το να προσθέσεις ένα αρχείο στο .gitignore δεν αναιρεί τη δημοσίευση ενός μυστικού που έχει ήδη γίνει commit. Αν εκτεθεί κάποιο token ή κλειδί, κάνε άμεσα revoke/rotation από την αντίστοιχη υπηρεσία.

Fork και συνεισφορά σε Open Source Projects

Το Fork δημιουργεί ένα αντίγραφο ενός repository στον δικό σου λογαριασμό GitHub. Είναι συνηθισμένος τρόπος συνεισφοράς σε open source projects, όταν δεν έχεις δικαίωμα απευθείας εγγραφής στο αρχικό repository.

  1. Επίλεξε Fork στο repository που σε ενδιαφέρει.
  2. Κάνε clone το δικό σου fork στον υπολογιστή σου.
  3. Δημιούργησε branch για τις αλλαγές σου.
  4. Υλοποίησε και έλεγξε τις αλλαγές.
  5. Κάνε push στο δικό σου fork.
  6. Άνοιξε Pull Request προς το αρχικό repository.
# Clone του δικού σου fork
git clone https://github.com/USERNAME/PROJECT.git
cd PROJECT

# Προσθήκη του αρχικού repository ως upstream
git remote add upstream https://github.com/ORIGINAL-OWNER/PROJECT.git

# Λήψη των τελευταίων αλλαγών του αρχικού project
git fetch upstream

GitHub Actions και αυτοματοποίηση

Το GitHub Actions είναι πλατφόρμα αυτοματοποίησης εργασιών μέσα σε ένα repository. Μπορεί να εκτελεί tests, builds, ελέγχους ποιότητας και deployments όταν συμβαίνουν συγκεκριμένα γεγονότα, όπως ένα push ή ένα Pull Request. Οι ροές εργασίας (workflows) ορίζονται σε αρχεία YAML μέσα στον φάκελο .github/workflows/.

Απλό παράδειγμα workflow που εκτελείται σε κάθε push και Pull Request:

name: Basic Workflow

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Show message
        run: echo "GitHub Actions is running"

Το παραπάνω είναι ένα απλό παράδειγμα επίδειξης. Σε πραγματικά projects, τα workflows συνήθως περιλαμβάνουν εγκατάσταση εξαρτήσεων, εκτέλεση tests και ελέγχους πριν από την ενσωμάτωση αλλαγών.

Releases και Tags

Τα Tags επισημαίνουν συγκεκριμένα σημεία στο ιστορικό του Git, συνήθως για να ορίσουν εκδόσεις λογισμικού. Οι GitHub Releases συνδέουν μια έκδοση με περιγραφή αλλαγών και, αν χρειάζεται, αρχεία προς λήψη.

# Δημιουργία annotated tag
git tag -a v1.0.0 -m "Version 1.0.0"

# Αποστολή του συγκεκριμένου tag στο GitHub
git push origin v1.0.0

# Εμφάνιση tags
git tag

Συνηθισμένα προβλήματα και λύσεις

Δεν υπάρχουν αλλαγές για commit

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

git status
git diff

Rejected push λόγω απομακρυσμένων αλλαγών

Αν το απομακρυσμένο branch έχει commits που δεν υπάρχουν τοπικά, το push μπορεί να απορριφθεί. Κατέβασε και ενσωμάτωσε πρώτα τις αλλαγές και μετά δοκίμασε ξανά.

git pull --rebase origin main
git push origin main

Merge Conflict

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

# Μετά τη χειροκίνητη επίλυση των conflicts
git add .
git commit

Καθημερινό Workflow ενός Developer

Ένα συνηθισμένο workflow για ατομική εργασία ή συνεργασία σε ομάδα είναι το παρακάτω:

# 1. Ενημέρωση του main branch
git switch main
git pull

# 2. Δημιουργία branch για νέα εργασία
git switch -c feature/new-function

# 3. Έλεγχος αλλαγών
git status
git diff

# 4. Προσθήκη και καταγραφή αλλαγών
git add .
git commit -m "Add new function"

# 5. Ανέβασμα του branch στο GitHub
git push -u origin feature/new-function

# 6. Δημιουργία Pull Request από το GitHub
# Μετά το review και το merge, επιστροφή στο main
git switch main
git pull

Χρήσιμες επίσημες πηγές

  • GitHub Documentation – επίσημη τεκμηρίωση του GitHub.
  • GitHub Get Started – οδηγίες για τα πρώτα βήματα.
  • Git Documentation – επίσημη τεκμηρίωση του Git.
  • GitHub Skills – διαδραστικά μαθήματα εξάσκησης.
  • GitHub Actions Documentation – οδηγός για workflows και αυτοματοποίηση.

Social Media

  • Facebook
  • X
  • Instagram
  • TikTok
  • YouTube
  • Linkedin
  • Discord
Email Επικοινωνίας

info@grcodeclub.gr

Για Τεχνικά Θέματα

support@grcodeclub.gr

Πολιτική Cookies (ΕΕ)

Πολιτική απορρήτου

Όροι και Προϋποθέσεις

GrCode Club by @dimitridedou
Διαχείριση Συγκατάθεσης
Για να παρέχουμε την καλύτερη εμπειρία, χρησιμοποιούμε τεχνολογίες όπως cookies για την αποθήκευση ή/και την πρόσβαση σε πληροφορίες συσκευών. Η συγκατάθεση για τις εν λόγω τεχνολογίες θα μας επιτρέψει να επεξεργαστούμε δεδομένα προσωπικού χαρακτήρα, όπως συμπεριφορά περιήγησης ή μοναδικά αναγνωριστικά σε αυτόν τον ιστότοπο. Η μη συγκατάθεση ή η ανάκληση της συγκατάθεσης, μπορεί να επηρεάσει αρνητικά ορισμένες λειτουργίες και δυνατότητες.
Λειτουργικά Πάντα ενεργό
Η τεχνική αποθήκευση ή πρόσβαση είναι απολύτως απαραίτητη για τον νόμιμο σκοπό της δυνατότητας χρήσης συγκεκριμένης υπηρεσίας που ζητείται ρητά από τον συνδρομητή ή τον χρήστη ή με αποκλειστικό σκοπό τη μετάδοση επικοινωνίας μέσω δικτύου ηλεκτρονικών επικοινωνιών.
Προτιμήσεις
Η τεχνική αποθήκευση ή πρόσβαση είναι απαραίτητη για τον νόμιμο σκοπό της αποθήκευσης προτιμήσεων που δεν ζητούνται από τον συνδρομητή ή τον χρήστη.
Στατιστικά
Η τεχνική αποθήκευση ή πρόσβαση που χρησιμοποιείται αποκλειστικά για στατιστικούς σκοπούς. Η τεχνική αποθήκευση ή πρόσβαση που χρησιμοποιείται αποκλειστικά για ανώνυμους στατιστικούς σκοπούς. Χωρίς κλήτευση, η εθελοντική συμμόρφωση εκ μέρους του Παρόχου Υπηρεσιών Διαδικτύου ή πρόσθετες καταγραφές από τρίτο μέρος, οι πληροφορίες που αποθηκεύονται ή ανακτώνται για το σκοπό αυτό από μόνες τους δεν μπορούν συνήθως να χρησιμοποιηθούν για την αναγνώρισή σας.
Εμπορικής Προώθησης
Η τεχνική αποθήκευση ή πρόσβαση απαιτείται για τη δημιουργία προφίλ χρηστών, για την αποστολή διαφημίσεων ή για την καταγραφή του χρήστη σε έναν ιστότοπο ή σε διάφορους ιστότοπους για παρόμοιους σκοπούς εμπορικής προώθησης.
  • Διαχείριση επιλογών
  • Διαχείριση υπηρεσιών
  • Manage {vendor_count} vendors
  • Διαβάστε περισσότερα για αυτούς τους σκοπούς
Προβολή προτιμήσεων
  • {title}
  • {title}
  • {title}