repositorio origin example eliminar comandos git zsh

origin - git push example



Compruebe si el directorio actual es un repositorio de Git (11)

¿Has comprobado las funciones que ya están en la distribución de zsh? Vea esta entrada del blog sobre vcs_info en zsh.

ACTUALIZAR :

Parece que el enlace original fue eliminado y el autor cambió su dominio principal. Revisé google y creo que actualmente la publicación vinculada tiene el mismo contenido, pero no estoy seguro (fue hace mucho tiempo desde que revisé el enlace original).

Estoy escribiendo una serie de scripts para la administración de Git en zsh.

¿Cómo puedo verificar si el directorio actual es un repositorio de Git? (Cuando no estoy en un repositorio de Git, no quiero ejecutar un montón de comandos y obtener un montón de fatal: Not a git repository respuesta al fatal: Not a git repository ).


Copiado del archivo de finalización de bash, la siguiente es una forma ingenua de hacerlo

# Copyright (C) 2006,2007 Shawn O. Pearce <[email protected]> # Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/). # Distributed under the GNU General Public License, version 2.0. if [ -d .git ]; then echo .git; else git rev-parse --git-dir 2> /dev/null; fi;

Puedes envolverlo en una función o usarlo en un script.

Condensado en una condición de una línea adecuada para bash o zsh

[ -d .git ] || git rev-parse --git-dir > /dev/null 2>&1


No estoy seguro de si hay una forma accesible / documentada públicamente para hacer esto (hay algunas funciones internas de Git que puede usar / abusar en la propia fuente git)

Podrías hacer algo como;

if ! git ls-files >& /dev/null; then echo "not in git" fi


O podrías hacer esto:

inside_git_repo="$(git rev-parse --is-inside-work-tree 2>/dev/null)" if [ "$inside_git_repo" ]; then echo "inside git repo" else echo "not in git repo" fi


Otra solución es verificar el código de salida del comando.

git rev-parse 2> /dev/null; [ $? == 0 ] && echo 1

Esto imprimirá 1 si estás en una carpeta de repositorio de git.


Puede agregar o reemplazar su $ PS1 en su zshrc con one u another herramienta de git-prompt. De esta forma, puede estar convenientemente informado de si está en un repositorio de git y el estado del repositorio.


Puedes usar:

git rev-parse --is-inside-work-tree

Que imprimirá ''verdadero'' si está en un árbol de trabajo de repositorios git.

Tenga en cuenta que aún devuelve la salida a STDERR si está fuera de un repositorio de git (y no imprime ''falso'').

Tomado de esta respuesta: https://.com/a/2044714/12983



Utilice git rev-parse --git-dir

if git rev-parse --git-dir > /dev/null 2>&1; then : # This is a valid git repository (but the current working # directory may not be the top level. # Check the output of the git rev-parse command if you care) else : # this is not a git repository fi


Ver también:

git rev-parse --is-inside-work-tree

(descubierto leyendo hombre git-rev-parse)


esto funciona para mi Aún obtienes los errores, pero son bastante fáciles de suprimir. ¡también funciona desde subcarpetas!

estado de git> / dev / null 2> & 1 && echo ¡Hola mundo!

Puede poner esto en una declaración if then si necesita hacer más condicionalmente.