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/07-git-tools/1-git-tools.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
@@ -1,10 +1,10 @@
1
1
[[_git_tools]]
2
-
== Git Tools
2
+
== Εργαλεία του Git
3
3
4
-
By now, you’ve learned most of the day-to-day commands and workflows that you need to manage or maintain a Git repository for your source code control.
5
-
You’ve accomplished the basic tasks of tracking and committing files, and you’ve harnessed the power of the staging area and lightweight topic branching and merging.
4
+
Μέχρι τώρα έχουμε μάθει τις περισσότερες από τις καθημερινές εντολές και ροές εργασίας που χρειαζόμαστε για να διαχειριστούμε ή να συντηρήσουμε ένα αποθετήριο Git για τον έλεγχο εκδόσεων του πηγαίου κώδικά μας.
5
+
Έχουμε φέρει σε πέρας τις θεμελιώδεις εργασίες της παρακολούθησης και υποβολής αρχείων και έχουμε δαμάσει τη δύναμη της ενδιάμεσης περιοχής και τις ελαφριές εργασίες της θεματικής διακλάδωσης και συγχώνευσης.
6
6
7
-
Now you’ll explore a number of very powerful things that Git can do that you may not necessarily use on a day-to-day basis but that you may need at some point.
7
+
Τώρα θα εξερευνήσουμε μερικές πολύ ισχυρές λειτουργίες που μπορεί να κάνει το Git που δεν θα χρησιμοποιήσουμε απαραίτητα σε καθημερινή βάση αλλά ενδεχομένως θα χρειαστούμε σε κάποια στιγμή.
8
8
9
9
include::sections/revision-selection.asc[]
10
10
@@ -34,9 +34,9 @@ include::sections/replace.asc[]
34
34
35
35
include::sections/credentials.asc[]
36
36
37
-
=== Summary
37
+
=== Ανακεφαλαίωση
38
38
39
-
You’ve seen a number of advanced tools that allow you to manipulate your commits and staging area more precisely.
40
-
When you notice issues, you should be able to easily figure out what commit introduced them, when, and by whom.
41
-
If you want to use subprojects in your project, you’ve learned how to accommodate those needs.
42
-
At this point, you should be able to do most of the things in Git that you’ll need on the command line day to day and feel comfortable doing so.
39
+
Έχουμε δει αρκετά προχωρημένα εργαλεία που μας επιτρέπουν να χειριζόμαστε με μεγαλύτερη ακρίβεια τις υποβολές μας και το ενδιάμεσο στάδιο.
40
+
Πλέον όταν παρατηρούμε προβλήματα, είμαστε σε θέση να καταλαβαίνουμε εύκολα ποια υποβολή τα εισήγαγε, πότε έγινε αυτή και από ποιον.
41
+
Αν θέλουμε να χρησιμοποιήσουμε υποέργα στο έργο μας, έχουμε μάθει πώς να ικανοποιήσουμε και αυτήν την ανάγκη.
42
+
Σε αυτό το σημείο, είμαστε σε θέση να κάνουμε τα περισσότερα από τα πράγματα στο Git που θα χρειαστούμε στη γραμμή εντολών καθημερινά και αισθανόμαστε αυτοπεποίθηση να τα κάνουμε.
Though we've covered the common ways to transfer Git data over a network (HTTP, SSH, etc), there is actually one more way to do so that is not commonly used but can actually be quite useful.
4
+
Αν και καλύψαμε τους συνήθεις τρόπους μεταφοράς των δεδομένων του Git μέσω δικτύου (HTTP, SSH κ.λπ.), υπάρχει πράγματι ένας ακόμη τρόπος να το κάνουμε αυτό που δεν χρησιμοποιείται συνήθως, αλλά μπορεί να είναι πραγματικά πολύ χρήσιμος.
5
5
6
-
Git is capable of ``bundling'' its data into a single file.
7
-
This can be useful in various scenarios.
8
-
Maybe your network is down and you want to send changes to your co-workers.
9
-
Perhaps you're working somewhere offsite and don't have access to the local network for security reasons.
10
-
Maybe your wireless/ethernet card just broke.
11
-
Maybe you don't have access to a shared server for the moment, you want to email someone updates and you don't want to transfer 40 commits via `format-patch`.
6
+
Το Git είναι ικανό να ``δεματιάζει'' (bundle0) τα δεδομένα του σε ένα μοναδικό αρχείο.
7
+
Αυτό μπορεί να είναι χρήσιμο σε διάφορες περιστάσεις.
8
+
Ίσως το δίκτυό μας να είναι πεσμένο και θέλουμε να στείλουμε αλλαγές στους συναδέλφους μας.
9
+
Ίσως εργαζόμαστε κάπου εξ αποστάσεως και δεν έχουμε πρόσβαση στο τοπικό δίκτυο για λόγους ασφαλείας.
10
+
Ίσως η κάρτα μας ασύρματου δικτύου / δικτύου ethernet μόλις χάλασε.
11
+
Ίσως δεν έχουμε επί του παρόντος πρόσβαση σε έναν κοινόχρηστο διακομιστή, θέλουμε να στείλουμε διορθώσεις με e-mail σε κάποιον χρήστη και δεν θέλουμε να μεταφέρουμε 40 υποβολές μέσω της `format-patch`.
12
12
13
-
This is where the `git bundle` command can be helpful.
14
-
The `bundle` command will package up everything that would normally be pushed over the wire with a `git push` command into a binary file that you can email to someone or put on a flash drive, then unbundle into another repository.
13
+
Σε αυτές τις περιστάσεις η εντολή `git bundle` μπορεί να είναι χρήσιμη.
14
+
Η εντολή `bundle` πακετάρει όλα όσα θα έπρεπε κανονικά να ωθηθούν πάνω από το δίκτυο με την εντολή `git push` σε ένα δυαδικό αρχείο το οποίο μπορούμε να στείλουμε με email σε κάποιον ή να τοποθετήσουμε μια flash drive και στη συνέχεια να ξεπακετάρουμε σε κάποιο άλλο αποθετήριο.
15
15
16
-
Let's see a simple example.
17
-
Let's say you have a repository with two commits:
16
+
Ας δούμε ένα απλό παράδειγμα.
17
+
Ας υποθέσουμε ότι έχουμε ένα αποθετήριο με δύο υποβολές:
If you want to send that repository to someone and you don't have access to a repository to push to, or simply don't want to set one up, you can bundle it with `git bundle create`.
35
+
Εάν θέλουμε να στείλουμε αυτό το αποθετήριο σε κάποιον και δεν έχουμε πρόσβαση σε κάποιο άλλο αποθετήριο για να το ωθήσουμε ή απλά δεν θέλουμε να εγκαταστήσουμε ένα, μπορούμε να το δεματιάσουμε με την `git bundle create`.
Now you have a file named `repo.bundle` that has all the data needed to re-create the repository's `master` branch.
48
-
With the `bundle` command you need to list out every reference or specific range of commits that you want to be included.
49
-
If you intend for this to be cloned somewhere else, you should add HEAD as a reference as well as we've done here.
47
+
Τώρα έχουμε ένα αρχείο με όνομα `repo.bundle` που έχει όλα τα δεδομένα που απαιτούνται για να δημιουργηθεί εκ νέου ο κλάδος `master` του αποθετηρίου.
48
+
Στην εντολή `bundle` πρέπει να παραθέσουμε κάθε αναφορά ή συγκεκριμένο εύρος υποβολών θέλουμε να συμπεριλάβουμε.
49
+
Αν σκοπεύουμε να κλωνοποιηθεί κάπου αλλού, θα πρέπει να προσθέσουμε τον `HEAD` ως αναφορά, όπως κάναμε εδώ.
50
50
51
-
You can email this `repo.bundle` file to someone else, or put it on a USB drive and walk it over.
51
+
Μπορούμε να στείλουμε το αρχείο `repo.bundle` με e-mail σε κάποιον άλλο, ή να το τοποθετήσουμε σε μια μονάδα USB και να το δώσουμε.
52
52
53
-
On the other side, say you are sent this `repo.bundle` file and want to work on the project.
54
-
You can clone from the binary file into a directory, much like you would from a URL.
53
+
Από την άλλη, ας πούμε ότι κάποιος μας έχει στείλει αυτό το αρχείο `repo.bundle` και θέλουμε να εργαστούμε στο έργο.
54
+
Μπορούμε να κλωνοποιήσουμε από το δυαδικό αρχείο σε έναν κατάλογο, όπως θα κάναμε από μια διεύθυνση URL.
55
55
56
56
[source,console]
57
57
----
@@ -63,9 +63,9 @@ $ git log --oneline
63
63
b1ec324 first commit
64
64
----
65
65
66
-
If you don't include HEAD in the references, you have to also specify `-b master` or whatever branch is included because otherwise it won't know what branch to check out.
66
+
Εάν δεν συμπεριλαμβάνουμε τον `HEAD` στις αναφορές, πρέπει επίσης να καθορίσουμε το `-b master` ή οποιονδήποτε κλάδο περιλαμβάνεται επειδή αλλιώς δεν θα ξέρει τι κλάδο να check out.
67
67
68
-
Now let's say you do three commits on it and want to send the new commits back via a bundle on a USB stick or email.
68
+
Τώρα ας υποθέσουμε ότι κάνουμε τρεις υποβολές σε αυτό και θέλουμε να στείλουμε τις νέες υποβολές πίσω σε ένα δεμάτι με ένα USB stick ή e-mail.
69
69
70
70
[source,console]
71
71
----
@@ -77,14 +77,14 @@ c99cf5b fourth commit - second repo
77
77
b1ec324 first commit
78
78
----
79
79
80
-
First we need to determine the range of commits we want to include in the bundle.
81
-
Unlike the network protocols which figure out the minimum set of data to transfer over the network for us, we'll have to figure this out manually.
82
-
Now, you could just do the same thing and bundle the entire repository, which will work, but it's better to just bundle up the difference - just the three commits we just made locally.
80
+
Πρώτα πρέπει να καθορίσουμε το εύρος υποβολών που θέλουμε να συμπεριλάβουμε στη δέσμη.
81
+
Σε αντίθεση με τα πρωτόκολλα δικτύου που καθορίζουν το ελάχιστο σύνολο δεδομένων που θα μεταφερθούν μέσω του δικτύου για εμάς, θα πρέπει να το βρούμε αυτό μόνοι μας.
82
+
Θα μπορούσαμε να κάνουμε το ίδιο πράγμα και να δεματιάσουμε ολόκληρο το αποθετήριο, και κάτι τέτοιο θα λειτουργήσει, αλλά είναι καλύτερα να δεματιάσουμε τη διαφορά --ακριβώς τις τρεις υποβολές που κάναμε τοπικά.
83
83
84
-
In order to do that, you'll have to calculate the difference.
85
-
As we described in <<_commit_ranges>>, you can specify a range of commits in a number of ways.
86
-
To get the three commits that we have in our master branch that weren't in the branch we originally cloned, we can use something like `origin/master..master` or `master ^origin/master`.
87
-
You can test that with the `log` command.
84
+
Για να γίνει αυτό, θα πρέπει να υπολογίσουμε τη διαφορά.
85
+
Όπως περιγράψαμε στην ενότητα <<_commit_ranges>>, μπορούμε να καθορίσουμε μια σειρά υποβολών με διάφορους τρόπους.
86
+
Για να πάρουμε τις τρεις υποβολές που έχουμε στον κύριο κλάδο μας και που δεν ήταν στον κλάδο που αρχικά κλωνοποιήσαμε, μπορούμε να χρησιμοποιήσουμε κάτι σαν `origin/master..master` ή `master ^origin/master`.
87
+
Ας το δοκιμάσουμε με την εντολή `log`.
88
88
89
89
[source,console]
90
90
----
@@ -94,8 +94,8 @@ c99cf5b fourth commit - second repo
94
94
7011d3d third commit - second repo
95
95
----
96
96
97
-
So now that we have the list of commits we want to include in the bundle, let's bundle them up.
98
-
We do that with the `git bundle create` command, giving it a filename we want our bundle to be and the range of commits we want to go into it.
97
+
Τώρα, λοιπόν, που έχουμε τον κατάλογο των υποβολών που θέλουμε να συμπεριλάβουμε στο δεμάτι, ας τις δεματιάσουμε.
98
+
Αυτό το κάνουμε με την εντολή `git bundle create`, στην οποία δίνουμε το όνομα αρχείου που θέλουμε να έχει το δεμάτι μας και το εύρος των υποβολών που θέλουμε να το κάνουμε.
Now we have a `commits.bundle` file in our directory.
111
-
If we take that and send it to our partner, she can then import it into the original repository, even if more work has been done there in the meantime.
110
+
Τώρα έχουμε ένα αρχείο `commits.bundle` στον κατάλογό μας.
111
+
Αν το πάρουμε και το στείλουμε στη συνεργάτιδα μας, τότε μπορεί να το εισάγει στο αρχικό αποθετήριο, ακόμα κι αν σε αυτό έχει γίνει περαιτέρω δουλειά εν τω μεταξύ.
112
112
113
-
When she gets the bundle, she can inspect it to see what it contains before she imports it into her repository.
114
-
The first command is the `bundle verify` command that will make sure the file is actually a valid Git bundle and that you have all the necessary ancestors to reconstitute it properly.
113
+
Όταν παίρνει το δεμάτι, μπορεί να το επιθεωρήσει για να δει τι περιέχει πριν το εισάγει στο αποθετήριο της.
114
+
Η πρώτη εντολή είναι η εντολή `bundle verify` που θα διασφαλίσει ότι το αρχείο είναι στην πραγματικότητα ένα έγκυρο δεμάτι Git και ότι έχουμε όλους τους απαραίτητους προγόνους για να το ανασυστήσουμε σωστά.
115
115
116
116
[source,console]
117
117
----
@@ -123,8 +123,8 @@ The bundle requires these 1 ref
123
123
../commits.bundle is okay
124
124
----
125
125
126
-
If the bundler had created a bundle of just the last two commits they had done, rather than all three, the original repository would not be able to import it, since it is missing requisite history.
127
-
The `verify` command would have looked like this instead:
126
+
Αν αυτός που δημιούργησε το δεμάτι είχε είχε συμπεριλάβει μόνο τις δύο τελευταίες υποβολές που είχε κάνει και όχι και τις τρεις, το αρχικό αποθετήριο δεν θα μπορούσε να το εισάγει, δεδομένου ότι λείπει το απαιτούμενο ιστορικό.
127
+
Η εντολή `verify` θα επέστρεφε:
128
128
129
129
[source,console]
130
130
----
@@ -133,18 +133,18 @@ error: Repository lacks these prerequisite commits:
133
133
error: 7011d3d8fc200abe0ad561c011c3852a4b7bbe95 third commit - second repo
134
134
----
135
135
136
-
However, our first bundle is valid, so we can fetch in commits from it.
137
-
If you want to see what branches are in the bundle that can be imported, there is also a command to just list the heads:
136
+
Ωστόσο, το πρώτο μας δεμάτι είναι έγκυρο, έτσι μπορούμε να αναακτήσουμε υποβολές από αυτό.
137
+
Αν θέλουμε να δούμε ποιοι κλάδοι βρίσκονται στο δεμάτι που μπορεί να εισαχθεί, υπάρχει επίσης μια εντολή για να παραθέσουμε μόνον τις κεφαλές:
The `verify` sub-command will tell you the heads as well.
146
-
The point is to see what can be pulled in, so you can use the `fetch` or `pull` commands to import commits from this bundle.
147
-
Here we'll fetch the 'master' branch of the bundle to a branch named 'other-master' in our repository:
145
+
Η υπο-εντολή `verify` επίσης θα μας πει τις κεφαλές.
146
+
Ο σκοπός είναι να μπορούμε να δούμε τι μπορούμε να έλξουμε, ώστε να μπορούμε να χρησιμοποιήσουμε τις εντολές `fetch` ή `pull` για να εισάγουμε υποβολές από αυτό το δεμάτι.
147
+
Εδώ θα ανακτήσουμε τον `κύριο` κλάδο του δεματιού σε έναν κλάδο που ονομάζεται `other-master` στο αποθετήριο μας:
148
148
149
149
[source,console]
150
150
----
@@ -153,7 +153,7 @@ From ../commits.bundle
153
153
* [new branch] master -> other-master
154
154
----
155
155
156
-
Now we can see that we have the imported commits on the 'other-master' branch as well as any commits we've done in the meantime in our own 'master' branch.
156
+
Τώρα βλέπουμε ότι έχουμε τις εισαγόμενες υποβολές στον κλάδο `other-master` καθώς και τις υποβολές που έχουμε κάνει εν τω μεταξύ στοn δικό μας κλάδο `master`.
So, `git bundle` can be really useful for sharing or doing network-type operations when you don't have the proper network or shared repository to do so.
170
+
Έτσι, η `git bundle` μπορεί να είναι πραγματικά χρήσιμη για να μοιραζόμαστε ή να κάνουμε δικτυακές ενέργειες όταν δεν έχουμε το κατάλληλο δίκτυο ή κοινόχρηστο αποθετήριο για να τις κάνουμε.
0 commit comments