-
Notifications
You must be signed in to change notification settings - Fork 87
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #142 from DiegoFRamirez/new_corrections
Partial review on '07-git-tools'(first seven files reviewed)
- Loading branch information
Showing
7 changed files
with
204 additions
and
205 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,11 @@ | ||
[[r_bundling]] | ||
=== Agrupaciones | ||
|
||
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. | ||
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. | ||
|
||
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`. | ||
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`. | ||
|
||
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. | ||
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. | ||
|
||
Veamos un ejemplo simple. Digamos que tienes un repositorio con dos confirmaciones: | ||
|
||
|
@@ -22,7 +22,7 @@ commit b1ec3248f39900d2a406049d762aa68e9641be25 | |
Author: Scott Chacon <[email protected]> | ||
Date: Wed Mar 10 07:34:01 2010 -0800 | ||
Primera confirmaciión | ||
Primera confirmación | ||
---- | ||
|
||
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 `. | ||
|
@@ -37,11 +37,11 @@ Writing objects: 100% (6/6), 441 bytes, done. | |
Total 6 (delta 0), reused 0 (delta 0) | ||
---- | ||
|
||
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í. | ||
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í. | ||
|
||
Puedes enviar por correo este archivo `repo.bundle` a alguien más, o ponerlo en una memoria USB y simplemente irte. | ||
|
||
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. | ||
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. | ||
|
||
[source,console] | ||
---- | ||
|
@@ -53,9 +53,9 @@ $ git log --oneline | |
b1ec324 first commit | ||
---- | ||
|
||
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. | ||
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. | ||
|
||
Digamos que ahora haces tres confirmaciones en ello y quieres enviar nuevas confirmaciones via agrupacion en una USB o por correo. | ||
Digamos que ahora haces tres confirmaciones y quieres enviar nuevas confirmaciones vía agrupación en una USB o por correo. | ||
|
||
[source,console] | ||
---- | ||
|
@@ -67,9 +67,9 @@ c99cf5b fourth commit - second repo | |
b1ec324 first commit | ||
---- | ||
|
||
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. | ||
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. | ||
|
||
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`. | ||
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`. | ||
|
||
[source,console] | ||
---- | ||
|
@@ -79,7 +79,7 @@ c99cf5b fourth commit - second repo | |
7011d3d third commit - second repo | ||
---- | ||
|
||
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. | ||
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. | ||
|
||
[source,console] | ||
---- | ||
|
@@ -91,9 +91,9 @@ Writing objects: 100% (9/9), 775 bytes, done. | |
Total 9 (delta 0), reused 0 (delta 0) | ||
---- | ||
|
||
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. | ||
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. | ||
|
||
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. | ||
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. | ||
|
||
[source,console] | ||
---- | ||
|
@@ -105,7 +105,7 @@ The bundle requires these 1 ref | |
../commits.bundle is okay | ||
---- | ||
|
||
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í: | ||
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í: | ||
|
||
[source,console] | ||
---- | ||
|
@@ -114,15 +114,15 @@ error: Repository lacks these prerequisite commits: | |
error: 7011d3d8fc200abe0ad561c011c3852a4b7bbe95 third commit - second repo | ||
---- | ||
|
||
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: | ||
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: | ||
|
||
[source,console] | ||
---- | ||
$ git bundle list-heads ../commits.bundle | ||
71b84daaf49abed142a373b6e5c59a22dc6560dc refs/heads/master | ||
---- | ||
|
||
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: | ||
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: | ||
|
||
[source,console] | ||
---- | ||
|
@@ -131,7 +131,7 @@ From ../commits.bundle | |
* [new branch] master -> other-master | ||
---- | ||
|
||
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' . | ||
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'. | ||
|
||
[source,console] | ||
---- | ||
|
@@ -145,4 +145,4 @@ $ git log --oneline --decorate --graph --all | |
* b1ec324 first commit | ||
---- | ||
|
||
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. | ||
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. |
Oops, something went wrong.