Upload
hernan-aguilera
View
270
Download
1
Embed Size (px)
Citation preview
@DevFOSS
Versionando proyectos con Git, desarrollo de software
colaborativo
¿Qué es git?
Git es un software para control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente.
Web oficial del proyecto: http://git-scm.com/
Fuente: http://es.wikipedia.org/
¿Para que sirve?
- Permite llevar un control de que cambios se han hecho y cuando.
- Permite deshacer cambios realizados al proyecto (devolver versiones).
- Gestiona el trabajo colaborativos de grupos numerosos.
@DevFOSS
Instalación
# aptitude install git-core
# yum install git-core
# pacman -S git-core
Debian y derivados
Fedora, CentOS y derivados
ArchLinux
Para más información visite: http://git-scm.com/download/linux
@DevFOSS
Configurando todo
~$ git config --global user.name "Hernán Aguilera"
~$ git config --global user.email "[email protected]"
Agregando nuestros datos
@DevFOSS
¿Cómo empiezo?
- Quiero modificar el codigo de alguien mas.
- Tengo un proyecto ya creado.
- Comenzar desde cero.
Fuente: http://huntingbears.com.ve/
A partir de código de terceros
git://github.com/usuario/repositorio.git → Solo lectura
[email protected]:usuario/repositorio.git
https://github.com/usuario/repositorio.git
Formatos de url
~$ git clone git://github.com/usuario/repositorio.git
Clonando repositorio
@DevFOSS
Proyecto creado localmente
~$ git init
1.- Iniciando el repositororio
~$ git add .
~$ git commit -a -m "Primer commit"
2.- Agregando archivos y/o directorios
3.- Enviando primer commit
@DevFOSS
Comenzando desde cero
~$ git init
1.- Iniciando el repositororio
~$ git add .
~$ git commit -a -m "Primer commit"
3.- Agrega los archivos y/o directorios
4.- Enviando primer commit
2.- Escribe código[. . . ]
@DevFOSS
Comandos útiles
~$ git status
Consultar el status de nuestro repositorio
~$ git diff
Visualizando cambios entre revisiones y ramas
Consultar el log de nuetra rama~$ git log
@DevFOSS
Regresando cambios
~$ git reset HEAD [ARCHIVO]
Elminar archivos del commit
~$ git checkout [COMMIT] [ARCHIVO]
~$ git reset --hard
Traer archivo desde una revisión especifica
Revertir los cambios hasta la ultima revisión
Regresar a una revisión especifica~$ git revert [COMMIT]
Esta acción no puede deshacerse
@DevFOSS
Trabajando con ramas
~$ git branch [NOMBRE DE LA RAMA]
Crear una nueva rama
~$ git checkout [NOMBRE DE LA RAMA]
~$ git banch [NOMBRE ACTUAL] [NUEVO NOMBRE]
Cambiar de rama
Cambiar nuembre a una rama
Listar las ramas disponibles~$ git branch
~$ git merge [NOMBRE DE LA RAMA]
Uniendo ramas
Eliminar rama~$ git branch -d [NOMBRE DE LA RAMA]
@DevFOSS
Rev_0 Rev_2Rev_1
Master
~$ git commit -a -m "descripción de la revisión"
Rev_0 Rev_2Rev_1
master
~$ git branch alterna
alterna
Rev_0 Rev_2Rev_1
master
~$ git checkout alterna
~$ git commit -a -m "primera version de rama2"
alterna
Reev_3
Rev_0 Rev_2Rev_1
master
~$ git checkout master
~$ git commit -a -m "4ta revisión de rama master"
alterna
Rev_3
Rev_4
Rev_0 Rev_2Rev_1
master
~$ git merge alterna
alterna
Rev_3
Rev_4
Rev_5
Resolviendo conflictos
~$ git diff
1.- Examinar información del conflicto
~$ git add archivo
~$ git commit –m "conflicto resuelto"
3.- Agregar modificaciones al commit
4.- Crear nueva revision
2.- Modificar manualmente los archivos~$ nano archivo
@DevFOSS
Sincronizar con repositorio remoto
http://github.com/
http://bitbucket.org/
http://gitorious.org/
@DevFOSS
Generando llaves SSH
~$ ssh-keygen -t rsa -C "[email protected]"
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
Your identification has been saved in /home/you/.ssh/id_rsa.
Your public key has been saved in /home/you/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]
Generando llaves con keygen
Agregando la passphrase
Confirmación
@DevFOSS
Identificando nuestro computador
~$ git remote add origin https://github.com/DevFOSS/prueba-conferencia.git
Agregando origen
~$ git push origin master
Enviando un nuestro repositorio local
Sincronizando ambos repositorios
@DevFOSS
¡Gracias por su atención!http://devfoss.org.ve/
Blog:
@HernanAguilera
http://hernanaguilera.com.ve/
twitter y github:
Web: