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
Αν είστε εξεικοιωμένοι με άλλα συστήματα ελέγχου έκδοσης όπως το Subversion, θα παρατηρήσετε ότι η εντολή είναι "clone" και όχι "checkout".
61
61
Αυτή είναι μια σημαντική διάκριση -- το Git δεν παίρνει απλά ένα αντίγραφο της τρέχουσας κατάστασης του αποθετηρίου, αλλά ένα πλήρες αντίγραφο σχεδόν όλων των δεδομένων που βρίσκονται στον διακομιστή.
62
62
Με την εντολή `git clone` όλες οι εκδόσεις του κάθε αρχείου του έργου αποθηκεύονται τοπικά.
63
-
Μάλιστα, αν ο δίσκος του διακομιστή σας αλλοιωθεί, μπορείτε να χρησιμοποιήσετε οποιονδήποτε από τους κλώνους του ώστε να θέσετε τον διακομιστή στην κατάσταση που ήταν όταν κλωνοποιήθηκε.
63
+
Μάλιστα, αν ο δίσκος του διακομιστή σας αλλοιωθεί, μπορείτε να χρησιμοποιήσετε οποιονδήποτε από τους κλώνους του ώστε να θέσετε τον διακομιστή στην κατάσταση που ήταν όταν κλωνοποιήθηκε (μπορεί να χαθεί κάποιο άγκιστρο (hook) από την μεριά του διακομιστή, αλλά τα δεδομένα με έκδοση θα είναι εκεί -- βλ. <<ch04-git-on-the-server#r_getting_git_on_a_server>> για περισσότερες πληροφορίες).
64
64
65
65
Για να κλωνοποιήσετε ένα αποθετήριο, εκτελείτε την εντολή `git clone <url>`.(((εντολές git, clone)))
66
66
Για παράδειγμα, αν θέλετε να κλωνοποιήσετε τη βιβλιοθήκη libgit2 του Git, θα πρέπει να εκτελέσετε:
Το Git συνεργάζεται με διάφορα πρωτόκολλα μεταφοράς που μπορείτε να χρησιμοποιήσετε.
85
85
Το προηγούμενο παράδειγμα χρησιμοποεί το πρωτόκολλο `https://`, ενδέχεται επίσης να δείτε το `git://` ή το `user@server:path/to/repo.git` το οποίο χρησιμοποιεί το πρωτόκολλο μεταφοράς SSH.
86
-
Το κεφάλαιο <<ch04-git-server#r_git_on_the_server>> παρουσιάζει όλες τις διαθέσιμες εναλλακτικές που με τις οποίες μπορεί ένας διακομιστής να σας δώσει πρόσβαση σε ένα αποθετήριο Git, καθώς και τα πλεονεκτήματα και μειονεκτήματα της κάθε εναλλακτικής.
86
+
Το κεφάλαιο <<ch04-git-on-the-server#r_getting_git_on_a_server>> παρουσιάζει όλες τις διαθέσιμες εναλλακτικές που με τις οποίες μπορεί ένας διακομιστής να σας δώσει πρόσβαση σε ένα αποθετήριο Git, καθώς και τα πλεονεκτήματα και μειονεκτήματα της κάθε εναλλακτικής.
Copy file name to clipboardExpand all lines: book/02-git-basics/sections/recording-changes.asc
+12-7Lines changed: 12 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,14 +31,14 @@ nothing to commit, working tree clean
31
31
Αυτό σημαίνει ότι έχετε ένα καθαρό κατάλογο εργασίας· με άλλα λόγια, κανένα από τα παρακολουθούμενα αρχεία σας δεν έχουν τροποποιηθεί.
32
32
Επίσης το Git δεν βλέπει κανένα μη-παρακολουθούμενο αρχείο, αλλιώς το Git θα τα παρέθετε στο παραπάνω μήνυμα.
33
33
Τέλος, η εντολή αυτή σας ενημερώνει σε ποιον κλάδο βρίσκεστε καθώς και ότι δεν έχει αποκλίνει από τον αντίστοιχο κλάδο που βρίσκεται στον διακομιστή.
34
-
Προς το παρόν ο κλάδος αυτός είναι ο "`master`", που είναι και ο προεπιλεγμένος.
34
+
Προς το παρόν ο κλάδος αυτός είναι ο `master`, που είναι και ο προεπιλεγμένος.
35
35
Η ενότητα <<ch03-git-branching#ch03-git-branching>> θα εξετάσει πιο αναλυτικά τους κλάδους και τις αναφορές.
36
36
37
37
[NOTE]
38
38
====
39
39
Το GitHub άλλαξε το προεπιλεγμένο όνομα κλάδου από `master` σε `main` στα μέσα του 2020, κάτι που μιμήθηκαν και άλλοι διακομιστές Git.
40
40
Συνεπώς, ενδεχομένως θα δείτε ότι το προεπιλεμγένο όνομα κλάδου σε κάποια πιο καινούρια αποθετήρια είναι `main` και όχι `master`.
41
-
Επιπλέον, το προεπιλεγμένο όνομα βρόχου μπορεί να τροποποιηθεί (όπως είδατε στην ενότητα <<ch01-getting-started#_new_default_branch>>), συνεπώς ίσως δείτε κάποιο άλλο όνομα για τον προεπιλεγμένο κλάδο.
41
+
Επιπλέον, το προεπιλεγμένο όνομα βρόχου μπορεί να τροποποιηθεί (όπως είδατε στην ενότητα <<ch01-getting-started#r_new_default_branch>>), συνεπώς ίσως δείτε κάποιο άλλο όνομα για τον προεπιλεγμένο κλάδο.
42
42
43
43
Πάντως, το ίδιο το Git χρησιμοποιεί το όνομα `master` ως προεπιλεγμένο, συνεπώς αυτό θα χρησιμοποιήσουμε κι εμείς σε αυτό το βιβλίο.
44
44
====
@@ -83,8 +83,9 @@ $ git add README
83
83
----
84
84
$ git status
85
85
On branch master
86
+
Your branch is up-to-date with 'origin/master'.
86
87
Changes to be committed:
87
-
(use "git reset HEAD <file>..." to unstage)
88
+
(use "git restore --staged <file>..." to unstage)
88
89
89
90
new file: README
90
91
@@ -235,7 +236,7 @@ $ cat .gitignore
235
236
* Μπορείτε να αντιστρέψετε ένα μοτίβο χρησιμοποιώντας ένα θαυμαστικό (`!`) στην αρχή του.
236
237
237
238
Τα μοτίβα αυτά μοιάζουν με απλοποιημένες κανονικές εκφράσεις (regular expressions), σαν αυτές που χρησιμοποιούν τα λειτουργικά συστήματα.
238
-
Ένας αστερίσκος (`*`) αντιστοιχεί σε μηδέν ή περισσότερους χαρακτήρες· το `[abc]` αντιστοιχεί σε οποιονδήποτε χαρακτήρα βρίσκεται μέσα στις αγκύλες (σε αυτή την περίπτωση `a`, `b` και `c`· το σύμβολο του αγγλικού ερωτηματικού (`?`) αντιστοιχεί σε έναν και μόνο χαρακτήρα· και οι αγκύλες που περιέχουν χαρακτήρες που διαχωρίζονται με παύλα (`[0-9]`) αντιστοιχίζονται σε όλους τους χαρακτήρες που υπάρχουν μεταξύ τους (σε αυτή την περίπτωση, όλους τους αριθμούς από το 0 μέχρι το 9).
239
+
Ένας αστερίσκος (`\*`) αντιστοιχεί σε μηδέν ή περισσότερους χαρακτήρες· το `[abc]` αντιστοιχεί σε οποιονδήποτε χαρακτήρα βρίσκεται μέσα στις αγκύλες (σε αυτή την περίπτωση `a`, `b` και `c`)· το σύμβολο του αγγλικού ερωτηματικού (`?`) αντιστοιχεί σε έναν και μόνο χαρακτήρα· και οι αγκύλες που περιέχουν χαρακτήρες που διαχωρίζονται με παύλα (`[0-9]`) αντιστοιχίζονται σε όλους τους χαρακτήρες που υπάρχουν μεταξύ τους (σε αυτή την περίπτωση, όλους τους αριθμούς από το 0 μέχρι το 9).
239
240
Μπορείτε επίσης να χρησιμοποιήσετε δύο αστερίσκους για να αντιστοιχίσετε εμφωλευμένους καταλόγους· η έκφραση `a/**/z` αντιστοιχεί στους καταλόγους `a/z`, `a/b/z`, `a/b/c/z` κ.ο.κ.
240
241
241
242
Ορίστε άλλο ένα παράδειγμα ενός αρχείου `.gitignore`:
@@ -431,7 +432,11 @@ $ git commit
431
432
----
432
433
433
434
Όταν το κάνετε, θα εκκινήσετε τον προεπιλεγμένο επεξεργαστή κειμένου σας.
434
-
Αυτός είναι καθορισμένος από τη μεταβλητή περιβάλλοντος (environment variable) της γραμμής εντολών, `$EDITOR`, και συνήθως είναι ο vim ή ο emacs, αλλά μπορείτε να χρησιμοποιήσετε την εντολή `git config --global core.editor` ώστε να χρησιμοποιήσετε τον επεξεργαστή κειμένου της αρεσκείας σας, όπως είδατε στο <<ch01-introduction#ch01-introduction>>.(((επεξεργαστής κειμένου, αλλαγή προεπιλεγμένου)))(((εντολές git, config)))
435
+
436
+
[NOTE]
437
+
====
438
+
Αυτός είναι καθορισμένος από τη μεταβλητή περιβάλλοντος (environment variable) της γραμμής εντολών, `$EDITOR`, και συνήθως είναι ο vim ή ο emacs, αλλά μπορείτε να χρησιμοποιήσετε την εντολή `git config --global core.editor` ώστε να χρησιμοποιήσετε τον επεξεργαστή κειμένου της αρεσκείας σας, όπως είδατε στο <<ch01-getting-started#ch01-getting-started>>.(((επεξεργαστής κειμένου, αλλαγή προεπιλεγμένου)))(((εντολές git, config)))
439
+
====
435
440
436
441
Ο επεξεργαστής κειμένου σας θα εμφανίσει το παρακάτω κείμενο (αυτό το παράδειγμα είναι οθόνη του Vim):
437
442
@@ -505,7 +510,7 @@ $ git commit -a -m 'Add new benchmarks'
505
510
1 file changed, 5 insertions(+), 0 deletions(-)
506
511
----
507
512
508
-
Παρατηρείτε ότι στην περίπτωση αυτή, δεν έχετε εκτελέσει την εντολή `git add` για το αρχείο "`CONTRIBUTING.md`" πριν υποβάλετε το στιγμιότυπό σας επειδή η σημαία `-a` περιλαμβάνει όλα τα αρχεία που έχουν τροποποιηθεί.
513
+
Παρατηρείτε ότι στην περίπτωση αυτή, δεν έχετε εκτελέσει την εντολή `git add` για το αρχείο `CONTRIBUTING.md` πριν υποβάλετε το στιγμιότυπό σας επειδή η σημαία `-a` περιλαμβάνει όλα τα αρχεία που έχουν τροποποιηθεί.
509
514
Αυτό είναι βολικό, αλλά χρειάζεται προσοχή· με αυτή η σημαία μπορεί μερικές φορές να συμπεριλάβτε αλλαγές που δεν θέλατε να υποβάλετε.
510
515
511
516
[[r_removing_files]]
@@ -610,7 +615,7 @@ Changes to be committed:
610
615
(use "git reset HEAD <file>..." to unstage)
611
616
612
617
renamed: README.md -> README
613
-
----
618
+
----
614
619
615
620
Η εντολή αυτή όμως, είναι ισοδύναμη με το να εκτελέσετε το εξής:
Επιπλέον ενδεχομένως μπορείτε να ωθήσετε αλλαγές σε κάποιο ή κάποια από αυτά τα απομακρυσμένα αποθετήρια, αν και αυτό δεν το γνωρίζουμε ακόμα.
69
69
70
70
Παρατηρήστε ότι τα απομακρυσμένα αποθετήρια χρησιμοποιούν πολλά πρωτόκολλα·
71
-
θα καλύψετε αναλυτικά τα πρωτόκολλα αυτά στο <<ch04-git-server#r_git_on_the_server>>.
71
+
θα καλύψετε αναλυτικά τα πρωτόκολλα αυτά στο <<ch04-git-server#r_getting_git_on_a_server>>.
72
72
73
73
==== Προσθήκη απομακρυσμένων αποθετηρίων
74
74
75
75
Έχουμε ήδη αναφέρει και έχουμε επιδείξει πώς η εντολή `git clone` _έμμεσα_ προσθέτει το απομακρυσμένο αποθετήριο `origin` στο αποθετήριό σας.
76
-
Ας δείτε πώς μπορείτε να προσθέσουμε ένα νέο απομακρυσμένο αποθετήριο _άμεσα_.(((εντολές git, remote)))
76
+
Ας δούμε πως μπορούμε να προσθέσουμε ένα νέο απομακρυσμένο αποθετήριο _άμεσα_.(((εντολές git, remote)))
77
77
Για να προσθέσετε ένα νέο απομακρυσμένο αποθτεήριο Git με ένα σύντομο όνομα, το οποίο μπορείτε να θυμάστε εύκολα, εκτελέστε την εντολή `git remote add <shortname> <url>`:
78
78
79
79
[source,console]
@@ -249,8 +249,7 @@ paul
249
249
Στον κλάδο στον οποίο αναφερόσασταν ως `pb/master` πλέον θα αναφέρεστε ως `paul/master`.
250
250
251
251
Μπορεί επίσης για κάποιο λόγο να θέλετε να διαγράψετε ένα απομακρυσμένο αποθετήριο.
252
-
Για παράδειγμα, μπορεί ο διακομιστής έχει μετακινηθεί σε άλλη διεύθυνση ή δεν χρησιμοποιείτε καθόλου το συγκεκριμένο αποθετήριο, ή απλά κάποιος συνεργάτης έχει εγκαταλείψει.
253
-
Σε αυτή την περίπτωση μπορείτε να χρησιμοποιήσετε την εντολή `git remote rm`:
252
+
Για παράδειγμα, μπορεί ο διακομιστής έχει μετακινηθεί σε άλλη διεύθυνση ή δεν χρησιμοποιείτε καθόλου το συγκεκριμένο αποθετήριο, ή απλά κάποιος συνεργάτης έχει εγκαταλείψει -- μπορείτε να χρησιμοποιήσετε είτε την εντολή `git remote remove` ή την `git remote rm`:
254
253
255
254
[source,console]
256
255
----
@@ -259,4 +258,6 @@ $ git remote
259
258
origin
260
259
----
261
260
261
+
Μόλις σβήσετε την αναφορά σε κάποιο απομακρυσμένο αποθετήριο, όλοι οι απομακρυσμένοι κλάδοι και όλες οι ρυθμίσεις που είναι σχετικές με αυτό το απομακρυσμένο αποθετήριο, θα σβηστούν επίσης.
Ένας άλλος τρόπος για να βάζετε ετικέτες στις υποβολές είναι οι απλές (lightweight) ετικέτες.
104
104
Μία τέτοια ετικέτα δεν είναι τίποτα άλλο από το άθροισμα ελέγχου της υποβολής σας, που αποθηκεύεται σε ένα αρχείο· δεν διατηρείται καμία άλλη πληροφορία.
105
-
Για να δημιουργήσετε μια απλή ετικέτα, θα πρέπει να μην χρησιμοποιήσετε τις επιλογές `-a`, `-s` ή `-m`:
105
+
Για να δημιουργήσετε μια απλή ετικέτα, δεν θα πρέπει να χρησιμοποιήσετε τις επιλογές `-a`, `-s` ή `-m`:
Αυτό ερμηνεύεται ως εξής: η ετικέτα της οποίας το ονομα είναι ο χαρακτήρας null πριν από το `:` ωθείται στο απομακρυσμένο όνομα ετικέτας και ουσιαστικά το διαγράφει.
252
252
253
-
Η δεύτερη και πιο διαισθητική) είναι να διαγράψετε την ετικέτα ως εξής:
253
+
Η δεύτερη (και πιο διαισθητική) είναι να διαγράψετε την ετικέτα ως εξής:
254
254
255
255
[source,console]
256
256
----
257
257
$ git push origin --delete <tagname>
258
258
----
259
259
260
-
==== Ανάσυρση (check out) ετικετών
260
+
==== Ενημέρωση (check out) ετικετών
261
261
262
262
Για να δείτε τις εκδόσεις των αρχείων σας στα οποία δείχνει μία ετικέτα, μπορείτε να εκτελέσετε `git checkout` για αυτή την ετικέτα, αλλά αυτό θέτει το αποθετήριό σας σε κατάσταση "`detached HEAD`", κάτι που έχει κάποιες παρενέργειες:
0 commit comments