Skip to content

Commit 43102fd

Browse files
committed
update 5/8 files of 10-git-internals module
1 parent 64a7e0d commit 43102fd

File tree

5 files changed

+218
-164
lines changed

5 files changed

+218
-164
lines changed

book/10-git-internals/sections/environment.asc

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
Περιστασιακά, είναι χρήσιμο να μάθουμε ποιες είναι αυτές και πώς μπορούν να χρησιμοποιηθούν για να κάνουν το Git να συμπεριφέρεται όπως θέλουμε.
55
Δεν πρόκειται για μια εξαντλητική λίστα με όλες τις μεταβλητές περιβάλλοντος στις οποίες το Git δίνει σημασία, αλλά θα καλύψουμε τις πιο χρήσιμες.
66

7-
87
==== Καθολική συμπεριφορά
98

109
Μέρος της συμπεριφοράς του Git ως πρόγραμμα υπολογιστή εξαρτάται από τις μεταβλητές περιβάλλοντος.
@@ -13,7 +12,7 @@
1312
Μπορούμε να ελέγξουμε την τρέχουσα ρύθμιση εκτελώντας το `git --exec-path`.
1413

1514
Η *`HOME`* δεν θεωρείται συνήθως εξατομικεύσιμη (πάρα πολλά πράγματα εξαρτώνται από αυτήν), αλλά είναι όπου το Git ψάχνει για το καθολικό αρχείο διαμόρφωσης.
16-
Εάν θέλουμε μια πραγματικά φορητή εγκατάσταση Git, πλήρη με καθολική διαμόρφωση, μπορούμε να αντικαταστήσουμε την `HOME` στο προφίλ κελύφους του φορητού Git.
15+
Εάν θέλουμε μια πραγματικά φορητή εγκατάσταση Git, πλήρης με καθολική διαμόρφωση, μπορούμε να αντικαταστήσουμε την `HOME` στο προφίλ κελύφους του φορητού Git.
1716

1817
Η *`PREFIX`* είναι παρόμοια, αλλά για διαμόρφωση σε όλο το σύστημα.
1918
Το Git αναζητά αυτό το αρχείο στο `$PREFIX/etc/gitconfig`.
@@ -24,7 +23,7 @@
2423
Η *`GIT_PAGER`* ελέγχει το πρόγραμμα που χρησιμοποιείται για την εμφάνιση εξόδου πολλών σελίδων στη γραμμή εντολών.
2524
Αν είναι απενεργοποιημένη, θα χρησιμοποιηθεί ως εναλλακτική λύση η `PAGER` .
2625

27-
Η *`GIT_EDITOR`* είναι ο επεξεργαστής τον οποίο θα ξεκινήσει το Git όταν ο χρήστης χρειάζεται να επεξεργαστεί κάποιο κείμενο (για παράδειγμα ένα μήνυμα αποστολής).
26+
Η *`GIT_EDITOR`* είναι ο επεξεργαστής τον οποίο θα ξεκινήσει το Git όταν ο χρήστης χρειάζεται να επεξεργαστεί κάποιο κείμενο (για παράδειγμα ένα μήνυμα υποβολής).
2827
Εάν είναι απενεργοποιημένη, θα χρησιμοποιηθεί η `EDITOR`.
2928

3029
==== Τοποθεσίες αποθετηρίων
@@ -38,7 +37,7 @@
3837
Εάν έχουμε πρόσβαση σε καταλόγους που φορτώνουν αργά (όπως σε μονάδες μαγνητοταινίας ή σε αργή σύνδεση δικτύου), ίσως θέλουμε να κάνουμε το Git να σταματήσει να δοκιμάζει νωρίτερα από ότι θα σταματούσε αλλιώς, ειδικά αν το Git καλείται όταν δημιουργείται η προτροπή του κελύφους μας.
3938

4039
Η *`GIT_WORK_TREE`* είναι η θέση της ρίζας του καταλόγου εργασίας για ένα μη γυμνό αποθετήριο.
41-
Εάν δεν έχει καθοριστεί, χρησιμοποιείται ο γονικός κατάλογος του `$GIT_DIR`.
40+
Εάν `--git-dir` ή `GIT_DIR` έχουν καθοριστεί αλλά καμία από τις `--work-tree`, `GIT_WORK_TREE` ή `core.worktree` δεν έχει καθοριστεί, ο τρέχον κατάλογος θεωρείται το αρχικό επίπεδο του δέντρου εργασίας.
4241

