You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/01-introduction/sections/basics.asc
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -83,27 +83,27 @@ image::images/snapshots.png[Το Git αποθηκεύει τα δεδομένα
83
83
* _Τροποποιημένο_ είναι ένα αρχείο όταν έχει αλλάξει, αλλά δεν έχει υποβληθεί στη βάση δεδομένων ακόμα.
84
84
* _Καταχωρημένο_ είναι ένα τροποποιημένο αρχείο της τρέχουσας έκδοσης όταν έχει επισημανθεί για βρίσκεται στο επόμενο υποβεβλημένο στιγμιότυπο.
85
85
86
-
Αυτό μας οδηγεί στις τρεις βασικές περιοχές ενός έργου στο Git: τον κατάλογο του Git, τον κατάλογο εργασίας και το στάδιο καταχώρισης.
86
+
Αυτό μας οδηγεί στις τρεις βασικές περιοχές ενός έργου στο Git: τον κατάλογο του Git, τον κατάλογος εργασίας και το ενδιάμεσο στάδιο.
87
87
88
-
.Κατάλογος εργασίας, στάδιο καταχώρισης και κατάλογος του Git.
89
-
image::images/areas.png["Κατάλογος εργασίας, στάδιο καταχώρισης και κατάλογος του Git."]
88
+
.Κατάλογος εργασίας, ενδιάμεσο στάδιο και κατάλογος του Git.
89
+
image::images/areas.png["Κατάλογος εργασίας, ενδιάμεσο στάδιο και κατάλογος του Git."]
90
90
91
91
Ο κατάλογος του Git είναι το μέρος όπου το Git αποθηκεύει τα μεταδεδομένα (metadata) και τη βάση δεδομένων του έργου.
92
92
Αυτό είναι το πιο σημαντικό μέρος του Git και είναι αυτό που αντιγράφεται όταν κλωνοποιούμε ένα αποθετήριο από έναν άλλο υπολογιστή.
93
93
94
94
Ο κατάλογος εργασίας είναι απλά ένα στιγμιότυπο μίας έκδοσης του έργου.
95
95
Τα αρχεία αυτά ανασύρονται από τη συμπιεσμένη βάση δεδομένων του καταλόγου του Git και τοποθετούνται στον τοπικό δίκο ώστε να μπορεί ο χρήστης να τα χρησιμοποιήσει ή να τα τροποποιήσει.
96
96
97
-
Το στάδιο καταχώρισης είναι ένα αρχείο το οποίο γενικά περιλαμβάνεται στον κατάλογο του Git και στο οποίο είναι αποθηκευμένες πληροφορίες σχετικά με το τι θα περάσει στην επόμενη υποβολή.
98
-
Το τεχνικό όνομα του στάδιου καταχώρισης στην ορολογία του Git είναι ``ευρετήριο'', αλλά το όνομα ``στάδιο καταχώρισης'' είναι επίσης σύνηθες.
97
+
Το ενδιάμεση στάδιο είναι ένα αρχείο το οποίο γενικά περιλαμβάνεται στον κατάλογο του Git, στο οποίο είναι αποθηκευμένες πληροφορίες σχετικά με το τι θα περάσει στην επόμενη υποβολή.
98
+
Το τεχνικό όνομα του ενδιάμεσου σταδίου στην ορολογία του Git είναι ``ευρετήριο'', αλλά το όνομα ``ενδιάμεσο στάδιο'' είναι επίσης σύνηθες.
99
99
100
100
Η βασική ροή εργασίας του Git είναι κάπως έτσι:
101
101
102
102
1. Τροποποιούμε κάποια αρχεία στον κατάλογο εργασίας μας.
103
-
2. Καταχωρούμε τα αρχεία, προσθέτωντας στιγμιότυπά τους στο στάδιο καταχώρισης.
104
-
3. Πραγματοποιούμε μιας υποβολή, η οποία θα πάρει τα αρχεία όπως είναι στο στάδιο καταχώρισης και αποθηκεύει αυτό το στιγμιότυπο μόνιμα στον κατάλογο του Git.
103
+
2. Καταχωρούμε τα αρχεία, προσθέτωντας στιγμιότυπά τους στο ενδιάμεσο στάδιο.
104
+
3. Πραγματοποιούμε μιας υποβολή, η οποία θα πάρει τα αρχεία όπως είναι στο ενδιάμεσο στάδιο και αποθηκεύει αυτό το στιγμιότυπο μόνιμα στον κατάλογο του Git.
105
105
106
106
Αν μια συγκεκριμένη έκδοση ενός αρχείου βρίσκεται στον κατάλογο του Git, ονομάζεται υποβεβλημένη.
107
-
Αν έχει τροποποιηθεί και έχει προστεθεί στο στάδιο καταχώρισης, ονομάζεται καταχωρημένη έκδοση.
107
+
Αν έχει τροποποιηθεί και έχει προστεθεί στο ενδιάμεσο στάδιο, ονομάζεται καταχωρημένη έκδοση.
108
108
Επίσης αν έχει τροποποιηθεί από τότε που ελέγχθηκε τελευταία φορά αλλλά δεν έχει καταχωρηθεί τότε λέμε ότι πρόκειται για τροποποιημένη έκδοση.
109
-
Στο κεφάλαιο <<_git_basics_chapter>>, θα μάθουμε περισσότερα για αυτές τις καταστάσεις και το πώς μπορούμε να τις εκμεταλευτούμε ή να παρακάμψουμε εντελώς το στάδιο καταχώρισης.
109
+
Στο κεφάλαιο <<_git_basics_chapter>>, θα μάθουμε περισσότερα για αυτές τις καταστάσεις και το πώς μπορούμε να τις εκμεταλευτούμε ή να παρακάμψουμε εντελώς το ενδιάμεσο στάδιο.
Copy file name to clipboardExpand all lines: book/02-git-basics/sections/recording-changes.asc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,7 +65,7 @@ nothing added to commit but untracked files present (use "git add" to track)
65
65
$ git add README
66
66
----
67
67
68
-
Αν τώρα εκτελέσουμε την εντολή για να δούμε την τρέχουσα κατάσταση του αποθετηρίου, θα δούμε ότι το αρχείο README πλέον παρακολουθείται και βρίσκεται στο στάδιο καταχώρισης ώστε να είναι έτοιμο να υποβληθεί:
68
+
Αν τώρα εκτελέσουμε την εντολή για να δούμε την τρέχουσα κατάσταση του αποθετηρίου, θα δούμε ότι το αρχείο README πλέον παρακολουθείται και έχει καταχωρηθεί στο ενδιάμεσο στάδιο ώστε να είναι έτοιμο να υποβληθεί:
69
69
70
70
[source,console]
71
71
----
@@ -78,7 +78,7 @@ Changes to be committed:
78
78
79
79
----
80
80
81
-
Το αρχείο πλέον βρίσκεται κάτω από την κατηγορία ``Changes to be committed'' που σημαίνει ότι βρίσκεται ήδη στο στάδιο καταχώρισης.
81
+
Το αρχείο πλέον βρίσκεται κάτω από την κατηγορία ``Changes to be committed'' που σημαίνει ότι έχει καταχωρηθεί στο ενδιάμεσο στάδιο.
82
82
Αν σε αυτό το σημείο κάνουμε υποβολή των αρχείων μας, η έκδοση του αρχείου README που θα αποθηκευτεί στο στιγμιότυπ θα είναι αυτή που υπήρχε όταν εκτελέσαμε την εντολή `git add`.
83
83
Προηγουμένως κάναμε κάτι αντίστοιχο, εκτελέσαμε την εντολή `git init` ακολουθούμενη από `git add (files)`. Με τον τρόπο αυτό ξεκινήσαμε την παρακολούθηση των αρχείων του καταλόγου.(((εντολές git, init)))(((εντολές git, add)))
84
84
Η εντολή `git add` μπορεί να ακολουθείται είτε από ένα αρχείο είτε από έναν κατάλογο. Αν ακολουθείται από κατάλογο τότε η εντολή θα καταχωρήσει όλα τα αρχεία του συγκεκριμένου καταλόγου αναδρομικά.
Copy file name to clipboardExpand all lines: book/02-git-basics/sections/undoing.asc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@
7
7
Θα δούμε κάποιες από τις ελάχιστες περιπτώσεις στο Git όπου μπορεί να χάσουμε μέρος της δουλειάς σας αν χρησιμοποιήσουμε με λάθος τρόπο τις εντολές.
8
8
9
9
Μια συχνή αναίρεση που χρησιμοποιείται είναι η περίπτωση κατά την οποία υποβάλλουμε κάτι πολύ νωρίς, αλλά ξεχάσαμε να προσθέσουμε κάποια αρχεία ή κάναμε κάποιο σφάλμα στο μήνυμα υποβολής.
10
-
Αν θέλουμε να ξανακάνουμε τη συγκεκριμένη υποβολή, να προσθέσουμε τις αλλαγές που ξεχάσαμε, να τις βάλουμε στο στάδιο καταχώρισης και να τις ξαναϋποβάλλουμε, θα πρέπει να χρησιμοποιήσουμε την επιλογή `--amend`:
10
+
Αν θέλουμε να ξανακάνουμε τη συγκεκριμένη υποβολή, να προσθέσουμε τις αλλαγές που ξεχάσαμε, να τις βάλουμε στο ενδιάμεσο στάδιο και να τις ξαναϋποβάλλουμε, θα πρέπει να χρησιμοποιήσουμε την επιλογή `--amend`:
11
11
12
12
[source,console]
13
13
----
@@ -32,7 +32,7 @@ $ git commit --amend
32
32
Έτσι καταλήγουμε με μια και μοναδική υποβολή. Η δεύτερη υποβολή αντικαθιστά τα αποτελέσματα της πρώτης.
33
33
34
34
[[_unstaging]]
35
-
==== Αφαίρεση αρχείου από το στάδιο καταχώρισης
35
+
==== Αφαίρεση αρχείου από το ενδιάμεσο στάδιο
36
36
37
37
Στις επόμενες δύο ενότητες θα δούμε πώς μπορούμε να διαχειριστούμε τις αλλαγές στην περιοχή καταχώρησης και στον κατάλογο εργασίας.
38
38
Κάτι που θα σας φανεί πολύ χρήσιμο είναι ότι η εντολή που μας προσδιορίζει την κατάσταση αυτών των περιοχών, μας υπενθυμίζει και πώς να αναιρέσουμε τις αλλαγές σε αυτές.
Τώρα λαμβάνουμε το τηλεφώνημα ότι υπάρχει ένα άλλο επείγον πρόβλημα στην ιστοσελίδα και πρέπει να το αντιμετωπίσουμε άμεσα.
59
59
Χάρη στο Git, δεν είναι απαραίτητο να αναπτύξουμε την επίλυση του προβλήματος παράλληλα με τις αλλαγές που έχουμε κάνει στον κλάδο `iss53` και δεν χρειάζεται να καταβάλλουμε μεγάλη προσπάθεια ώστε να αναιρέσουμε όλες τις αλλαγές που έχουμε κάνει και να δουλέψουμε στο επείγον πρόβλημα και να εφαρμόσουμε τη λύση μας σε ό,τι βρίσκεται εκείνη τη στιγμή στη γραμμή της παραγωγής. Το μόνο που έχουμε να κάνουμε είναι να μεταβούμε στον κλάδο `master`.
60
60
61
-
Ωστόσο πρέπει να τονιστεί ότι αν πριν το κάνουμε αυτό υπάρχουν στον κατάλογο εργασίας μας ή στο στάδιο καταχώρισης αλλάγες που δεν έχουν υποβληθεί και έρχονται σε σύγκρουση με τον κλάδο στον οποίο θέλουμε να μεταβούμε, το Git δεν θα μας αφήσει να αλλάξουμε κλάδο.
61
+
Ωστόσο πρέπει να τονιστεί ότι αν πριν το κάνουμε αυτό υπάρχουν στον κατάλογο εργασίας μας ή στο ενδιάμεσο στάδιο αλλάγες που δεν έχουν υποβληθεί και έρχονται σε σύγκρουση με τον κλάδο στον οποίο θέλουμε να μεταβούμε, το Git δεν θα μας αφήσει να αλλάξουμε κλάδο.
62
62
Το καλύτερο είναι να έχουμε μία καθαρή κατασταση εργασίας όταν μεταβαίνουμε από έναν κλάδο σε άλλο.
63
63
Υπάρχουν τρόποι να παρακάμψουμε αυτήν τη συμπεριφορά (με τις εντολές `git stash` και `git commit -amend` που θα καλύψουμε στη συνέχεια, στην ενότητα <<ch07-git-tools#_git_stashing>>.
64
64
Προς το παρόν, ας υποθέσουμε ότι έχουμε υποβάλλει όλες τις αλλαγές μας, ώστε να μπορούμε να μεταβαίνουμε από και προς τον κλάδο `master` χωρίς προβλήματα:
Αυτή η επίλυση της σύγκρουσης περιέχει λίγο από κάθε τμήμα και οι γραμμές που περιέχουν τα `<<<<<<<`, `=======` και `>>>>>>>` έχουν αφαιρεθεί εντελώς.
244
244
Αφού έχουμε επιλύσει όλα τα τμήματα σε κάθε αρχείο που εμπλέκεται σε σύγκρουση, τρέχουμε `git add` σε καθένα από αυτά τα αρχεία, ώστε να επισημανθεί ως επιλυμένο.
245
-
Η προσθήκη ενός αρχείου στο στάδιο καταχώρισης το επισημαίνει ως επιλυμένο.
245
+
Η προσθήκη ενός αρχείου στο ενδιάμεσο στάδιο το επισημαίνει ως επιλυμένο.
246
246
247
247
Αν θέλουμε αν χρησιμοποιήσουμε κάποιο γραφικό εργαλείο για να επιλύσουμε αυτές τις συγκρούσεις, τρέξτε `git mergetool` για να εκκινήσουμε ένα κατάλληλο γραφικό εργαλείο συγχώνευσης που θα μας καθοδηγήσει ανάμεσα στις συγκρούσεις:(((εντολές git, mergetool)))
248
248
@@ -272,7 +272,7 @@ Hit return to start merge resolution tool (opendiff):
272
272
====
273
273
274
274
Αφού βγούμε από το εργαλείο συγχώνευσης, το Git μάς ρωτάει αν η συγχώνευση ήταν επιτυχής.
275
-
Αν του πούμε ότι ήταν, ωθεί το αρχείο στο στάδιο καταχώρισης ώστε να επισημανθεί ως επιλυμένο.
275
+
Αν του πούμε ότι ήταν, ωθεί το αρχείο στο ενδιάμεσο στάδιο ώστε να επισημανθεί ως επιλυμένο.
276
276
Μπορούμε να τρέξουμε την εντολή `git status` ξανά για να επιβεβαιώσουμε ότι όλες οι συγκρούσεις έχουν επιλυθεί:
277
277
278
278
[source,console]
@@ -287,7 +287,7 @@ Changes to be committed:
287
287
modified: index.html
288
288
----
289
289
290
-
Αν είμαστε ευχαριστημένοι με το αποτέλεσμα και επιβεβαιώσουμε ότι όλα τα εμπλεκόμενα σε συγκρούσεις αρχεία έχουν ωθηθεί στο στάδιο καταχώρισης, μπορούμε να πληκτρολογήσουμε `git commit` για να οριστικοποιήσουμε την υποβολή συγχώνευσης.
290
+
Αν είμαστε ευχαριστημένοι με το αποτέλεσμα και επιβεβαιώσουμε ότι όλα τα εμπλεκόμενα σε συγκρούσεις αρχεία έχουν ωθηθεί στο ενδιάμεσο στάδιο, μπορούμε να πληκτρολογήσουμε `git commit` για να οριστικοποιήσουμε την υποβολή συγχώνευσης.
291
291
Το μήνυμα υποβολής είναι εκ προεπιλογής κάπως έτσι:
Copy file name to clipboardExpand all lines: book/03-git-branching/sections/nutshell.asc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,8 +8,8 @@
8
8
Όταν κάνουμε κάνουμε μία υποβολή (commit), το Git αποθηκεύει ένα αντικείμενο υποβολής που περιέχει έναν δείκτη προς το στιγμιότυπο του περιεχομένου που έχει υποβληθεί.
9
9
Αυτό το αντικείμενο περιέχει επίσης το όνομα και email του συγγραφέα, το μήνυμα που έχουμε πληκτρολογήσει καθώς και δείκτες προς την υποβολή ή τις υποβολές που προηγήθηκαν ακριβώς πριν από αυτήν την υποβολή (δηλαδή, τον γονιό ή τους γονείς): όταν ένα αρχείο υποβάλλεται για πρώτη φορά, τότε δεν έχει κανέναν γονιό· μία συνηθισμένη υποβολή έχει έναν γονιό, ενώ μία υποβολή που προέκυψε από τη συγχώνευση δύο ή περισσότερων κλάδων έχει περισσότερους από έναν γονιό.
10
10
11
-
Για να το συγκεριμενοποιήσουμε λίγο, ας υποθέσουμε ότι έχουμε έναν κατάλογο που περιέχει τρία αρχεία, τα οποία έχουμε προσθέσει στο στάδιο καταχώρισης και επιτελούμε υποβολή.
12
-
Κατά την προσθήκη των αρχείων στο στάδιο καταχώρισης υπολογίζονται τα αθροίσματα ελέγχου (checksums) των αρχείων (με τον αλγόριθμο SHA-1, που αναφέρθηκε στην ενότητα <<ch01-getting-started#ch01-getting-started>>), αποθηκεύονται οι συγκεκριμένες εκδόσεις των αρχείων στο αποθετήριο Git (το Git ονομάζει αυτές τις εκδόσεις blobs footnote:[Blob είναι ακρωνύμιο για τον όρο Binary Large OBjects.] και προστίθενται τα αθροίσματα ελέγχου στο στάδιο καταχώρισης.
11
+
Για να το συγκεριμενοποιήσουμε λίγο, ας υποθέσουμε ότι έχουμε έναν κατάλογο που περιέχει τρία αρχεία, τα οποία έχουμε προσθέσει στην ενδιάμεση περιοχή και επιτελούμε υποβολή.
12
+
Κατά την προσθήκη των αρχείων στην ενδιάμεση περιοχή υπολογίζονται τα αθροίσματα ελέγχου (checksums) των αρχείων (με τον αλγόριθμο SHA-1, που αναφέρθηκε στην ενότητα <<ch01-getting-started#ch01-getting-started>>), αποθηκεύονται οι συγκεκριμένες εκδόσεις των αρχείων στο αποθετήριο Git (το Git ονομάζει αυτές τις εκδόσεις blobs footnote:[Blob είναι ακρωνύμιο για τον όρο Binary Large OBjects.] και προσθέτει τα αθροίσματα ελέγχου στην ενδιαμέση περιοχή.
0 commit comments