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
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
+
Wir haben zwar die üblichen Methoden zur Übertragung von Git-Daten über ein Netzwerk (HTTP, SSH usw.) behandelt, aber es gibt noch eine weitere Möglichkeit, die zwar nicht häufig verwendet wird, aber durchaus nützlich sein kann.
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 ist in der Lage, seine Daten in einer einzigen Datei zu „bündeln“.
7
+
Das kann in verschiedenen Situationen nützlich sein.
8
+
Vielleicht ist Ihr Netzwerk ausgefallen und Sie möchten Änderungen an Ihre Mitarbeitenden senden.
9
+
Vielleicht arbeiten Sie irgendwo außerhalb Ihres Unternehmens und haben aus Sicherheitsgründen keinen Zugang zum Firmen-Netzwerk.
10
+
Möglicherweise ist Ihre Wireless-/Ethernet-Karte einfach kaputt.
11
+
Oder Sie haben im Moment keinen Zugang zu einem gemeinsamen Server, Sie wollen jemandem Updates per E-Mail schicken und keine 40 Commits per `format-patch` übertragen.
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
+
Hier kann die Funktion `git bundle` behilflich sein.
14
+
Der Befehl `bundle` packt alles, was normalerweise mit einem `git push` Befehl über die Leitung geschoben wird, in eine Binärdatei, die Sie an jemanden per E-Mail oder auf einem Flash-Laufwerk schicken können, um es dann in ein anderes Repository zu entpacken.
15
15
16
-
Let's see a simple example.
17
-
Let's say you have a repository with two commits:
16
+
Lassen Sie uns ein einfaches Beispiel anschauen.
17
+
Angenommen, Sie haben ein Repository mit zwei Commits:
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
+
Wenn Sie dieses Repository an jemanden schicken wollen und Sie keinen Zugriff auf ein Repository haben, um es zu pushen, oder wenn Sie einfach keins einrichten wollen, können Sie es mit `git bundle create` bündeln.
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
+
Sie haben jetzt eine Datei mit der Bezeichnung `repo.bundle`, die alle Daten enthält, die benötigt werden, um den `master` Branch des Repositorys neu zu erstellen.
48
+
Mit dem Kommando `bundle` müssen Sie jede Referenz oder jeden spezifischen Bereich von Commits auflisten, die Sie einbeziehen möchten.
49
+
Wenn Sie beabsichtigen, diese Datei irgendwo anders zu klonen, sollten Sie HEAD als Referenz hinzufügen, wie wir es hier getan haben.
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
+
Sie können diese `repo.bundle` Datei per E-Mail an eine andere Person schicken oder sie auf einem USB-Laufwerk speichern und übergeben.
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
+
Auf der anderen Seite nehmen wir an, dass Sie diese `repo.bundle` Datei erhalten haben und an dem Projekt mitarbeiten wollen.
54
+
Sie können die Binärdatei in ein Verzeichnis klonen, ähnlich wie Sie es von einer URL aus tun würden.
55
55
56
56
[source,console]
57
57
----
@@ -64,9 +64,9 @@ $ git log --oneline
64
64
b1ec324 First commit
65
65
----
66
66
67
-
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.
67
+
Wenn Sie HEAD nicht in die Verweise integrieren können, müssen Sie auch `-b master` oder einen beliebigen anderen Branch angeben, da der Befehl sonst nicht weiß, welchen Branch er auschecken soll..
68
68
69
-
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.
69
+
Nehmen wir an, Sie machen drei Commits darauf und wollen die neuen Commits über ein Bündel auf einem USB-Stick oder per E-Mail zurückschicken.
70
70
71
71
[source,console]
72
72
----
@@ -78,14 +78,14 @@ c99cf5b Fourth commit - second repo
78
78
b1ec324 First commit
79
79
----
80
80
81
-
First we need to determine the range of commits we want to include in the bundle.
82
-
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.
83
-
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.
81
+
Zuerst müssen wir den Umfang der Commits bestimmen, die wir in das Bündel aufnehmen wollen.
82
+
Im Gegensatz zu den Netzwerkprotokollen, die für uns den minimalen Datensatz für die Übertragung über das Netzwerk festlegen, müssen wir das hier manuell herausfinden.
83
+
Jetzt könnten Sie einfach das Gleiche tun und das gesamte Repository bündeln. Das wird zwar funktionieren, aber es ist besser, nur die Differenz zu bündeln – einfach nur die drei Commits, die wir gerade lokal gemacht hatten.
84
84
85
-
In order to do that, you'll have to calculate the difference.
86
-
As we described in <<ch07-git-tools#_commit_ranges>>, you can specify a range of commits in a number of ways.
87
-
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`.
88
-
You can test that with the `log` command.
85
+
Dazu müssen Sie die Differenz berechnen.
86
+
Wie wir in <<ch07-git-tools#_commit_ranges>> beschrieben haben, können Sie den Umfang der Commits auf verschiedene Weise festlegen.
87
+
Um die drei Commits zu bestimmen, die wir in unserem `master` Branch vorliegen haben und die nicht in dem Branch waren als wir ihn geklont haben, könnten wir zum Beispiel `origin/master..master` oder `master ^origin/master` benutzen.
88
+
Sie können die Ausführung mit dem Befehl `log` überprüfen und testen.
89
89
90
90
[source,console]
91
91
----
@@ -95,8 +95,8 @@ c99cf5b Fourth commit - second repo
95
95
7011d3d Third commit - second repo
96
96
----
97
97
98
-
So now that we have the list of commits we want to include in the bundle, let's bundle them up.
99
-
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.
98
+
Jetzt haben wir unsere Liste der Commits, die wir in das Bundle aufnehmen wollen, nun wollen wir sie bündeln.
99
+
Wir machen das mit dem Befehl `git bundle create`, indem wir ihm einen Dateinamen zuweisen, der unser Bundle sein soll und den Umfang der Commits angeben, die wir aufnehmen wollen.
Now we have a `commits.bundle` file in our directory.
112
-
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.
111
+
Jetzt haben wir eine `commits.bundle` Datei in unserem Verzeichnis.
112
+
Wenn wir diese Datei an unsere Partnerin schicken, kann sie diese in das originale Repository importieren, auch wenn dort zwischenzeitlich weitere Arbeiten stattgefunden haben.
113
113
114
-
When she gets the bundle, she can inspect it to see what it contains before she imports it into her repository.
115
-
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.
114
+
Wenn sie das Bündel erhält, kann sie den Inhalt prüfen, bevor sie es in ihr Repository importiert.
115
+
Der erste Befehl ist der Befehl `bundle verify`, der sicherstellt, dass die Datei tatsächlich ein gültiges Git-Bundle ist und dass diese alle notwendigen Vorgänger hat, um sie korrekt wiederherzustellen.
116
116
117
117
[source,console]
118
118
----
@@ -124,8 +124,8 @@ The bundle requires these 1 ref
124
124
../commits.bundle is okay
125
125
----
126
126
127
-
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.
128
-
The `verify` command would have looked like this instead:
127
+
Hätte der Bündel-Ersteller nur die beiden letzten Commits gebündelt und nicht alle drei, wäre das ursprüngliche Repository nicht in der Lage, es zu importieren, da ihm der erforderliche Verlauf fehlt.
128
+
Das Kommando `verify` hätte stattdessen so ausgesehen:
129
129
130
130
[source,console]
131
131
----
@@ -134,18 +134,18 @@ error: Repository lacks these prerequisite commits:
134
134
error: 7011d3d8fc200abe0ad561c011c3852a4b7bbe95 Third commit - second repo
135
135
----
136
136
137
-
However, our first bundle is valid, so we can fetch in commits from it.
138
-
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:
137
+
Unser erstes Bündel ist jedoch gültig, so dass wir daraus die Commits abrufen können (engl. fetch).
138
+
Wenn Sie sehen möchten, welche Branches aus dem Bündel importiert werden können, gibt es auch einen Befehl, um nur die Kopfzeilen (engl. heads) aufzulisten:
The `verify` sub-command will tell you the heads as well.
147
-
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.
148
-
Here we'll fetch the `master` branch of the bundle to a branch named `other-master` in our repository:
146
+
Der Unterbefehl `verify` wird Ihnen auch die Kopfzeilen anzeigen.
147
+
Es geht vielmehr darum, zu sehen, was man fetchen kann. Sie können dann die Befehle `fetch` oder `pull` verwenden, um Commits aus diesem Bündel zu importieren.
148
+
Hier holen wir den `master` Branch aus dem Bündel in einen Branch mit dem Namen `other-master` in unser Repository:
149
149
150
150
[source,console]
151
151
----
@@ -154,7 +154,7 @@ From ../commits.bundle
154
154
* [new branch] master -> other-master
155
155
----
156
156
157
-
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.
157
+
Jetzt können wir sehen, dass wir die importierten Commits auf dem Branch `other-master` haben, sowie alle Commits, die wir in der Zwischenzeit in unserem eigenen `master` Branch gemacht haben.
So, `gitbundle` 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.
171
+
Der Befehl `git-bundle` kann also sehr nützlich sein, um gemeinsam netzwerkähnliche Operationen zu nutzen, wenn Sie nicht über das richtige Netzwerk oder ein gemeinsam genutztes Repository verfügen, um das Gleiche zu tun.
0 commit comments