Expandiendo el poder de Git con git extras

Git es la herramienta más poderosa para manejar nuestros cambios y las cosas que hace simplemente hacen volar nuestras mentes, pero también existen características no cubiertas por Git que algunos sacrílegos anti-git pro-svn (sí, todavía existen) llamarían triviales, ahí nace la necesidad de herramientas cómo git-extras las cuales agregan a este momento 36 comandos muy útiles al vasto poder de Git.

Instalación

La instalación varía por plataforma, en OS X usando brew:

1
$ brew install git-extras

Este es el link para otras opciones de instalación https://github.com/tj/git-extras/wiki/Installation

Algunos comandos

Debido a la larga lista de comandos, lo mejor es agarrar un repositorio y empezar a ver el output o la funcionalidad de los comandos, acá una pequeña muestra:

git extras

Muestra una lista de todos los comandos que implementa git-extras

1
$ git extras

git feature

Crea la rama con el feature, refactor o bug especificado:

1
$ git feature dependencies

Si ya existe, el mismo comando hará un checkout:

1
2
$ git checkout master
$ git feature dependencies

Al finalizar nuestros cambios podemos hacer feature finish para hacer un merge en nuestra rama actual:

1
2
$ git checkout master
$ git feature finish dependencies

Todo esto funciona de la misma forma con feature, bug, o refactor.

git contrib

Muestra la contribución de un autor al proyecto:

1
2
3
4
5
6
7
8
$ git contrib visionmedia
visionmedia (18):
Export STATUS_CODES
Replaced several Array.prototype.slice.call() calls with Array.prototype.unshift.call()
Moved help msg to node-repl
Added multiple arg support for sys.puts(), print(), etc.
Fix stack output on socket error
...

git summary

Muestra un resumen de la actividad del repositorio:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ git summary

project : git-extras
repo age : 10 months ago
commits : 163
active : 60 days
files : 93
authors :
97 Tj Holowaychuk 59.5%
37 Jonhnny Weslley 22.7%
8 Kenneth Reitz 4.9%
5 Aggelos Orfanakos 3.1%
3 Jonathan "Duke" Leto 1.8%
2 Gert Van Gool 1.2%
2 Domenico Rotiroti 1.2%
2 Devin Withers 1.2%
2 TJ Holowaychuk 1.2%
1 Nick Campbell 0.6%
1 Alex McHale 0.6%
1 Jason Young 0.6%
1 Jens K. Mueller 0.6%
1 Guillermo Rauch 0.6%

Este comando también acepta un commitish y mostrará un resumen de los commits pertenecientes al grupo de commits:

1
$ git summary v42..

Este comando también acepta la opción --line y mostrará un resumen por líneas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$ git summary --line

project : git-extras
lines : 8420
authors :
2905 Tj Holowaychuk 34.5%
1901 Jonhnny Weslley 22.6%
1474 nickl- 17.5%
653 Leila Muhtasib 7.8%
275 Tony 3.3%
267 Jesús Espino 3.2%
199 Philipp Klose 2.4%
180 Michael Komitee 2.1%
178 Tom Vincent 2.1%
119 TJ Holowaychuk 1.4%
114 Damian Krzeminski 1.4%
66 Kenneth Reitz 0.8%
22 Not Committed Yet 0.3%
17 David Baumgold 0.2%
12 Brian J Brennan 0.1%
6 Leandro López 0.1%
6 Jan Krueger 0.1%
6 Gunnlaugur Thor Briem 0.1%
3 Hogan Long 0.0%
3 Curtis McEnroe 0.0%
3 Alex McHale 0.0%
3 Aggelos Orfanakos 0.0%
2 Phally 0.0%
2 NANRI 0.0%
2 Moritz Grauel 0.0%
1 Jean Jordaan 0.0%
1 Daniel Schildt 0.0%

Finalizando

Nuestro flujo de trabajo se puede ver impactado positivamente por la inclusión de estos comandos en nuestro día a día, en el repositorio en Github pueden ver el código fuente y conocer más del funcionamiento

avatar

Blog neyDroid

Desarrollando Vagancias