https://acmfi.github.io/cursogit2016-2016
Control de versiones local, único ordenador.
Control de versión centralizado.
Control de versión distribuido.
- Control de versiones
- Potencia el desarrollo de código distribuido.
- Y mola mucho
sudo pacman -S git #Arch based
sudo apt-get install git #Debian based
brew install git #macOS
- ¡Git está para Güindous! https://git-scm.com/download/win Integra git en windows dándote, además, una terminal que simula una terminal linux
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git init
git remote add {nombreDelRemoto} {URLDelRepositorio}
git clone
- Porque sí. ¿Esperabas una respuesta mejor? Pues no.
- Es lo que toca porque lo vamos a usar en las asignaturas.
- También es la herramienta más extendida y a la que todas migran.
- Pros:
- Sencillez.
- Contras:
- Solo existe un repo, imposible trabajar en local.
- No es git.
- Sencillez.
Bitbucket.
- Pros:
- Simple pero casi igual de potente que git.
- Newbie friendly.
- Contras:
- ¿Trabajar con ramas?. Iluso…
- Monolítico.
- Menos flexible.
git status
git add [files]
git add . #Añadiría todos los cambios al index
git add *.java #Añadiría únicamente aquellos archivos modificados que terminen en .java
git add directorio/ #Añadiría el directorio y TODO SU CONTENIDO al index
git commit [--ammend] [-m "Mensaje del commit"]
git commit -m "Hello World Completado"
git commit -a -m <mensaje> # Equivalente a git add --all y git commit -m "Mensaje"
git push [<remote>] [<branch>]
git push #Equivalente a git push <remote>, solo si existe el remoto
git push <remote> master # push de los cambios a la rama master del remoto
git log
- Si usáis terminal para git, es recomendable tener alias.
- Ejemplos de alias
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
git pull
git pull origin # git fetch && git merge FETCH_HEAD
git branch [opts] <nombre_de_la_rama> #Para listar, crear o eliminar ramas
git checkout <nombre_de_la_rama>
git merge [branch] # Mergea branch con la actual
A---B---C topic
/ \
D---E---F---G---H master
kbranch merge
git merge [-m "Mensaje del commit"] [branch] # Mergra branch con la actual y lo incluye en un commit
git merge [--abort] # Aborta el merge si entran en conflicto
git rebase [branch] # Rebase. Por cada commit que hay en el branch, rebase genera un nuevo commit en el branch actual
+--3--5 master
|
1--2--+
|
+--3--5--7--8 feature
(4)(6)
branch rebase
Lo que no ha unido la máquina, que lo haga el desarrollador.
git stash
Usado para descartar cambios y volver al estado anterior del commit.
- No te asustes.
- Las ramas son tus amigas.
- Commitea a menudo con cambios graduales y específicos.
- Ponle un mensaje útil a los mensajes.
- No todos los aportes son iguales: Las ramas son tus amigas.
- gitignore
- NO HAY UNA ÚNICA FORMA DE HACER ALGO CON GIT
- Lee
- Lee mucho
- El flow de Github (que no git)
- Gitlab también tiene su flow
- Matlab, Visual Studio…
- Repositorios privados ilimitados durante 2 años
- Git Book
- PDF, EPUB, MOBI, HTML
- try.github.io
- guides.github.com
- about.gitlab.com/blog/