Git
- Configuración Global:
git config — list —global
- Configuración Local:
git config —list —local
Configuración Global:
git config —global [user.name](http://user.name) “nombre_usuario”
git config —global [user.email](http://user.email) “email_usuario”
git config —global -e
En este último caso el terminal entra en un editor de texto donde se puede cambiar la configuración posicionándose sobre ella.
Para grabar esta configuración: wq!
Para no gravar los cambios o salir del editor: q
Configuración Local:
git config —local user.name “nombre_usuario”
git config —local user.email “email_usuario”
Otro comando que nos ayuda a cambiar el nombre por defecto de la primera rama, que generalmente se denomina «master»:
//Revisa el nombre de tu rama git branch -a //Asegúrate de que la rama activa sea master git checkout master //Renombralo usando la opción -m. git branch -m master main
Para que en futuros proyectos el nombre de la rama principal lo ponga directamente como «main»
git config --global init.defaultBranch main
git —version
Para saber la version de Git.git help
Muestra la ayuda de Git con listado de comandos.git status
Muestra información sobre la rama en la que nos encontramos.git status --short
Forma corta de mostrar el status.git branch
Nos dice la rama en la que estamos trabajando.git log
Se utiliza para ver los «commit» y su información.git config --global -e
Ver en editor de texto el archivo de configuración. Para salir ( :q ). Para modificar ( :wq! )- Alias para un log resumido con fechas y commits:
git config --global alias.lg "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
- Alias para un status resumido:
git config --global alias.s status --short
git diff
Muestra las diferencias entre dos archivos.git reflog
Muestra todos los movimientos incluidos reset, commit, etc.git tag
Lista todos los tag disponibles.git stash list
Ver información sobre el stash.git remote -v
Ver información del repositorio remoto.
git init .
git init
Este comando creará un área conocida como «Staging» donde se guardarán temporalmente nuestros archivos y un repositorio local con el histórico del proyecto.
git init —bare nombre_carpeta.git
Crea un repositorio central para aplicar los cambios de los comandos «git push» y «git pull», es un directorio especial para poder compartir tus repositorios, por ejemplo si no quisieras subir los archivos a GitHub, GitLab, etc. y asi poder dejar en tu ordenador una copia de un repositorio. Más información aquí.
Después de crearlo hay que clonar los repositorios que quieras en él.
Para añadir un archivo : git add nombre_archivo.extension
Para añadir todo un directorio: git add .
Añadir solo los archivos de una extensión: git add *.extension
Especificar solo un directorio y sus subdirectorios para añadir: git add directorio/
Cuando se necesite añadir una carpeta vacía al proyecto, Git si no tiene contenido la ignora, por ello, hay que crear un archivo que normalmente se le llama: .gitkeep
git reset nombre_archivo
Recuerda que el .gitignore puede hacerlo por ti.
Graba el estado actual de los archivos: git commit -a
Grava el estado actual de los archivos con un mensaje: git commit -m “Mensaje”
Lo recomendable es hacerlo de esta última forma, el mensaje no debe exceder de 80 caracteres.
También es posible hacer un commit directamente sin hacer el add de esta forma:
git commit -am "mensaje"
Estando dentro de la carpeta del proyecto: git checkout -- .
git config --global alias.forma_corta comando_entero.
Ejemplo: git config --global alias.s "status -- short"
Ahora, escribiendo: git s
Ejecutará: git status --short
git commit --amend -m "mensaje_cambiado"
Para entrar al documento del commit y poderlo mofificar:
git commit --amend
Presionar la tecla a para editar.
Para guardar ESC : wq!
Para salir ESC :q!
Primeramente tendremos que saber el id o el id resumido del commit a modificar, es un número tipo : 13248c3
git reset --soft id
En este punto podremos modificar archivos y volver a hacer el : git commit -am "mensaje"
Primero necesitamos saber el id o el id resumido del commit en cuestión
git reset --mixed id
Otra forma de movernos entre commit es:
commit --mixed Head^numero_commits_para_atras #Si lo dejamos vacío se mueve 1
Con este reset NO modificamos los cambios posteriores a él simplemente nos quita los commit echos.
Para volver a un commit y desechar todos los posteriores con sus respectivos cambios:
git reset --hard id
Otra forma de movernos entre commit es:
commit --hard Head^numero_commits_para_atras #Si lo dejamos vacío se mueve 1
git mc nombre_archivo_old nombre_archivo_new
Lo bueno de hacerlo desde git es que queda reflejado el cambio
Se crea un archivo con el nombre: .gitignore
Dentro se especifica a todos los archivos que no se desea dar seguimiento.
directorio/ # Se dejan de seguir todos los archivos y subdiretorios de esa carpeta.
nombre_archivo.extension # Se deja de seguir ese archivo.
*.extension # Apunta a todos los archivos con esa extensión.
Crear una rama: git branch nombre_rama
Crear una rama e ir a ella: git chekout -b nombre_rama
Moverse a una rama: git checkout nombre_rama
Unir una rama a otra (Se unirá a la rama en la que estés): git merge nombre_rama #Esta rama es la que unirá a la que nos encontramos.
Borrar una rama: git branch -d nombre_rama_a_borrar
En el caso de que no deje, para forzar el borrado: git branch -d rama_a_borrar -f
Los tags son etiquetas que se pone a un commit.
Añadir tag al último commit: git tag nombre
Otra forma de añadir un tag: git tag -a vx.x.x -m "mensaje"
Otro formato: git tag -a v1.0.0 id_commit -m "mensaje"
Borrar un tag: git tag -d nombre_tag_a_borrar
Para gravar un escenario de trabajo sin añadirlo en un commit se ejecuta: git stash
Si le queremos poner una descripción: git stash save "nombre"
Para volver a cargar el último stash y borrarlo: git stash pop
Recuperar un stash de una lista: git stash apply identifiacador_stash
Borrar un stash: git stash drop numero_stash
Borrar todos los stash: git stash clear
Listar los stash: git stash list
Mostrar los cambios de un stash: git stash show id_stach
Mostrar los cambios detallados de una lista de stash: git stash list --stat
git rebase master
Recuerda que estas modificaciones se hacen antes de hacer el push.
git rebase -i HEAD~Numero_de Commit_atras_a_modificar
Entraremos en un editor y hay que cambiar el pick por la letra de lo que queremos cambiar según los comandos.
Tecla «a» para editar.
Guardar: ( :wq! )
Salir sin guardar: ( :q! )
git config --global core.editor nombre editor #Ejemplos: git config --global core.editor kate git config --global core.editor nano
Git global setup
git config --global user.name "nombre_usuario"
git config --global user.email "email_usuario"
Create a new repository
git clone https://gitlab.com/nombre_usuario/nombre_proyecto.git
cd prueba2
git switch -c main
touch README.md
git add README.md
git commit -m "add README"
git push -u origin main
Push an existing folder
cd existing_folder
git init --initial-branch=main
git remote add origin https://gitlab.com/nombre_usuario/nombre_proyecto.git
git add .
git commit -m "Initial commit"
git push -u origin main
Push an existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.com/nombre_usuario/nombre_proyecto.git
git push -u origin --all
git push -u origin --tags
git push
Si quieres que te guarde el usuario y la contraseña para que no te lo este pidiendo en cada push:
git config --global credential.helper store
Después de introducir este comando, se hace el push y una vez introducidos los datos ya no los volverá a pedir a no ser que cambien.
git config --global credential.helper store
git push --tags
Esto hace que suban todos los tag al repositorio remoto.
git pull
En el caso de que se produciera algún cambio y este pull no se pudiera hacer:
git config pull.rebase true
Con esto conseguimos que nos muestre los cambios que no ha podido solventar.
Para aplicarlo de manera global :
git config --global pull.rebase true
Normalmente biene aplicado por defecto :
git config --global pull.ff only
Clonar un repositorio no es solamente bajarse los archivos, se trata de los archivos y todos los cambios que se han echo en él.
git clone url_remota
La url la dan los servidores, como por ejemplo : Gitlab, Github, etc.