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/sections/bundling.asc
+18-18
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,11 @@
1
1
[[r_bundling]]
2
2
=== Agrupaciones
3
3
4
-
Aunque ya hemos considerado las maneras mas comunes de transferir la base de datos del Git en el internet (HTTP, SSH, etc.), existe aún una manera de hacerlo, aunque no es muy comúnmente usada puede ser muy útil.
4
+
Aunque ya hemos considerado las maneras más comunes de transferir la base de datos de Git en el Internet (HTTP, SSH, etc.), existe aún otra manera de hacerlo, que aunque no es muy comúnmente usada puede ser muy útil.
5
5
6
-
El Git es capaz de ``agrupar'' la base de datos en un único archivo. Esto puede ser muy útil en varios escenarios. Tal vez tu red está caída y quieres enviar cambios a tu co-trabajdores. Quizas estás trabajando en algún lugar sin conexión y no tienes acceso a la red local por motivos de seguridad. Tal vez su tarjeta inalámbrica / ethernet se rompió. Tal vez no tienes acceso al servidor compartido por el momento, y quieres enviar un correo con actualizaciones y no quieres transferir 40 confirmaciones via `format-patch`.
6
+
Git es capaz de ``agrupar'' la base de datos en un único archivo. Esto puede ser muy útil en varios escenarios. Tal vez tu red está caída y quieres enviar cambios a tus co-trabajdores. Quizas estás trabajando en algún lugar sin conexión y no tienes acceso a la red local por motivos de seguridad. Tal vez tu tarjeta inalámbrica / ethernet se rompió. Tal vez no tienes acceso al servidor compartido por el momento, y quieres enviar un correo con actualizaciones y no quieres transferir 40 confirmaciones via `format-patch`.
7
7
8
-
Aquí es donde el comando de `git bundle` es muy útil. El comando `bundle` juntará todo lo que normalmente se empujaría sobre el cable con un comando de` push git ‘en un archivo binario que puedes enviar por correo a alguien o poner un flash drive, luego desglosarlo en otro repositorio.
8
+
Aquí es donde el comando de `git bundle` es muy útil. El comando `bundle` juntará todo, lo que normalmente se empujaría sobre el cable con un comando `git push`, en un archivo binario que puedes enviar por correo a alguien o poner en un flash drive, y luego desglosarlo en otro repositorio.
9
9
10
10
Veamos un ejemplo simple. Digamos que tienes un repositorio con dos confirmaciones:
Si quieres enviar ese repositorio a alguien y no tienes acceso a algún repositorio para hacerlo, o simplemente no quieres configurar uno, puedes juntarlo con el `git bundle create `.
Ahora tienes un archive nombrado `repo.bundle` este tiene todos los datos nuevos necesarios para re-crear el repositorio de la rama `maester`. Con el comando de `bundle` necesitaras enlistar cualquier referencia o rango especifico de confirmaciones que quieres que sean incluidas. Si tiene la intención de clonar esto en otro lugar, debe agregar HEAD como referencia, así como lo hemos hecho aquí.
40
+
Ahora tienes un archivo nombrado `repo.bundle`, éste tiene todos los datos nuevos necesarios para re-crear el repositorio de la rama `maester`. Con el comando `bundle` necesitarás enlistar cualquier referencia o rango específico de confirmaciones que quieras que sean incluidas. Si tienes la intención de clonar esto en otro lugar, debes agregar HEAD como referencia, así como lo hemos hecho aquí.
41
41
42
42
Puedes enviar por correo este archivo `repo.bundle` a alguien más, o ponerlo en una memoria USB y simplemente irte.
43
43
44
-
Por otro lado, supongamos que se envía este archivo de `repo.bundle` y deseas trabajar en el proyecto. Puedes clonarlo desde el archivo binario en un directorio, como lo harías desde una URL.
44
+
Por otro lado, supongamos que se envía este archivo de `repo.bundle` y deseas trabajar en el proyecto. Puedes clonarlo desde el archivo binario en un directorio, como lo harías desde una URL.
45
45
46
46
[source,console]
47
47
----
@@ -53,9 +53,9 @@ $ git log --oneline
53
53
b1ec324 first commit
54
54
----
55
55
56
-
Si no quieres incluir HEAD en las referencias, tambien tendrás que especificar `-b master` o cualquier rama que sea incluída porque de otra manera no sabrá que rama revisar.
56
+
Si no quieres incluir HEAD en las referencias, también tendrás que especificar `-b master` o cualquier rama que sea incluída porque de otra manera Git no sabrá que rama revisar.
57
57
58
-
Digamos que ahora haces tres confirmaciones en ello y quieres enviar nuevas confirmaciones via agrupacion en una USB o por correo.
58
+
Digamos que ahora haces tres confirmaciones y quieres enviar nuevas confirmaciones vía agrupación en una USB o por correo.
59
59
60
60
[source,console]
61
61
----
@@ -67,9 +67,9 @@ c99cf5b fourth commit - second repo
67
67
b1ec324 first commit
68
68
----
69
69
70
-
Primero necesitamos determinar el rango de confirmaciones que queremos incluir en la agrupación. No como los protocolos de la red que figuraran en el mínimo de datos para transferir desde la red por nosotros, tendremos que hacer esto manualmente. Ahora simplemente puedes hacer la misma cosa y agrupar el repositorio entero, el que trabajará, pero es mejor solo agrupar las diferencias – solamente las tres confirmaciones que hicimos localmente.
70
+
Primero necesitamos determinar el rango de confirmaciones que queremos incluir en la agrupación. No es como en los protocolos de la red donde figurará el mínimo de datos para transferir desde la red por nosotros, tendremos que hacer esto manualmente. Ahora simplemente puedes hacer la misma cosa y agrupar el repositorio entero, el que trabajará, pero es mejor sólo agrupar las diferencias – solamente las tres confirmaciones que hicimos localmente.
71
71
72
-
Para hacer eso, tienes que calcular la diferencia. Como hemos descrito en <<r_commit_ranges>>, Puedes especificar el rango de confirmaciones en un numero de caminos. Para obtener las tres confirmaciones que tenemos en nuestra rama maestra que no estaban en la rama que copiamos originalmente, podemos usar algo como `origin/master..master` o `master ^origin/master`. Puedes probar esto con el comando de `log`.
72
+
Para hacer eso, tienes que calcular la diferencia. Como hemos descrito en <<r_commit_ranges>>, Puedes especificar el rango de confirmaciones en un numero de caminos. Para obtener las tres confirmaciones que tenemos en nuestra rama maestra que no estaban en la rama que copiamos originalmente, podemos usar algo como `origin/master..master` o `master ^origin/master`. Puedes probar esto con el comando `log`.
73
73
74
74
[source,console]
75
75
----
@@ -79,7 +79,7 @@ c99cf5b fourth commit - second repo
79
79
7011d3d third commit - second repo
80
80
----
81
81
82
-
Entonces ahora que tenemos la lista de confirmaciones queremos incluirlas en la agrupación, agrupémoslas todas. hacemos eso con el comando de `git bundle create`, dandole un nombre al archivo que queremos que sea parte de la agrupación y el rango de confirmaciones que queremos incluir en el mismo.
82
+
Entonces ahora que tenemos la lista de confirmaciones, queremos incluirlas en la agrupación, agrupémoslas todas. Hacemos eso con el comando `git bundle create`, dándole un nombre al archivo que queremos que sea parte de la agrupación y el rango de confirmaciones que queremos incluir en el mismo.
Ahora tenemos un archivo de `commits.bundle` en nuestro directorio. Si tomamos este y se lo enviamos a nuestro compañero, ella pueda importarlo en el repositorio original, incluso si se ha incluido más trabajo en el tiempo que ha pasado.
94
+
Ahora tenemos un archivo de `commits.bundle` en nuestro directorio. Si tomamos éste y se lo enviamos a nuestro compañero, puede importarlo en el repositorio original, aún si se ha incluido más trabajo en el tiempo que ha pasado.
95
95
96
-
Cuando obtenga la agrupación, puede inspeccionarlo para ver que contiene antes de que lo importe en el repositorio. El primer comando es el `bundle verify` que hará saber si el archivo es actualmente una agrupacion válida del Git y asi tendras todos los requerimientos necesarios para reconstituiirlo apropiadamente.
96
+
Cuando obtenga la agrupación, puede inspeccionarlo para ver qué contiene antes de que lo importe en el repositorio. El primer comando es el `bundle verify` que te hará saber si el archivo es actualmente una agrupación válida de Git y así tendrás todos los requerimientos necesarios para reconstituirlo apropiadamente.
97
97
98
98
[source,console]
99
99
----
@@ -105,7 +105,7 @@ The bundle requires these 1 ref
105
105
../commits.bundle is okay
106
106
----
107
107
108
-
Si el agrupador a creado una agrupación de solo las dos últimas confirmaciones que se han hecho, en lugar de las tres, tel repositorio original no será capaz de improtarlo, dado que falta un requisito en la historia. El comando de `verify` debería de verse entonces así:
108
+
Si el agrupador ha creado una agrupación de sólo las dos últimas confirmaciones que se han hecho, en lugar de las tres, el repositorio original no será capaz de improtarlo, dado que falta un requisito en la historia. El comando de `verify` debería de verse entonces así:
109
109
110
110
[source,console]
111
111
----
@@ -114,15 +114,15 @@ error: Repository lacks these prerequisite commits:
114
114
error: 7011d3d8fc200abe0ad561c011c3852a4b7bbe95 third commit - second repo
115
115
----
116
116
117
-
Como sea, nuestra primera agrupación es válida, Entonces podemos obtener confirmaciones de ella. si quieres ver que ramas están en la agrupación que pueden ser importadas, de igual manera hay un comando para verlo:
117
+
Como sea, nuestra primera agrupación es válida, entonces podemos obtener confirmaciones de ella. Si quieres ver qué ramas que están en la agrupación pueden ser importadas, hay un comando para verlo:
el sub-comando de `verify` te dira el encabezado tambien. el punto es ver que puede ser puesto, para que puedas usar el comando de fetch `fetch` o `pull` para importar confirmaciones de este archivo. Aquí vamos a buscar la rama 'master' de la agrupación por una llamada 'other-master' en nuestro repositorio:
125
+
El sub-comando de `verify` te dirá el encabezado también. El punto es ver qué puede ser puesto, para que puedas usar el comando de fetch `fetch` o `pull` para importar confirmaciones de este archivo. Aquí vamos a buscar la rama 'master' de la agrupación con una llamada 'other-master' en nuestro repositorio:
126
126
127
127
[source,console]
128
128
----
@@ -131,7 +131,7 @@ From ../commits.bundle
131
131
* [new branch] master -> other-master
132
132
----
133
133
134
-
Ahora podemos ver que hemos importado las confirmaciones a la rama de 'other-master'asi mismo como tantas confirmaciones hayamos hecho mientras tanto en nuestra rama 'master'.
134
+
Ahora podemos ver que hemos importado las confirmaciones a la rama de 'other-master', así como tantas confirmaciones hayamos hecho mientras tanto en nuestra rama 'master'.
Entonces, `git bundle` puede ser muy util para compartir o hacer operaciones tipo red cuando no tienes la red adecuada o repositorio compartido para hacerlo.
148
+
Entonces, `git bundle` puede ser muy útil para compartir o hacer operaciones tipo red cuando no tienes la red adecuada o repositorio compartido para hacerlo.
0 commit comments