4342
Η *`GIT_INDEX_FILE`* είναι η διαδρομή στο αρχείο του ευρετηρίου (για μη γυμνά αποθετήρια μονον).
4443

@@ -49,37 +48,35 @@
4948

5049
==== Pathspecs
5150

52-
Ένα ``pathspec'' αναφέρεται στον τρόπο με τον οποίο καθορίζουμε διαδρομές στο Git, συμπεριλαμβανομένης της χρήσης μπαλαντέρ.
51+
Ένα "`pathspec`" αναφέρεται στον τρόπο με τον οποίο καθορίζουμε διαδρομές (paths) στο Git, συμπεριλαμβανομένης της χρήσης μπαλαντέρ.
5352
Αυτά χρησιμοποιούνται στο αρχείο `.gitignore`, αλλά και στη γραμμή εντολών (`git add *.c`).
5453

55-
Οι *`GIT_GLOB_PATHSPECS` και `GIT_NOGLOB_PATHSPECS`* ελέγχουν την προεπιλεγμένη συμπεριφορά των μπαλαντέρ στα pathspecs.
56-
Αν η `GIT_GLOB_PATHSPECS` έχει τιμή 1, οι χαρακτήρες μπαλαντέρ δρουν ως μπαλαντέρ (αυτή είναι και η προεπιλεγμένη συμπεριφορά)· αν η `GIT_NOGLOB_PATHSPECS` έχει τιμή 1, οι χαρακτήρες μπαλαντέρ αντιμετωπίζονται ως απλοί χαρακτήρες, κάτι που σημαίνει ότι κάτι σαν `*.c` θα αντιστοιχούσε μόνο σε ένα αρχείο _με όνομα_ `*.c`, αντί σε οποιοδήποτε αρχείο του οποίου το όνομα τελειώνει σε `.c`
57-
Μπορούμε να παρακάμψουμε αυτήν τη συμπεριφορά σε μεμονωμένες περιπτώσεις ξεκινώντας το pathspec με `:(glob)` ή `:(literal)`, όπως στο `:(glob)*.c`.
54+
Οι *`GIT_GLOB_PATHSPECS`* και *`GIT_NOGLOB_PATHSPECS`* ελέγχουν την προεπιλεγμένη συμπεριφορά των μπαλαντέρ στα pathspecs.
55+
Αν η `GIT_GLOB_PATHSPECS` έχει τιμή 1, οι χαρακτήρες μπαλαντέρ δρουν ως μπαλαντέρ (αυτή είναι και η προεπιλεγμένη συμπεριφορά)· αν η `GIT_NOGLOB_PATHSPECS` έχει τιμή 1, οι χαρακτήρες μπαλαντέρ αναζητούν μόνο τον εαυτό τους, κάτι που σημαίνει πως κάτι σαν `\*.c` θα αντιστοιχούσε μόνο σε ένα αρχείο _με όνομα_ "`\*.c`", αντί σε οποιοδήποτε αρχείο του οποίου το όνομα τελειώνει σε `.c`
56+
Μπορούμε να παρακάμψουμε αυτήν τη συμπεριφορά σε μεμονωμένες περιπτώσεις ξεκινώντας το pathspec με `:(glob)` ή `:(literal)`, όπως στο `:(glob)\*.c`.
5857

5958
Η *`GIT_LITERAL_PATHSPECS`* απενεργοποιεί και τις δύο παραπάνω συμπεριφορές· δεν θα λειτουργούν χαρακτήρες μπαλαντέρ και τα προθέματα παράκαμψης απενεργοποιούνται επίσης.
6059

6160
Η *`GIT_ICASE_PATHSPECS`* ορίζει όλα τα pathspecs να λειτουργούν χωρίς διάκριση πεζών/κεφαλαίων.
6261

63-
6462
==== Υποβολές
6563

