Está en la página 1de 13

TRABAJO DE INVESTIGACIÓN DE GIT

JORGE ELIECER ALDANA POLO

COMPUTACION MOVIL

ING. ROBERTO MORALES ORTEGA

UNIVERSIDAD DE LA COSTA CUC


FACULTAD DE INGENIERIA
SISTEMAS
BARRANQUILLA
2018

1
CONTENIDO
Pág.

1. INTRODUCCIÓN 3

2. QUÉ ES GIT 4

3. HISTORIA DE GIT

4. TIPOS DE SISTEMAS DE CONTROL DE VERSIONE S 6

5. 20 COMANDOS EN GIT Y DEFINA PARA QUE SIRVE CADA UNA 7

6. QUÉ ES GITHUB 8

7. 5 MEJORES FUNCIONALIDADES DE GITHUB 8

8. QUÉ ES UN BRANCH O RAMA, PARA QUE SIRVE Y COMANDO 9

9. QUÉ ES PULL REQUEST. 10

10. QUÉ ES UN HOOK 11

11. CONCLUSIONES 12

12. BIBLIOGRAFÍA 13

2
I. INTRODUCCIÓN

Git es fundamental a la hora de desarrollar proyectos debido a que siempre


mantiene las revisiones generadas al proyecto y en caso tal de algún daño,
podamos volver con facilidad a la versión anterior.

En este trabajo investigativo se expondrá los temas relacionados a Git, como su


concepto, su historia, los comandos básicos a utilizar y que serán de gran ayuda
para el aprendizaje y manejo del sistema Git.

Para tener aún un mejor control de Git se expondrá el tema de Github, es un servicio
que aloja nuestras versiones de proyectos utilizando Git, Github nos permite tener
mucho más control grafico de estas versiones.

En el mercado actual existen muchos sistemas como Github, por ejemplo, Gitlab,
BitBucket, etc. Pero el más utilizado es Github, ya que millones de desarrolladores
trabajan en conjunto a favor del crecimiento de sus proyectos y del mismo Github.

3
II. QUE ES GIT

Git es un sistema de control de versiones, los sistemas de control de versiones son


aquellos que mantienen respaldando constantemente los cambios realizados en los
proyectos, sistemas o configuraciones, este control de versión fue creado por Linus
Torvalds.

Para crear Git fue necesario aplicar la eficiencia, confiabilidad y seguridad en los
mantenimientos o cambios realizados a las distintas aplicaciones que manejan un
sin número de código fuente, Git nos brinda la posibilidad de tener herramientas
versátiles que mejoren la experiencia en el trabajo de equipo haciendo que el
desarrollo sea inteligente y rápido.

A continuación, se mostrarán algunas características de Git

 Git nos mostrará los cambios que serán fusionados provenientes de las
ramas, este proceso será muy frecuente, cuando la rama esté en desarrollo.

 Gestión para proyectos de grandes rasgos.

 Los cambios que se realicen pueden ser distribuidos en distintas ramas para
evitar daños en la rama local.

4
III. HISTORIA DE GIT

La historia de Git se remonta al año 2005 cuando Linus Torvalds rompe relaciones
con su actual servicio de versiones de controles debido a que este se estaba
convirtiendo en comercial. Linus comenzó la búsqueda de un nuevo sistema el cual
cumpliera con los requisitos que necesitaba para mantener el desarrollo del núcleo
Linux. Al no encontrar una solución definitiva optó por crear su propio sistema de
control de versiones. Solo tardó un día para completar las ideas que requería el
desarrollo de Git. Al cabo de unos días comenzó el desarrollo de Git en conjunto
con los desarrolladores del núcleo Linux. Y en tan solo una semana de haber
diseñado git, este ya tenía su primera versión. Linus no lo llamaba sistema de
control de versiones más bien le colocó herramienta de distribución y archivado de
ficheros.

Git a lo largo de los años ha realizado muchos cambios en su estructura, Linus


afirmó que al comienzo manejar Git era muy complicado, pero con el pasar de los
años, este ha mejorado este problema, ahora Git es vas versátil, sencillo, rápido y
fiable para realizar los cambios en las versiones de control.

En la actualidad Git cuenta con más de 10 millones de desarrolladores aportando


sus repositorios en este.

5
IV. TIPOS DE SISTEMAS DE CONTROL DE VERSIONES

Nombre Características Ventajas Desventajas


Subversión Es una utilidad de Se siguen las El manejo de
código abierto, está versiones de cambio de nombres
escrito en lenguaje archivos de archivos no es
C permite mantener normalmente. completo.
los cambios
generados en los Se pueden crear No es factible
proyectos múltiples ramas. aplicar los cambios
en las ramas.
Su arquitectura es
basada en Apache No permite tener
y las revisiones son conteo de cuantas
enviadas a través versiones se han
de este realizado
Microsoft Visual Está basado en un Resulta útil para los Es inestable al subir
SourceSafe equipo anfitrión el desarrolladores del grandes cantidades
cual mantiene los sistema operativo de archivos binarios
archivos del Windows ya que pesados.
proyecto, los está anclado al IDE
clientes toman la Visual Studio. Su protocolo SMB
última copia y la de acceso permite
modifican para Permite un manejo que desarrolladores
luego ser ingresada simple de versiones externos a al diseño
nuevamente al del proyecto sobre del proyecto
equipo anfitrión. un computador puedan tener
individual. acceso y generar
corrupción en el
código fuente.
Rational Contiene el control Interfaz de usuario Muchas veces
ClearCase de revisiones que simple tiende a cometer
constituyen la base errores
para el desarrollo Integrado junto con
de gestión de Visual Studio. Algunas veces los
software de repositorios tienden
medianas y Cuando debe a bloquearse sin
grandes empresas funcionar, funciona ninguna razón.
que contienen miles
de desarrolladores. Lento en algunos
casos

6
V. 20 COMANDOS EN GIT Y SU FUNCIÓN.

1. “git help everyday”-> Ayuda de Git para uso diario.


2. “git help –g” -> Muestra la guía de ayuda de Git
3. “git fetch --all && git reset --hard origin/master” -> Sobrescribir un Pull
4. “git ls-tree --name-only -r <commit-ish>” -> Lista de todos los archivos
hasta un commit
5. “git update-ref -d HEAD” -> Actualizar la referencia al primer commit
6. “git diff” -> Visualiza los últimos cambios realizados desde el ultimo commit
7. “git diff –cached” -> Compara los cambios preparados versus el ultimo
commit
8. “git branch –merged master” -> Lista los branches o ramas que han hecho
merged al master.
9. “git branch –vv” -> Lista todas las ramas y los últimos commits con el branch
10. “git branch –d <local_branchname>” -> Elimina un branch local
11. “git push origin –delete <remote_branchname>” Elimina un branch
remoto
12. “git revert <commit_ish>” Revierte un commit para crear uno nuevo
13. “git commit –v –-amend” -> Cambia el mensaje del commit anterior
14. “git commit –-amend –author=’Author Name <email@address.com>'” ->
Modifica el autor
15. “git remote” -> Obtiene una lista de las referencias remotas
16. “git branch –r” -> Obtiene una lista de los branches remotos
17. “git branch –a” -> Obtiene una lista de los branches locales y remotos
18. “git diff HEAD” -> Muestra la diferencia entre cambios registrados y no
registrados
19. “git checkout –“-> Cambia rápidamente al branch anterior.
20. “git ls-files –t” -> Muestra todos los archivos preparados.

7
VI. QUE ES GITHUB

Github es una plataforma web para el alojamiento de proyectos de cualquier tipo de


lenguaje, el cual nos permite crear repositorios tanto públicos como privados, este
último debe tener una suscripción para poder emplearlo.

Github se utiliza empleando el sistema de control de versiones Git, el cual nos


permite mantener registradas las versiones de nuestro proyecto, Github entra a
formar parte del control visual de Git, facilita la interacción entre Git y el usuario de
manera que sea fácilmente comprendido. Al igual que Git, en Github podemos ver
las divisiones o ramas de nuestro proyecto, realizar Pull Request, colaborar con
millones de desarrolladores en todo el mundo, nos permite la comunicación entre
estos, Github.

VII. 5 MEJORES FUNCIONALIDADES DE GITHUB

1. La primera funcionalidad principal de Github es la de agregar o guardar cambios


que se aplican a un archivo de código fuente, manteniendo el acceso al historial de
esos cambios para poder revertirlos cuando sea necesario.

2. Debido a que en Github se mantienen los códigos publicados de manera abierta y


gratuita es posible tomarlos con la finalidad de aprender, leerlos e interactuar con
ellos, hasta tal punto de aplicar cambios sin tocar el repositorio original ya que se
para esto es solo tomar una copia o clonarlo al equipo donde se requiera.

3. Si después de haber tomado un código para experimentar con él y por lo visto se


puede reparar bugs se dispone de una operación llamada pull request que no es
más de realizarle una petición al dueño del código para que aplique los cambios
realizados al código original.

4. Github tiene un visor de código por el cual a través del navegador es posible la
visualización de este, con su respectiva sintaxis y su respectivo lenguaje utilizado.

5. Github se utiliza en la web por lo tanto este no requiere de instalación en


ordenadores y por lo tanto puede ser visualizado en cualquier sistema operativo

8
VIII. QUE ES UN BRANCH O RAMA, PARA QUE SIRVE Y COMANDO

Las ramas nos permiten mantener un mejor control del código de los proyectos,
esta es una gran utilidad proporcionada por Git, es una bifurcación del código que
crea un nuevo camino o seguimiento para la evolución del código. Pueden existir
distintas ramas como lo requiera el proyecto.
Las ramas tienen la utilidad de por ejemplo de crear una funcionalidad que
queramos integrar en un programa para evitar que la rama principal se vea
afectada. Esta función puede realizarse en una rama independiente que mediante
los cambios realizados no afecte la producción principal del código.
El trabajo que se realiza con las ramas puede ir al mismo tiempo que la rama
principal haciendo que el desarrollador pueda pasar de una rama hacia otra según
las necesidades del proyecto. Cuando una de las tantas ramas se encuentre
estable con buenas funcionalidades este puede fusionarse a la rama principal
agregando los cambios que este solicite.
Para inicializar una rama en git se debe emplear el comando:
“git branch nombrerama”

9
IX. QUE ES PULL REQUEST

Git ofrece una herramienta de gran utilidad a la hora de realizar los commits que
permiten los cambios en el proyecto, la herramienta se denomina pull request que
permite llevar un control más ordenado a nuestras versiones o etapas del desarrollo
y a su vez crear propuestas para realizar modificaciones al proyecto original con el
fin de mejorar algunos errores encontrados o de agregar ciertas funcionalidades.
Sencillamente pull request es una propuesta o petición que sirve para integrar
nuevas funcionalidades o solucionar problemas que el código presente.
Para aplicar a un request de cualquier proyecto se debe colocar este comando en
nuestra consola de Git
“git request-pull [-p] <start> <url> [<end>]”
Este comando genera una petición al proyecto principal para que incruste los
nuevos cambios solicitados.
-p -> directorio donde se encuentra el proyecto local
<Start> commit inicial que indica el título de este requerimiento.
<end> Commit final que indica el tipo de corrección o implementación que se llevó
a cabo.

10
X. QUE ES UN HOOK

Los ganchos o Hooks, son scripts que se ejecutan cuando sucede una acción
cuando el repositorio sufre algún cambio, se envía un commit, se realiza un merge,
etc. Estos permiten personalizar el comportamiento que llevará Git y la posibilidad
de activar ciertas acciones personalizadas en el ciclo de vida del proyecto.
Las actividades comunes para los hooks se comprenden desde una política de
validez, alteración de algún entorno del proyecto dependiendo del estado del
repositorio, y la implementación del ciclo de trabajo para las integraciones
continuas. Debido a que los scripts son infinitamente personalizables se puede
utilizar los hooks para automatizar los flujos de trabajo del proyecto.
Los hooks pueden ejecutarse del lado tanto cliente como servidor, los del lado
cliente van desde la confirmación de cambios en el código, puntos de flujo en el
trabajo de correo electrónico. A diferencia de estos los puntos de enganche o hooks
del lado servidor va desde pre y post receive, el pre se activa cuando se realiza una
petición de push. El punto post se activa cuando se termina cualquier proceso y se
utiliza para activar otros servicios o para realizar envío de notificaciones a los
usuarios.
Por ultimo del lado servidor existe otro hook denominado update que es muy similar
a pre receive y se activa una vez por rama cuando esta intenta actualizarse junto
con el envío.
Algunos comandos para aplicar hooks
Hook Comando Descripcion
applypatch-msg git am Cuando se cambia el mensaje de un
parche
pre-applypatch git am Antes de aplicar un parche
pre-applypatch git am Antes de aplicar un parche
pre-rebase git rebase Antes de realizar un rebase o merge
prepare-commit- git commit Cuando se establece el mensaje de un
msg commit

11
XI. CONCLUSIONES

Git es una potencial herramienta diseñada para la gestión de versiones de cualquier


proyecto o código fuente. Es vital a la hora de iniciar en el mundo de la
programación. Debido a que se puede llevar un control especifico de las versiones
generadas en el proyecto.

Git ofrece un sin número de herramientas que nos facilitan las gestiones para
realizar las actualizaciones a los repositorios, controlar su estado, ramificar el
progreso del proyecto en distintos puntos.

Git se complementa con GitHub una plataforma web que aloja nuestros repositorios
en un servidor remoto el cual puede accederse desde cualquier parte del mundo.

Github cuenta con millones de desarrolladores, cuentas con más de miles de


proyectos famosos que son vitales para cada desarrollador en el mundo, gracias a
su política podemos utilizar estos códigos para experimentar, colaborar, reparar y
hasta solicitar cambios acordes a los errores que se puedan encontrar en el
repositorio original.

12
XII. BIBLIOGRAFIA

ADMINISTRACION. (s.f.). Booleanbit. Obtenido de Booleanbit:


http://booleanbite.com/web/automatizar-tareas-con-git-git-hooks/

Atlassian. (s.f.). Atlassian. Obtenido de https://www.atlassian.com/git/tutorials/git-hooks

Chacon, S., & Straub, B. (2014). Pro Git. Apress.

Fran. (27 de 07 de 2017). Comandos Basicos Git. Obtenido de Hostinger: www.hostinger.es

GitHub Inc. (s.f.). (GitHub, Productor) Obtenido de github: www.github.com

SCM Git. (s.f.). Git SCM. Obtenido de https://git-scm.com/book/es/v1/Personalizando-Git-Puntos-


de-enganche-Git

13

También podría gustarte