Los commands de Git que te gustan / no puedo vivir sin

¿Alguien tiene algunas gems para git que deberían agregarse a cada installation básica? Algunos commands geniales con los que no puedes vivir, así que agrégalos a tu .gitconfig [alias] 's

PD: visto algunas preguntas como esta sobre otras cosas, espero que sea el mejor lugar

Esto le dará la y lc que le muestra un logging en línea estrictamente orderado por date de 'autor' o 'confirmación', respectivamente. La 'u' en las especificaciones pretty se refiere a "timestamp de unix". La timestamp de Unix solo se incluye para clasificar y eliminar más tarde. Una versión ISO del time permanece.

 alias.la=! log () { git log --pretty=lau $1 | sort -rn | cut -d " " -f 2- | less ; } ; log alias.lc=! log () { git log --pretty=lcu $1 | sort -rn | cut -d " " -f 2- | less ; } ; log pretty.lau=format:%at %C(dim yellow)%h %C(cyan)%ai%Cgreen%d %Creset%s pretty.lcu=format:%ct %C(dim yellow)%h %C(cyan)%ci%Cgreen%d %Creset%s 

El uso es git la <commit specifiers> , por lo que podría ser git la o git la branch o git la C1..C2 . Sin embargo, tenga en count que el .. aún actúa de la forma habitual de log . La orderación solo es postprocesamiento.

Y aqui esta otro:

 > cat ~/bin/git-advance #!/bin/bash C="`git log --first-parent --format=%H ..$1 -- | tail -1`" if [ -z "$C" ]; then echo "Could not determine next commit" exit 1 fi git checkout "$C" 

Y luego, por supuesto, alias.advance=! git-advance alias.advance=! git-advance . El uso es git advance <future-commit> y se ejecutará el próximo commit desde el HEAD actual hacia el <future-commit> dado. Esto dará como resultado un HEAD separado pero me resulta útil para propagar confirmaciones de git a otro VCS manualmente. Sin garantías, aún no lo intenté en historias complicadas.

Aquí hay algo experimental para cambiar el nombre perdido en conflictos de fusión:

https://gist.github.com/894374

Uno que descubrí recientemente que me gusta bastante está en el directory de contrit de git, por lo que es fácil de get: se llama git new-workdir

Le permite crear un segundo directory de trabajo para un repository, sin duplicar todo el repository. Esto le permite trabajar en dos twigs separadas al mismo time, lo cual me ha resultado bastante útil.

algunos de los que obtuve (de sitios aleatorios, no recuerdo dónde)

para una bonita vista de tree de todos los commits:

 lg = log --graph --pretty=format:'%Cnetworking%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative 

get el último compromiso

 whois = "!sh -c 'git log -i -1 --pretty=\"format:%an <%ae>\n\" --author=\"$1\"' -" 

mostrar el último compromiso

 whatis = show -s --pretty='tformat:%h (%s, %ad)' --date=short