6664
Η τελική δημιουργία ενός αντικειμένου υποβολής Git γίνεται συνήθως με την `git-commit-tree`, η οποία χρησιμοποιεί αυτές τις μεταβλητές περιβάλλοντος ως την κύρια πηγή πληροφόρησης, και χρησιμοποιεί τις τιμές διαμόρφωσης μόνο αν οι τιμές των μεταβλητών περιβάλλοντος δεν έχουν οριστεί.
6765

68-
Η *`GIT_AUTHOR_NAME`* είναι το ανθρωπανάγνωστο όνομα στο πεδίο `author`.
66+
Η *`GIT_AUTHOR_NAME`* είναι το ανθρωπανάγνωστο όνομα στο πεδίο "`author`".
6967

70-
H *`GIT_AUTHOR_EMAIL`* είναι η διεύθυνση e-mail για το πεδίο `author`.
68+
H *`GIT_AUTHOR_EMAIL`* είναι η διεύθυνση e-mail για το πεδίο "`author`".
7169

72-
H *`GIT_AUTHOR_DATE`* είναι η χρονοσήμανση που χρησιμοποιείται για το πεδίο `author`.
70+
H *`GIT_AUTHOR_DATE`* είναι η χρονοσήμανση που χρησιμοποιείται για το πεδίο "`author`".
7371

74-
H *`GIT_COMMITTER_NAME`* ορίζει το ανθρώπινο όνομα για το πεδίο `committer`.
72+
H *`GIT_COMMITTER_NAME`* ορίζει το ανθρώπινο όνομα για το πεδίο "`committer`".
7573

76-
H *`GIT_COMMITTER_EMAIL`* είναι η διεύθυνση e-mail για το πεδίο `committer`.
74+
H *`GIT_COMMITTER_EMAIL`* είναι η διεύθυνση e-mail για το πεδίο "`committer`".
7775

78-
H *`GIT_COMMITTER_DATE`* χρησιμοποιείται για τη χρονοσήμανση στο πεδίο `committer`.
76+
H *`GIT_COMMITTER_DATE`* χρησιμοποιείται για τη χρονοσήμανση στο πεδίο "`committer`".
7977

8078
H *`EMAIL`* είναι η εναλλακτική διεύθυνση e-mail για την περίπτωση που δεν έχει οριστεί η τιμή διαμόρφωσης `user.email`.
81-
Εάν το _αυτή_ δεν έχει οριστεί, το Git χρησιμοποιεί το όνομα του χρήστη και του υπολογιστή.
82-
79+
Εάν _αυτή_ δεν έχει οριστεί, το Git χρησιμοποιεί το όνομα του χρήστη και του υπολογιστή.
8380

8481
==== Δικτύωση
8582

@@ -95,7 +92,6 @@ H *`GIT_SSL_NO_VERIFY`* λέει στο Git να μην επαληθεύει τ
9592
H *`GIT_HTTP_USER_AGENT`* ορίζει τη συμβολοσειρά χρήστη-πράκτορα που χρησιμοποιείται από το Git κατά την επικοινωνία μέσω HTTP.
9693
Η προεπιλογή είναι μια τιμή όπως η `git/2.0.0`.
9794

98-
9995
==== Diff και συγχώνευση
10096

10197
H *`GIT_DIFF_OPTS`* έχει λίγο παραπλανητικό όνομα.
@@ -104,7 +100,7 @@ H *`GIT_DIFF_OPTS`* έχει λίγο παραπλανητικό όνομα.
104100
H *`GIT_EXTERNAL_DIFF`* χρησιμοποιείται για να παρακάμψει την τιμή διαμόρφωσης `diff.external`.
105101
Εάν έχει οριστεί, το Git θα καλέσει αυτό το πρόγραμμα όταν καλείται η `git diff`.
106102

107-
Οι *`GIT_DIFF_PATH_COUNTER`* και *`GIT_DIFF_PATH_TOTAL`* είναι χρήσιμες από μέσα από το πρόγραμμα που καθορίζεται από την `GIT_EXTERNAL_DIFF` ή την `diff.external`.
103+
Οι *`GIT_DIFF_PATH_COUNTER`* και *`GIT_DIFF_PATH_TOTAL`* είναι χρήσιμες μέσα από το πρόγραμμα που καθορίζεται, από την `GIT_EXTERNAL_DIFF` ή την `diff.external`.
108104
Η πρώτη αντιπροσωπεύει ποιο αρχείο είναι η αναφορά σε μια ακολουθία αρχείων diff (ξεκινώντας από το 1), και το τελευταίο είναι ο συνολικός αριθμός αρχείων της παρτίδας.
109105

