Skip to content

Commit f45672b

Browse files
Copilotcerebrux
andcommitted
Organize Git curriculum with Spiral method - Add 8 levels with Greek READMEs
Co-authored-by: cerebrux <914656+cerebrux@users.noreply.github.com>
1 parent ee0724e commit f45672b

File tree

9 files changed

+1786
-2
lines changed

9 files changed

+1786
-2
lines changed

01-Βασικά-Git/README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Επίπεδο 1: Βασικά του Git
2+
3+
## Στόχοι Μάθησης
4+
- Κατανόηση της έννοιας του version control
5+
- Εγκατάσταση και ρύθμιση του Git
6+
- Δημιουργία του πρώτου repository
7+
8+
## Θεωρία
9+
10+
### Τι είναι το Git;
11+
Το Git είναι ένα κατανεμημένο σύστημα ελέγχου εκδόσεων (version control system) που σας επιτρέπει να παρακολουθείτε τις αλλαγές στα αρχεία σας και να συνεργάζεστε με άλλους.
12+
13+
### Γιατί χρειαζόμαστε Version Control;
14+
- Διατήρηση ιστορικού αλλαγών
15+
- Συνεργασία με άλλους προγραμματιστές
16+
- Επαναφορά σε προηγούμενες εκδόσεις
17+
- Πειραματισμός χωρίς φόβο
18+
19+
## Πρακτική Εφαρμογή
20+
21+
### Εγκατάσταση Git
22+
23+
**Windows:**
24+
```bash
25+
# Κατεβάστε από: https://git-scm.com/download/win
26+
```
27+
28+
**macOS:**
29+
```bash
30+
brew install git
31+
```
32+
33+
**Linux (Ubuntu/Debian):**
34+
```bash
35+
sudo apt-get install git
36+
```
37+
38+
### Αρχική Ρύθμιση
39+
40+
```bash
41+
# Ορίστε το όνομά σας
42+
git config --global user.name "Το Όνομά Σας"
43+
44+
# Ορίστε το email σας
45+
git config --global user.email "email@example.com"
46+
47+
# Ελέγξτε τις ρυθμίσεις
48+
git config --list
49+
```
50+
51+
### Δημιουργία Πρώτου Repository
52+
53+
```bash
54+
# Δημιουργήστε έναν νέο φάκελο
55+
mkdir my-first-repo
56+
cd my-first-repo
57+
58+
# Αρχικοποιήστε το Git repository
59+
git init
60+
61+
# Ελέγξτε την κατάσταση
62+
git status
63+
```
64+
65+
## Ασκήσεις
66+
67+
1. Εγκαταστήστε το Git στον υπολογιστή σας
68+
2. Ρυθμίστε το όνομα και το email σας
69+
3. Δημιουργήστε ένα νέο φάκελο και αρχικοποιήστε ένα Git repository
70+
4. Δημιουργήστε ένα αρχείο `README.md` και ελέγξτε το `git status`
71+
72+
## Επόμενο Βήμα
73+
Μετά την ολοκλήρωση αυτού του επιπέδου, προχωρήστε στο [Επίπεδο 2: Βασικές Λειτουργίες](../02-Βασικές-Λειτουργίες/)
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# Επίπεδο 2: Βασικές Λειτουργίες
2+
3+
## Στόχοι Μάθησης
4+
- Προσθήκη αρχείων στο staging area
5+
- Δημιουργία commits
6+
- Παρακολούθηση της κατάστασης και του ιστορικού
7+
8+
## Θεωρία
9+
10+
### Ο Κύκλος Ζωής των Αρχείων
11+
Τα αρχεία στο Git μπορούν να βρίσκονται σε διάφορες καταστάσεις:
12+
- **Untracked**: Νέα αρχεία που δεν παρακολουθούνται ακόμα
13+
- **Modified**: Αρχεία που έχουν αλλάξει αλλά δεν έχουν προστεθεί στο staging
14+
- **Staged**: Αρχεία που είναι έτοιμα για commit
15+
- **Committed**: Αρχεία που έχουν αποθηκευτεί στο ιστορικό
16+
17+
### Τι είναι το Staging Area;
18+
Το staging area είναι μια ενδιάμεση περιοχή όπου προετοιμάζετε τις αλλαγές πριν τις κάνετε commit.
19+
20+
## Πρακτική Εφαρμογή
21+
22+
### Προσθήκη Αρχείων (git add)
23+
24+
```bash
25+
# Προσθήκη συγκεκριμένου αρχείου
26+
git add README.md
27+
28+
# Προσθήκη όλων των αρχείων
29+
git add .
30+
31+
# Προσθήκη όλων των αρχείων με συγκεκριμένη επέκταση
32+
git add *.txt
33+
```
34+
35+
### Δημιουργία Commit (git commit)
36+
37+
```bash
38+
# Commit με μήνυμα
39+
git commit -m "Προσθήκη αρχείου README"
40+
41+
# Commit όλων των τροποποιημένων αρχείων
42+
git commit -am "Ενημέρωση αρχείων"
43+
44+
# Commit με αναλυτικό μήνυμα (ανοίγει editor)
45+
git commit
46+
```
47+
48+
### Έλεγχος Κατάστασης (git status)
49+
50+
```bash
51+
# Δείτε την τρέχουσα κατάσταση
52+
git status
53+
54+
# Συνοπτική προβολή
55+
git status -s
56+
```
57+
58+
### Προβολή Ιστορικού (git log)
59+
60+
```bash
61+
# Προβολή όλων των commits
62+
git log
63+
64+
# Συνοπτική προβολή
65+
git log --oneline
66+
67+
# Προβολή με γραφικά
68+
git log --graph --oneline --all
69+
70+
# Προβολή των τελευταίων N commits
71+
git log -n 5
72+
```
73+
74+
### Προβολή Διαφορών (git diff)
75+
76+
```bash
77+
# Διαφορές μεταξύ working directory και staging
78+
git diff
79+
80+
# Διαφορές μεταξύ staging και τελευταίου commit
81+
git diff --staged
82+
83+
# Διαφορές συγκεκριμένου αρχείου
84+
git diff README.md
85+
```
86+
87+
## Ασκήσεις
88+
89+
1. Δημιουργήστε ένα νέο αρχείο `hello.txt` με το περιεχόμενο "Hello Git"
90+
2. Προσθέστε το αρχείο στο staging area
91+
3. Κάντε commit με το μήνυμα "Προσθήκη hello.txt"
92+
4. Τροποποιήστε το αρχείο και δείτε τις διαφορές με `git diff`
93+
5. Προσθέστε και κάντε commit τις αλλαγές
94+
6. Δείτε το ιστορικό με `git log --oneline`
95+
96+
## Καλές Πρακτικές
97+
98+
- Γράφετε σαφή και περιγραφικά μηνύματα commit
99+
- Κάντε commits συχνά αλλά με λογική
100+
- Κάθε commit πρέπει να αντιπροσωπεύει μια ολοκληρωμένη αλλαγή
101+
- Χρησιμοποιήστε το παρόν χρόνο στα μηνύματα (π.χ. "Προσθήκη" αντί για "Προστέθηκε")
102+
103+
## Επόμενο Βήμα
104+
Μετά την ολοκλήρωση αυτού του επιπέδου, προχωρήστε στο [Επίπεδο 3: Εισαγωγή στα Branches](../03-Εισαγωγή-στα-Branches/)
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Επίπεδο 3: Εισαγωγή στα Branches
2+
3+
## Στόχοι Μάθησης
4+
- Κατανόηση της έννοιας των branches
5+
- Δημιουργία και εναλλαγή branches
6+
- Συγχώνευση (merge) branches
7+
8+
## Θεωρία
9+
10+
### Τι είναι τα Branches;
11+
Τα branches (κλαδιά) σας επιτρέπουν να αποκλίνετε από την κύρια γραμμή ανάπτυξης και να εργάζεστε ανεξάρτητα χωρίς να επηρεάζετε το κύριο κώδικα.
12+
13+
### Γιατί χρησιμοποιούμε Branches;
14+
- Ανάπτυξη νέων χαρακτηριστικών (features)
15+
- Διόρθωση σφαλμάτων (bug fixes)
16+
- Πειραματισμός με νέες ιδέες
17+
- Παράλληλη εργασία σε διαφορετικές εργασίες
18+
19+
### Το Default Branch: main/master
20+
Το `main``master` σε παλαιότερα repositories) είναι το προεπιλεγμένο branch που δημιουργείται όταν αρχικοποιείτε ένα repository.
21+
22+
## Πρακτική Εφαρμογή
23+
24+
### Προβολή Branches
25+
26+
```bash
27+
# Προβολή τοπικών branches
28+
git branch
29+
30+
# Προβολή όλων των branches (τοπικών και remote)
31+
git branch -a
32+
33+
# Προβολή του τρέχοντος branch
34+
git branch --show-current
35+
```
36+
37+
### Δημιουργία Νέου Branch
38+
39+
```bash
40+
# Δημιουργία νέου branch
41+
git branch feature-login
42+
43+
# Δημιουργία και μετάβαση σε νέο branch
44+
git checkout -b feature-signup
45+
46+
# Νέος τρόπος (Git 2.23+)
47+
git switch -c feature-dashboard
48+
```
49+
50+
### Εναλλαγή μεταξύ Branches
51+
52+
```bash
53+
# Εναλλαγή σε υπάρχον branch
54+
git checkout main
55+
56+
# Νέος τρόπος (Git 2.23+)
57+
git switch main
58+
```
59+
60+
### Συγχώνευση Branches (Merge)
61+
62+
```bash
63+
# Μεταβείτε στο branch προορισμού (π.χ. main)
64+
git checkout main
65+
66+
# Συγχωνεύστε το άλλο branch
67+
git merge feature-login
68+
```
69+
70+
### Διαγραφή Branch
71+
72+
```bash
73+
# Διαγραφή branch που έχει συγχωνευθεί
74+
git branch -d feature-login
75+
76+
# Αναγκαστική διαγραφή branch
77+
git branch -D feature-old
78+
```
79+
80+
## Ασκήσεις
81+
82+
1. Δημιουργήστε ένα νέο branch με όνομα `feature-greeting`
83+
2. Μεταβείτε στο νέο branch
84+
3. Δημιουργήστε ένα αρχείο `greeting.txt` με το περιεχόμενο "Hello from feature branch"
85+
4. Κάντε commit το αρχείο
86+
5. Επιστρέψτε στο `main` branch
87+
6. Συγχωνεύστε το `feature-greeting` branch
88+
7. Διαγράψτε το `feature-greeting` branch
89+
8. Ελέγξτε το ιστορικό με `git log --graph --oneline`
90+
91+
## Απλό Παράδειγμα
92+
93+
```bash
94+
# Βρίσκεστε στο main branch
95+
git checkout -b add-footer
96+
97+
# Κάντε τις αλλαγές σας
98+
echo "Footer content" > footer.html
99+
git add footer.html
100+
git commit -m "Προσθήκη footer"
101+
102+
# Επιστροφή στο main
103+
git checkout main
104+
105+
# Συγχώνευση
106+
git merge add-footer
107+
108+
# Καθαρισμός
109+
git branch -d add-footer
110+
```
111+
112+
## Επόμενο Βήμα
113+
Μετά την ολοκλήρωση αυτού του επιπέδου, προχωρήστε στο [Επίπεδο 4: Απομακρυσμένα Repositories](../04-Απομακρυσμένα-Repositories/)

0 commit comments

Comments
 (0)