Para empezar poner --help después de un comando es superútil, ya que te abre una pestaña donde tendrás mucha información
oficial de git sobre como usar dicho comando.
Si escribes git help --all te desplegara una lista con una gran cantidad de comandos y una pequeña descripción de lo que hace cada uno de ellos,
pero si quieres obtener más información sobre uno en específico es mejor hacerlo de la forma anteriormente mencionada.
Por ejemplo: git diff --help

c/Users/EQUIPO

EQUIPO@DESKTOP MINGW64 ~

MMMMMMMMMMMMMMMMMMMMMMMMMMMMWXOdd0WMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMWKo:,''oXMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMWNd,'''';xWMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMWKc''''''c0WMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMWNk;'''''',dNMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMXOl'''''''':0MMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMWkc;'';:;''',xWMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMXo,'',oOc''''oNMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMWk;''':OXd''';kX00NMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMWXl''',dNNx,,cO0o;;dXMMMMMMMM
MMMMMMMMMMMMWNXWMMMMMNx;'''lKWWkcx0k:''',xNMMMMMMM
MMMMMMMMMWKkocdNMMMMW0c'',c0WMWK00o,''''';kNMMMMMM
MMMMMMMMWO:,':0WMMMWXo,'cx0WMMWNk:,:c;'''';kWMMMMM
MMMMMMMMXl'',xWMMMWKo,,oKWWMWXOdodk0Kk;'''':kNMMMM
MMMMMMMNd,'':0MMMW0l;ckXMMWXOkOOOxlckXx;',:oONMMMM
MMMMMMM0c'''cKMMWXkk0NWMMMWXXWNx;'':0WN0k0XWMMMMMM
MMMMMMWO;'''cKWMMWWMMMMMMMMMMMKc'',dNMMMMMMMMMMMMM
MMMMMMWk;''';OWMMMMMMMMMMMMMMWk;',oKMMMMMMMMMMMMMM
MMMMMMM0:''''oXMMMMMMMMMMMMMW0c',dXWMMMMMMMMMMMMMM
MMMMMMMXo'''',xNMMMMMMMMMMMWO:,:kNMMMMMMMMMMMMMMMM
MMMMMMMW0c'''';xNMMMMMMMMWNx;;oKWMMMMMMMMMMMMMMMMM
MMMMMMMMWO:'''',o0NWMMMW0xl;lONMMMMMMMMMMMMMMMMMMM
MMMMMMMMMWOc,'''';lxkOOxoodONMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMWXkl;,'',;cox0NWWMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMWNOxddk0XWWMMMMMMMMMMMMMMMMMMMMMMMMMMM

Vamos ahora escribe
git help --all
para mostrarte una
lista de comandos
simulando que estas
en una consola.

EQUIPO@DESKTOP MINGW64 ~

$

git init

este comando inicia el repositorio


rm -rf .git

con este comando borras el repositorio, en si no es que se borre sino que git deja de rastrearlo, todo vuelve a la normalidad.


git add

añade los cambios especificados al area de staging


git commit -m "mensaje"

confirma los archivos que se encuentran en el area de staging y los agrega al repositorio


git commit -am "mensaje"

añade los archivos a staging y los agrega al repositorio, es la forma corta de hacer git add y git commit -m con un solo comando


git commit --amend

es una forma de hacer commit pero sin crear un nuevo commit. es decir los cambios se guardan en el ultimo commit realizado


git status

te da una descripcion de donde te encuentras y del estado de los archivos (untracked, ready to commit y nothing to commit)


git config --list

muestra la configuracion global


git config --global user.email "tuemail@gmail.com"

agrega tu email a la configuracion


git config --global user.name "nombre"

configura como sera tu nombre (asi se vera tu nombre en los commits)


git checkout commit/branch filename

permite regresarte al estado en el cual se realizo un commit o un branch especificado, pero no elimina lo que esta en el staging


git checkout -filepath

deshace cambios de un archivo en estado modified (que ni fue agregado a staging)


git rm

elimina archivos de git sin eliminar su historial del sistema de versiones, esto quiere decir que podemos recuperar el archivo en cuestion.
git rm no se puede usar por si solo


git rm --cached

elimina los archivos del area de staging y del proximo commit, pero los mantiene en el disco duro


git rm --forced

elimina los archivos de git y del disco duro. git siempre guarda todo por lo que podemos acceder al registro y recuperarlo


git reset --soft

vuelve el branch al estado del commit especificado, pero mantiene los archivos en el directorio de trabajo y lo que haya en staging y lo considera
todo como nuevos cambios, asi que podemos poner las ultimas actualizaciones en un nuevo commit


git reset --hard

borra toda la informacion del commit especificado y del area de staging borra el historial


git reset HEAD

solo saca los archivos del area de staging, de forma que sus modificaciones no se guardaran en el commit, aunque podemos incluirlos de nuevo con git add


git branch

muestra las ramas existentes en el directorio local


git branch name_branch

crea una nueva rama con el nombre especificado


git branch -r

muestra las ramas remotas


git branch -a

muestra todas las ramas, locales y remotas


git checkout name_branch

se mueve a la rama especificada


git merge name_branch

fusiona la rama especificada con la rama en la que te encuentras y produce un commit de esta fusion


git log

lista los commits realizados


git log --stat

lista los commits realizados y muestra la cantidad de bits añadidos en cada archivo modificado


git log --all --graph --decorate --oneline

muestra de manera grafica, embellesida y comprimida toda la historia del repositorio


git show filename

te muestra la historia de cambios del archivo especificado


git diff idcommit1 idcommit2

muestra las diferencias entre dos commits especificados


git reflog

es como el git log solo que este muestra absolutamente toda la historia verdadera del repositorio, incluso aunque hayas hecho un git commit --amend
para guardar cambios en un commit previo para no generar un nuevo commit este te los muestra como dos commits diferentes


git grep palabra

busca y muestra los archivos en los que usaste dicha palabra especificada


git grep -n palabra

busca y te muestra las lineas en las que usaste dicha palabra


git grep -c palabra

busca y te muestra cuantas veces usaste dicha palabra


git log --all --grep palabra

muestra donde usaste dicha palabra, pero en los mensajes de los commits


git blame name_archivo

muestra quien escribio cada linea del archivo (asi es, linea por linea)


git blame name archivo -Llineainicial,lineafinal

muestra quien escribio cada linea pero desde las lineas especificadas


git log --oneline

te muestra el id y el titulo del commit en una sola linea


git --decorate

te muestra donde se ecuentra el head point


git log -p

explica el numero de lineas que se cambiaron y te muestra que se cambio en el contenido


git shortlog

indica que commits a realizado un usuario y el titulo de sus commits


git shortlog -sn

muestra cuantos commits a hecho cada miembro del equipo


git shortlog -sn --all

muestra cuantos commits a hecho cada miembro del equipo, incluyendo los commits eliminados


git shortlog -sn --all --no-merge

muestra cuantos commits a hecho cada miembro del equipo, sin contar los merge


git log -3

limitamos el numero de commits


git log after="fecha"

localizar commits por fechas


git log --author="name_author"

commits realizados por un autor que cumpla exactamente con el nombre


git log --grep="INVIE"

busca los commits que cumplan tal cual esta entre comillas


git log --grep="INVIE" --i

busca los commits que cumplan sin importar mayusculas o minusculas


git log --index.html

busca los commits en un archivo especifico


git log log.txt

guarda los log en un archivo txt


git rebase name_branch

fusiona la historia de la rama especificada con la de la rama en la que te encuentras, solo que esta lo hace de una manera silenciosa,
es decir como si todos los commits hubieran sucedido en esta rama y la otra nunca hubiera existido ¡por eso hay que tener cuidado al usar este comando!


git stash

guarda los cambios en una memoria temporal y te devuelve al ultimo commit realizado, este se utiliza cuando los cambios aun no estan listos
para hacer commit, ya que al guardarlos de esta forma te puedes mover entre ramas y seguir trabajando normal y podras aplicar los cambios cuado estes listo


git stash -u

crea un stash con todos los archivos, incluyendo los untracked


git stash save "mensaje"

guarda el stash con un mensaje para que sea mas facil identificarlo


git stash list

lista los stash existentes


git stash clear

elimina todos los stash


git stash drop

elimina el stash mas reciente


git stash drop stash@{num_stash}

elimina el stash especificado


git stash apply

aplica los cambios del stash mas reciente


git stash stash@{num_stash}

aplica los cambios del stash especificado


git stash pop

aplica los cambios del stash mas reciente y lo elimina de stash


git stash pop stash@{num_stash}

aplica los cambios del stash especificado y lo elimina del stash


git stash branch name_branch

crea una rama y aplica el stash mas reciente


git stash branch name_branch stash@{num_stash}

crea una rama y aplica el stash especificado


git clean

borra archivos de tu directorio de trabajo, solo funciona con archivos untracked


git clean --dry -run

te muestra los archivos que seran borrados


git clean -f

borra los archivos


git clean -df

borra los archivos y carpetas


git cherry-pick

es una forma de hacer merge, pero sin traer todos los cambios, solo trae los cambios del commit especificado ¡es una mala practica ya que es como si
estubieras reconstruyendo la historia!


git fetch

trae los cambios de el repositorio remoto al repositorio local


git merge

fusiona los cambios del repositorio local con el directoriode trabajo


git pull

hace lo mismo que git fetch y git merge pero en un solo comando, asi que es mas practico


git push origin main

envia los cambios al repositorio remoto; origin es el nombre predeterminado que recibe el repositorio remoto contra el que trabajamos y main porque
es el nombre por defecto que recibe nuestra rama principal. pero hay que tener cuidado ya que al crear un nuevo repositorio git llama a la rama
principal master esto es porque asi era desde el pasado, si este es tu caso solo escribe git push origin master:main y ya podras enviar los cambios sin problema


git branch -M main

cambia el nombre de la rama, en este caso lo cambia a main; este sirve para que los nombres de la rama remota y la local sean el mismo y no haya tando problema al hacer push


git remote -v

lista las ramas remotas que son por las cuales se conectan el repositorio local y el repositorio remoto


git remote add name_branch url_del_repo

agrega una rama remota conectada a dicho repo


git config --global alias.name_alias "comando"

te crea un alias para el comando especificado, asi podras escribir de forma mas rapida el comando,
por ejemplo git config --global alias.loginc "git log --all --graph --decorate --oneline"
asi no tendras que escribir ese comando tan largo solo tendras que escribir git loginc y listo :0 mas facil no?


▀█░█▀ █▀▀█ █▀▀█ ░▀░ █▀▀█   █▀▀▄ █▀▀   █▀▀ █▀▀ ▀▀█▀▀ █▀▀█   ░▀░ █▀▀▄ █▀▀ █▀▀█ █▀▀█ █▀▄▀█ █▀▀█ █▀▀ ░▀░ █▀▀█ █▀▀▄   █▀▀ █░░█ █▀▀   ▀▀█▀▀ █▀▀█ █▀▄▀█ █▀▀█ █▀▀▄ █▀▀█
░█▄█░ █▄▄█ █▄▄▀ ▀█▀ █▄▄█   █░░█ █▀▀   █▀▀ ▀▀█ ░░█░░ █▄▄█   ▀█▀ █░░█ █▀▀ █░░█ █▄▄▀ █░▀░█ █▄▄█ █░░ ▀█▀ █░░█ █░░█   █▀▀ █░░█ █▀▀   ░░█░░ █░░█ █░▀░█ █▄▄█ █░░█ █▄▄█
░░▀░░ ▀░░▀ ▀░▀▀ ▀▀▀ ▀░░▀   ▀▀▀░ ▀▀▀   ▀▀▀ ▀▀▀ ░░▀░░ ▀░░▀   ▀▀▀ ▀░░▀ ▀░░ ▀▀▀▀ ▀░▀▀ ▀░░░▀ ▀░░▀ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░▀   ▀░░ ░▀▀▀ ▀▀▀   ░░▀░░ ▀▀▀▀ ▀░░░▀ ▀░░▀ ▀▀▀░ ▀░░▀
█▀▀▄ █▀▀   █▀▀█ █▀▀█ █▀▀█ █▀▀█ ▀▀█▀▀ █▀▀ █▀▀   █░░█ █▀▀ █▀▀ █░░█ █▀▀█ █▀▀   █▀▀█ █▀▀█ █▀▀█   █▀▀ █▀▀█ █▀▄▀█ █▀▀█ █▀▀█ █▀▀▄ █▀▀ █▀▀█ █▀▀█ █▀▀
█░░█ █▀▀   █▄▄█ █░░█ █░░█ █▄▄▀ ░░█░░ █▀▀ ▀▀█   █▀▀█ █▀▀ █░░ █▀▀█ █░░█ ▀▀█   █░░█ █░░█ █▄▄▀   █░░ █░░█ █░▀░█ █░░█ █▄▄█ █░░█ █▀▀ █▄▄▀ █░░█ ▀▀█
▀▀▀░ ▀▀▀   ▀░░▀ █▀▀▀ ▀▀▀▀ ▀░▀▀ ░░▀░░ ▀▀▀ ▀▀▀   ▀░░▀ ▀▀▀ ▀▀▀ ▀░░▀ ▀▀▀▀ ▀▀▀   █▀▀▀ ▀▀▀▀ ▀░▀▀   ▀▀▀ ▀▀▀▀ ▀░░░▀ █▀▀▀ ▀░░▀ ▀░░▀ ▀▀▀ ▀░▀▀ ▀▀▀▀ ▀▀▀
█▀▀ █▀▀▄   █▀▀ █░░   █▀▀ █░░█ █▀▀█ █▀▀ █▀▀█   █▀▀▄ █▀▀   █▀▀▀ ░▀░ ▀▀█▀▀   █░░█   █▀▀▀ ░▀░ ▀▀█▀▀ █░░█ █░░█ █▀▀▄
█▀▀ █░░█   █▀▀ █░░   █░░ █░░█ █▄▄▀ ▀▀█ █░░█   █░░█ █▀▀   █░▀█ ▀█▀ ░░█░░   █▄▄█   █░▀█ ▀█▀ ░░█░░ █▀▀█ █░░█ █▀▀▄
▀▀▀ ▀░░▀   ▀▀▀ ▀▀▀   ▀▀▀ ░▀▀▀ ▀░▀▀ ▀▀▀ ▀▀▀▀   ▀▀▀░ ▀▀▀   ▀▀▀▀ ▀▀▀ ░░▀░░   ▄▄▄█   ▀▀▀▀ ▀▀▀ ░░▀░░ ▀░░▀ ░▀▀▀ ▀▀▀░
█▀▀▄ █▀▀   █▀▀█ █░░ █▀▀█ ▀▀█▀▀ ▀▀█ ░▀░
█░░█ █▀▀   █░░█ █░░ █▄▄█ ░░█░░ ▄▀░ ▀█▀
▀▀▀░ ▀▀▀   █▀▀▀ ▀▀▀ ▀░░▀ ░░▀░░ ▀▀▀ ▀▀▀

clear

este no es un comando de git pero sirve para limpiar la consola, prueba escribiendolo


EQUIPO@DESKTOP MINGW64 ~

$