110106
H *`GIT_MERGE_VERBOSITY`* ελέγχει την έξοδο για τη στρατηγική αναδρομικής συγχώνευσης.
@@ -121,11 +117,12 @@ H *`GIT_MERGE_VERBOSITY`* ελέγχει την έξοδο για τη στρα
121117

122118
==== Αποσφαλμάτωση
123119

124-
Αυτό που κάνει _πραγματικά_ το Git είναι ότι έχει μια αρκετά ολοκληρωμένη σειρά ενσωματωμένων ιχνών και το μόνο που χρειάζεται να κάνουμε είναι να τα ενεργοποιήσουμε.
120+
Θέλουμε _πραγματικά_ να μάθουμε τι κάνεις το Git;
121+
Το Git έχει μια αρκετά ολοκληρωμένη σειρά ενσωματωμένων ιχνών και το μόνο που χρειάζεται να κάνουμε είναι να τα ενεργοποιήσουμε.
125122
Οι δυνατές τιμές αυτών των μεταβλητών είναι οι εξής:
126123

127-
*`true`, `1` ή `2` —η κατηγορία του ίχνους που γράφεται στην stderr.
128-
* Μια απόλυτη διαδρομή που αρχίζει με `/` —η έξοδος του ίχνους θα γραφτεί σε αυτό το αρχείο.
124+
* "`true`", "`1`", ή "`2`" —η κατηγορία του ίχνους που γράφεται στην stderr.
125+
* Μια απόλυτη διαδρομή (path) που αρχίζει με `/` —η έξοδος του ίχνους θα γραφτεί σε αυτό το αρχείο.
129126

130127
H *`GIT_TRACE`* ελέγχει γενικά τα ίχνη, τα οποία δεν ταιριάζουν σε κάποια συγκεκριμένη κατηγορία.
131128
Αυτό περιλαμβάνει την επέκταση των ψευδώνυμων (aliases) και την ανάθεση σε άλλα υποπρογράμματα.
@@ -172,7 +169,7 @@ $ GIT_TRACE_PACKET=true git ls-remote origin
172169
----
173170

174171
H *`GIT_TRACE_PERFORMANCE`* ελέγχει την καταγραφή δεδομένων απόδοσης.
175-
Η έξοδος δείχνει πόση ώρα παίρνη η κάθε κλήση σε εντολή του git.
172+
Η έξοδος δείχνει πόση ώρα παίρνει η κάθε κλήση σε εντολή του `git`.
176173

177174
[source,console]
178175
----
@@ -211,16 +208,18 @@ nothing to commit, working directory clean
211208
==== Διάφορα
212209

213210
H *`GIT_SSH`*, εφόσον ορίζεται, είναι ένα πρόγραμμα που καλείται αντί του `ssh` όταν το Git προσπαθεί να συνδεθεί με έναν κεντρικό υπολογιστή SSH.
214-
Καλείται ως `$GIT_SSH [username @] host [-p <θύρα>] <εντολή>`.
215-
Ας σημειωθεί ότι αυτός δεν είναι ο ευκολότερος τρόπος για να εξατομικεύσουμε τον τρόπο με τον οποίο καλείται η `ssh`· δεν υποστηρίζει επιπλέον παραμέτρους γραμμής εντολών, οπότε θα πρέπει να γράψουμε ένα wrapper script και να ορίσουμε την `GIT_SSH` να δείχνει σε αυτό.
216-
Είναι μάλλον ευκολότερο να χρησιμοποιήσουμε το αρχείο `~/.ssh/config` για αυτό.
211+
Καλείται ως `$GIT_SSH [username@]host [-p <port>] <command>`.
212+
Ας σημειωθεί ότι αυτός δεν είναι ο ευκολότερος τρόπος για να εξατομικεύσουμε τον τρόπο με τον οποίο καλείται η `ssh`· δεν θα υποστηρίζει επιπλέον παραμέτρους γραμμής εντολών.
213+
Για να μπορέσουμε να έχουμε επιπλέον παραμέτρους γραμμής εντολών, μπορούμε να χρησιμοποιήσουμε την *`GIT_SSH_COMMAND`*, να γράψουμε ένα wrapper script και να ορίσουμε την `GIT_SSH` να δείχνει σε αυτό ή να χρησιμοποιήσουμε το αρχείο `~/.ssh/config`.
214+
215+
*`GIT_SSH_COMMAND`* ορίζει την εντολή SSH που χρησιμοποιείται όταν το Git προσπαθεί να συνδεθεί σε έναν SSH διακομιστή.
216+
Η εντολή μεταγλωρίζεται από το κέλυφος, και επιπλεόν παράμετροι γραμμής εντολών μπορούν να χρησιμοποιηθούν με `ssh`, δηλαδή κάτι σαν `GIT_SSH_COMMAND="ssh -i ~/.ssh/my_key" git clone [email protected]:my/repo`.
217217

