GIT
Comparte tu Código
SFD Bucaramanga 2014
¿Que es un sistema de control de versiones?
Herramientas que facilitan la administración de las distintas versiones de cada producto
¿Por qué debería usar control de versiones?
¿Por qué debería usar control de versiones?
Alguna vez:
- Has hecho un cambio en el código, te has dado cuenta que es un error, y has querido desahacerlo?
- Perdido código o tener un "backup" muy viejo?
- Tener que mantener múltiples versiones de un producto?
- Has querido ver la diferencia entre dos o más versiones de tu código?
- Has querido probar si un cambio en particular daña o arregla una parte de código?
¿Por qué debería usar control de versiones?
Alguna vez:
- Has querido revisar la historia de algún código?
- Has querido subir un cambio al código de alguien mas?
- Has querido compartir tu código, o dejar a otras personas trabajar en este?
- Has querido ver que tanto trabajo se ha realizado, y donde, cuando y quien lo hizo?
- Has querido experimentar con una nueva característica sin interferir con el código en funcionamiento?
Ejemplos: https://github.com/torvalds/linux https://github.com/django/django
Por que git?
- Velocidad
- Diseño simple
- Soporte robusto para desarrollo no-lineal (miles de ramas en paralelo)
- Totalmente distribuido
- Es capaz de manejar grandes proyectos eficientemente, como el kernel de Linux (velocidad y tamaño de datos)
https://en.wikipedia.org/wiki/Comparison_of_revision_control_software
github? Bitbucket? Algún Otro?
Una red social para programadores :)
https://en.wikipedia.org/wiki/Comparison_of_open-source_software_hosting_facilities#Available_version_control_systems
historia de git
Git basico
Snapshots, No Diferencias
git basico
casi todas las operaciones son locales
Tu tienes toda la historia de tu proyecto en tu disco local
Git tiene Integridad
Todo en git tiene suma de comprobacion
Git generalmente solo añade datos
Es muy difícil perder datos
git basico
los tres estados
empezando
configurando git
git config {key} {value}
user.name
user.email
core.editor
merge.tool
git config --list
Empezando
ayuda
git help <verb>
git help config
Auto-Completado
https://github.com/git/git/blob/master/contrib/completion/git-completion.bashsource ~/.git-completion.bash
iniciando un repositorio git
$ git init
$ git init --bare <directory>
$ git clone git://github.com/schacon/simplegit-progit.git
iniciando un repositorio git
svn vs git
guardando cambios
$ git add *.py
$ git add README
$ git commit -m 'initial project version'
guardando cambios
estados de los archivos en git
revisando un repositorio git
$ git status
$ git log
revisando un repositorio git
revisando un repositorio git
$ git blame <file>
otros comandos utiles
$ cat .gitignore
$ git diff
$ git diff --staged
$ git rm <file>
$ git rm --cached <file>
$ git mv <file_from> <file_to>
deshaciendo cosas
$ git commit --amend
$ git reset
$ git checkout <commit> <file>
$ git checkout <branch>
git revert <commit>
git clean
deshaciendo cosas
reset vs revert
no uses reset en un repositorio publico
ramas en Git
ramas en git (branch)
$ git branch <branch>
ramas en git (branch)
$ git checkout <branch>
ramas en git (branch)
$ git merge
$ git merge --no-ff
fast-forward 3-way merge
fast-forward 3-way merge
resolviendo conflictos
$ git merge some_branch Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result.
trabajando con repositorios remotos
$ git remote
$ git remote add test http://dev.example.com/test.git
$ git fetch <remote> <branch>
$ git branch -r
$ git merge origin/master
git pull <remote> <branch>
git push <remote> <branch>
Gracias :)
referencias y enlaces útiles
https://www.atlassian.com/git/tutorial
http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html
http://www.vogella.com/articles/Git/article.html
http://marklodato.github.io/visual-git-guide/index-en.html
referencias y enlaces útiles
https://help.github.com/articles/set-up-git
https://help.github.com/articles/generating-ssh-keysGit - Comparte tu codigo
By Rafael Laverde
Git - Comparte tu codigo
Charla - Taller, para el SFD-Bucaramanga 2014
- 1,357