|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "5cf5e1ed51455fefed4895fcc4d6ba2a",
|
|
|
"translation_date": "2025-10-03T15:52:50+00:00",
|
|
|
"source_file": "Git-Basics/README.md",
|
|
|
"language_code": "el"
|
|
|
}
|
|
|
-->
|
|
|
## Βασικά στοιχεία του GIT για αρχάριους web-dev👶
|
|
|
|
|
|
## Τι είναι το `Git`;
|
|
|
1. Το Git είναι ένα κατανεμημένο σύστημα ελέγχου εκδόσεων.
|
|
|
2. Ολόκληρη η βάση κώδικα και το ιστορικό είναι διαθέσιμα στον υπολογιστή κάθε προγραμματιστή,
|
|
|
κάτι που διευκολύνει τη δημιουργία και συγχώνευση κλάδων.
|
|
|
3. Χρησιμοποιείται ως Σύστημα Ελέγχου Εκδόσεων (VCS) για την παρακολούθηση αλλαγών σε αρχεία υπολογιστή.
|
|
|
|
|
|
* Κατανεμημένο σύστημα ελέγχου εκδόσεων
|
|
|
* Συντονίζει την εργασία μεταξύ πολλών προγραμματιστών
|
|
|
* Ποιος έκανε ποιες αλλαγές και πότε
|
|
|
* Επιστροφή σε οποιαδήποτε στιγμή
|
|
|
* Τοπικά & απομακρυσμένα αποθετήρια
|
|
|
|
|
|
## ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΟΥ GIT
|
|
|
* Παρακολουθεί το ιστορικό του κώδικα
|
|
|
* Παίρνει "στιγμιότυπα" των αρχείων σας
|
|
|
* Εσείς αποφασίζετε πότε να πάρετε ένα στιγμιότυπο κάνοντας ένα "commit"
|
|
|
* Μπορείτε να επισκεφθείτε οποιοδήποτε στιγμιότυπο οποιαδήποτε στιγμή
|
|
|
* Μπορείτε να προετοιμάσετε αρχεία πριν από το commit
|
|
|
|
|
|
### Διαφορά μεταξύ Git & GitHub
|
|
|
|
|
|
| Git | GitHub |
|
|
|
| ------- | ----------- |
|
|
|
| Το Git είναι λογισμικό | Το GitHub είναι υπηρεσία cloud |
|
|
|
| Το Git εγκαθίσταται τοπικά στο σύστημα | Το GitHub φιλοξενείται στο διαδίκτυο |
|
|
|
| Είναι εργαλείο γραμμής εντολών | Είναι γραφικό περιβάλλον χρήστη |
|
|
|
| Το Git συντηρείται από το Linux | Το GitHub συντηρείται από τη Microsoft |
|
|
|
| Εστιάζει στον έλεγχο εκδόσεων και την κοινή χρήση κώδικα | Εστιάζει στη φιλοξενία κώδικα σε κεντρική πηγή |
|
|
|
| Το Git είναι ανοιχτού κώδικα | Το GitHub περιλαμβάνει δωρεάν και επί πληρωμή επίπεδα |
|
|
|
| Το Git κυκλοφόρησε το 2005 | Το GitHub κυκλοφόρησε το 2008 |
|
|
|
|
|
|
## Εγκατάσταση GIT
|
|
|
* Linux(Debian)
|
|
|
`$sudo apt-get install git`
|
|
|
* Linux(Fedora)
|
|
|
`$sudo yum install git`
|
|
|
* [Λήψη](http://git-scm.com/download/mac) για Mac
|
|
|
* [Λήψη](http://git-scm.com/download/win) για Windows
|
|
|
|
|
|
### Βήματα διαδικασίας εγκατάστασης:
|
|
|
1. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190359823-e421b976-515a-4565-990d-2f2e4e62977a.png"/>
|
|
|
2. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190360530-a7bfa681-47f4-4859-9b8a-4120e0cad348.png"/>
|
|
|
3. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190360760-30db7768-19e0-4848-a99d-a6c955e041e2.png"/>
|
|
|
4. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190360896-473e1e54-f083-4b5c-a5f0-539f70469142.png"/>
|
|
|
5. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190361144-bc670a2b-b776-4867-9785-7b509d416fbb.png"/>
|
|
|
6. Και στη συνέχεια Συνέχεια Επόμενο > Επόμενο > Επόμενο > <b>Εγκατάσταση</b>
|
|
|
7. <img width="500" height="400" src="https://user-images.githubusercontent.com/61585443/190361548-4b700d85-c7d5-4d26-90e7-e5cc3ce24311.png"/>
|
|
|
|
|
|
### Μετά την εγκατάσταση πρέπει να ρυθμίσουμε το git χρησιμοποιώντας το git bash
|
|
|
1. `git config --global user.name 'YourName'`
|
|
|
2. `git config --global user.email 'YourEmail'`
|
|
|
___
|
|
|
|
|
|
## Εντολές Git
|
|
|
___
|
|
|
|
|
|
### Λήψη & Δημιουργία Έργων
|
|
|
|
|
|
| Εντολή | Περιγραφή |
|
|
|
| ------- | ----------- |
|
|
|
| `git init` | Αρχικοποίηση ενός τοπικού αποθετηρίου Git |
|
|
|
| `git clone ssh://git@github.com/[username]/[repository-name].git` | Δημιουργία τοπικού αντιγράφου ενός απομακρυσμένου αποθετηρίου |
|
|
|
|
|
|
### Βασική Λήψη Στιγμιότυπων
|
|
|
|
|
|
| Εντολή | Περιγραφή |
|
|
|
| ------- | ----------- |
|
|
|
| `git status` | Έλεγχος κατάστασης |
|
|
|
| `git add [file-name.txt]` | Προσθήκη ενός αρχείου στην περιοχή προετοιμασίας |
|
|
|
| `git add -A` | Προσθήκη όλων των νέων και τροποποιημένων αρχείων στην περιοχή προετοιμασίας |
|
|
|
| `git commit -m "[commit message]"` | Καταγραφή αλλαγών |
|
|
|
| `git rm -r [file-name.txt]` | Αφαίρεση ενός αρχείου (ή φακέλου) |
|
|
|
| `git push` | Αποστολή στο απομακρυσμένο αποθετήριο |
|
|
|
| `git pull` | Λήψη των τελευταίων αλλαγών από το απομακρυσμένο αποθετήριο |
|
|
|
|
|
|
### Δημιουργία Κλάδων & Συγχώνευση
|
|
|
|
|
|
| Εντολή | Περιγραφή |
|
|
|
| ------- | ----------- |
|
|
|
| `git branch` | Λίστα κλάδων (το αστερίσκο υποδεικνύει τον τρέχοντα κλάδο) |
|
|
|
| `git branch -a` | Λίστα όλων των κλάδων (τοπικών και απομακρυσμένων) |
|
|
|
| `git branch [branch name]` | Δημιουργία νέου κλάδου |
|
|
|
| `git branch -D [branch name]` | Διαγραφή ενός κλάδου |
|
|
|
| `git push origin --delete [branch name]` | Διαγραφή ενός απομακρυσμένου κλάδου |
|
|
|
| `git checkout -b [branch name]` | Δημιουργία νέου κλάδου και μετάβαση σε αυτόν |
|
|
|
| `git checkout -b [branch name] origin/[branch name]` | Κλωνοποίηση ενός απομακρυσμένου κλάδου και μετάβαση σε αυτόν |
|
|
|
| `git branch -m [old branch name] [new branch name]` | Μετονομασία ενός τοπικού κλάδου |
|
|
|
| `git checkout [branch name]` | Μετάβαση σε έναν κλάδο |
|
|
|
| `git checkout -` | Μετάβαση στον τελευταίο κλάδο που επιλέχθηκε |
|
|
|
| `git checkout -- [file-name.txt]` | Απόρριψη αλλαγών σε ένα αρχείο |
|
|
|
| `git merge [branch name]` | Συγχώνευση ενός κλάδου στον ενεργό κλάδο |
|
|
|
| `git merge [source branch] [target branch]` | Συγχώνευση ενός κλάδου σε έναν στόχο κλάδο |
|
|
|
| `git stash` | Αποθήκευση αλλαγών σε έναν ακατάστατο χώρο εργασίας |
|
|
|
| `git stash clear` | Αφαίρεση όλων των αποθηκευμένων καταχωρήσεων |
|
|
|
|
|
|
### Κοινή Χρήση & Ενημέρωση Έργων
|
|
|
|
|
|
| Εντολή | Περιγραφή |
|
|
|
| ------- | ----------- |
|
|
|
| `git push origin [branch name]` | Αποστολή ενός κλάδου στο απομακρυσμένο αποθετήριο |
|
|
|
| `git push -u origin [branch name]` | Αποστολή αλλαγών στο απομακρυσμένο αποθετήριο (και απομνημόνευση του κλάδου) |
|
|
|
| `git push` | Αποστολή αλλαγών στο απομακρυσμένο αποθετήριο (απομνημονευμένος κλάδος) |
|
|
|
| `git push origin --delete [branch name]` | Διαγραφή ενός απομακρυσμένου κλάδου |
|
|
|
| `git pull` | Ενημέρωση του τοπικού αποθετηρίου με την πιο πρόσφατη καταγραφή |
|
|
|
| `git pull origin [branch name]` | Λήψη αλλαγών από το απομακρυσμένο αποθετήριο |
|
|
|
| `git remote add origin ssh://git@github.com/[username]/[repository-name].git` | Προσθήκη ενός απομακρυσμένου αποθετηρίου |
|
|
|
| `git remote set-url origin ssh://git@github.com/[username]/[repository-name].git` | Ρύθμιση του κλάδου προέλευσης ενός αποθετηρίου σε SSH |
|
|
|
|
|
|
### Επιθεώρηση & Σύγκριση
|
|
|
|
|
|
| Εντολή | Περιγραφή |
|
|
|
| ------- | ----------- |
|
|
|
| `git log` | Προβολή αλλαγών |
|
|
|
| `git log --summary` | Προβολή αλλαγών (λεπτομερώς) |
|
|
|
| `git log --oneline` | Προβολή αλλαγών (συνοπτικά) |
|
|
|
| `git diff [source branch] [target branch]` | Προεπισκόπηση αλλαγών πριν από τη συγχώνευση |
|
|
|
|
|
|
---
|
|
|
|
|
|
**Αποποίηση ευθύνης**:
|
|
|
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. |