218218
H *`GIT_ASKPASS`* παρακάμπτει την τιμή διαμόρφωσης `core.askpass`.
219-
Αυτό είναι το πρόγραμμα που καλείται κάθε φορά που το Git χρειάζεται να ζητήσει διαπιστευτήρια από τον χρήστη, και παίρνει ένα κείμενο για προτροπή ως όρισμα γραμμής εντολών και επιστρέφει την απάντηση στη `stdout`.
220-
(Περισσότερα σχετικά με αυτό το υποσύστημα στην ενότητα <<ch07-git-tools#r_credential_caching>>.)
219+
Αυτό είναι το πρόγραμμα που καλείται κάθε φορά που το Git χρειάζεται να ζητήσει διαπιστευτήρια από τον χρήστη, και παίρνει ένα κείμενο για προτροπή ως όρισμα γραμμής εντολών και επιστρέφει την απάντηση στη `stdout` (βλ. <<ch07-git-tools#r_credential_caching>> για περισσότερα σχετικά με αυτό το υποσύστημα).
221220

222221
H *`GIT_NAMESPACE`* ελέγχει την πρόσβαση στις αναφορές του ονοματοχώρου και είναι ισοδύναμη με τη σημαία `--namespace`.
223-
Αυτό είναι χρήσιμο κυρίως από την πλευρά του διακομιστή, όπου μπορεί να θέλουμε να αποθηκεύσουμε πολλαπλές αποσχίσεις ενός αποθετηρίου σε ένα αποθετήριο, διατηρώντας μόνο τα ref ξεχωριστά.
222+
Αυτό είναι χρήσιμο κυρίως από την πλευρά του διακομιστή, όπου μπορεί να θέλουμε να αποθηκεύσουμε πολλαπλές αποσχίσεις (forks) ενός αποθετηρίου σε ένα αποθετήριο, διατηρώντας μόνο τα refs ξεχωριστά.
224223

225224
H *`GIT_FLUSH`* μπορεί να χρησιμοποιηθεί για να αναγκάσει το Git να χρησιμοποιήσει I/O χωρίς βαθμίδες απομόνωσης (buffers) όταν γράφει σταδιακά στη stdout.
226225
Η τιμή 1 προκαλεί την εκκαθάριση του Git συχνότερα, η τιμή 0 προκαλεί την προσωρινή τοποθέτηση όλων των εξόδων στη βαθμίδα απομόνωσης.
@@ -231,8 +230,8 @@ H *`GIT_REFLOG_ACTION`* μας επιτρέπει να καθορίσουμε τ
231230

232231
[source,console]
233232
----
234-
$ GIT_REFLOG_ACTION="my action" git commit --allow-empty -m 'my message'
235-
[master 9e3d55a] my message
233+
$ GIT_REFLOG_ACTION="my action" git commit --allow-empty -m 'My message'
234+
[master 9e3d55a] My message
236235
$ git reflog -1
237-
9e3d55a HEAD@{0}: my action: my message
236+
9e3d55a HEAD@{0}: my action: My message
238237
----

0 commit comments

Comments
 (0)