Santos Gallegos
-
[email protected]
@stsewd
Es un...
Más adelante lo descubriremos
Algunas cosas pueden salir mal
Tener todo la información en el presente es un caos
Tener una máquina del tiempo
Todo puede salir muy mal
Tener todo la información y todas las personas en el presente es un caos
Tener muchas máquinas del tiempo
¡Una máquina del tiempo!
Un sistema de control de versiones
Pero muy parecido a una máquina del tiempo
a906cb2a4a904a152e80877d4088654daad0c859
.
git --version
git config --global user.name "Santos Gallegos"
git config --global user.email "[email protected]"
cd /home/mi-proyecto/
git init
git status
Archivos nuevos no son registrados por Git (untracked).
Cambios a ser guardados
git add <archivo>
Guardar nuestros cambios
git commit
# Ver todos nuestros commits
git log
# Ver un commit específico
git show <hash>
# Archivo .gitignore
# Archivos del SO
*.DS_Store
*~
Thumbs.db
# Otros archivos
build/
passwords.txt
git checkout <hash>
git clone <url del repo>
# Listar remotos
git remote -v
# Agregar un remoto
git remote add <nombre> <url>
# Eliminar un remoto
git remote remove <nombre>
Para compartir nuestros cambios debemos subirlos a nuestro remoto, o sincronizar nuestro repo local en caso que alguien más haya subido sus cambios.
# Publicar cambios a un remoto
git push <remoto> <rama>
# Obtener cambios de un remoto
git pull <remoto> <rama>
# Crear una rama basada en la rama actual
git branch <nombre>
# Cambiar entre ramas
git checkout <nombre>
# Crear y cambiar a esa rama
git checkout -b <nombre>
Si tenemos cambios que no hemos guardado (commit). Y queremos cambiar de rama/commit, Git se quejará.
# Guardar nuestros cambios sin confirmar
git stash
# Volver a aplicar nuestros cambios
git stash pop
Nuestra nueva funcionalidad funciona. Tiempo de mezclarla a nuestra rama principal.
# Cambiar a la rama base
git checkout <rama base>
# Mezclar nuestras ramas
git merge <otra rama>
Conflictos al mezclar
Si vemos un proyecto en GitHub que nos gustaría mejorar o colaborar en su desarrollo. Hacemos un fork. Se creará una copia del repositorio en tu tuenta.
Es la manera en que envias tus cambios a un proyecto.