Está en la página 1de 24

FUNCIONAMIENTO

DE GIT

I N T E G R A N T E S :
A N Y I T A T I A N A M E D I N A R O D R I G U E Z
C A R L O S M A N U E L C E D E Ñ O G O N Z A L E Z
J H A N F R A N C O D I A S
M A U R I C I O A C H I P I Z G U A L I
Z U L I E T H M A R I A N A Q U I N T E R O A L A R C O N

QUE ES GIT

Git es un software de control de versiones diseñado por Linus


Torvalds, pensando en la eficiencia, la confiabilidad y
compatibilidad del mantenimiento de versiones de
aplicaciones cuando estas tienen un gran número de
archivos de código fuente. Su propósito es llevar registro de
los cambios en archivos de computadora incluyendo
coordinar el trabajo que varias personas realizan sobre
archivos compartidos en un repositorio de código.
INSTALACIÓN GIT
1. VISITE LA PÁGINA DE DESCARGA DE
GITHUB DESKTOP.
2. HAZ CLIC EN DESCARGAR PARA
WINDOWS.
3. EN LA CARPETA DOWNLOADS DEL
EQUIPO, HAZ DOBLE CLIC EN EL
ARCHIVO DE CONFIGURACIÓN DE
GITHUB DESKTOP .
4. GITHUB DESKTOP SE LANZARÁ
DESPUÉS DE QUE SE COMPLETE LA
INSTALACIÓN.
INICIANDO
GIT

Una vez que hayas descargado el instalador, haz doble clic


sobre el ejecutable para que comience el proceso de
instalación y sigue las instrucciones que te aparecerán en
pantalla. Al igual que cualquier otro programa, tendrás que
dar “Next” (siguiente) en varias ocasiones hasta que
aparezca la opción “Finish” (terminar) para completar la
instalación.
OTROS CLIENTES GRAFICOS:

GITFORCE GITG

GIT-COLA GUI DE GIT SMARTGIT


Creamos un nuevo repositorio en https://github.com. Le
damos nombre, descripción, seleccionamos si va a ser
un proyecto público o privado si es el caso, y dejamos el
check de crear README sin marcar. Le damos a crear
repositorio y con esto ya tenemos el repositorio donde
alojaremos nuestro proyecto.

COMANDOS PARA Desde la terminal del equipo donde está el proyecto que
queremos subir a github
SUBIR AL Nos vamos a la carpeta del proyecto y ejecutamos estos
comandos.

REPOSITORIO git init


git add .
git commit -m "first commit"
git remote add origin
https://github.com/NOMBRE_USUARIO/NOMBRE_PROY
ECTO.git
git push -u origin maste
Construir alias
Son creadas mediante el comando git config y los
archivos de configuración de Git. Al igual que sucede
con otros valores de configuración, los alias se pueden
crear con un alcance local o global.
se crean accesos rápidos almacenados de forma global
para comandos habituales de Git. Al crear los alias, no
se modificarán los comandos de origen. De este modo,
git checkout seguirá estando disponible aunque ya
tengamos el alias git co. Estos alias se han creado con
la marca --global, por lo que se almacenarán en el
archivo de configuración del nivel de sistema operativo
global de Git.
Fichero.gitignore
Un archivo local .gitignore generalmente se
coloca en el directorio raíz de un proyecto.

Para crear un archivo .gitignore local, crea un


archivo de texto y asignarle el nombre ".gitignore"
(recuerda incluir el . al principio). Luego, edita
este archivo según sea necesario. Cada nueva
línea debe incluir un archivo o carpeta adicional
que quieras que Git lo ignore.

Fichero .gitattributes
Filtros
En este permite asignarle Estos se utilizan para modificar
atributos a otros archivos y así archivos antes de ser
indicar a Git de qué manera almacenados en el repositorio.
debe tratarlo.

git checkout git reset


Permite navegar entre las Se usa para deshacer cambios
ramas creadas por Git branch. locales en el estado de un
repositorio de Git.
Revert.git
Se utiliza para deshacer
cambios, en lugar de eliminar o
dejar huérfanas las
confirmaciones, una reversión
creará una nueva confirmación
que invierte los cambios. Git
revert es una alternativa más
segura que git reset en lo que
respecta a la pérdida de trabajo.
Ramas

GIT BRANCH GIT MERGE GIT REBASE GIT REBASE



(INTERACTIVO)
Son efectivamente un Este permite tomar líneas Es un comando que reproduce Este acepta un argumento –i,
puntero a una instantánea independientes de git Branch commits o confirmaciones de que significa”interactivo”. Sin
de sus cambios. Se genera y agregarlas a una sola rama. cambio una por una, en la ningún argumento, el comando
una nueva rama al agregar parte superior de una se ejecuta en el modo
una nueva función o corregir determinada rama. estándar.
un error ;esto para
encapsular sus cambios.
git cherry-pick git merge –squash
Git cherry-pick es un comando poderoso que permite Hacer squash en Git, (“aplastar”), hace que
seleccionar confirmaciones de Git arbitrarias por nuestra rama a mergear (a la que haremos un
referencia y agregarlas al HEAD de trabajo actual. pull request) se componga de un solo commit

de esta manera merge haremos un solo
Git cherry-pick puede ser útil para deshacer paquete de código a nuestra rama de
cambios. desarrollo que contendrá una funcionalidad
Por ejemplo, supongamos que una confirmación se completa.
realiza accidentalmente en la rama incorrecta. Puede
cambiar a la rama correcta y seleccionar la
confirmación donde debería pertenecer.

Repositorios remotos
locales.

Son versiones de un proyecto que se esta


hospedados en Internet o en cualquier otra
red. Se puede tener varios de ellos, y en cada
uno tendrás generalmente permisos de lectura
en solitario o de lectura y escritura.
Comandos
git clone <url> - clona un repositorio.
git remote add <nombre> <url> - configura un repositorio
remoto.
git remote - lista los repositorios remotos.
git push -u <remoto> <rama> - sincroniza la rama con la
remota por primera vez.
git push - envía los nuevos commits a la rama remota.
git push -f <remoto> <rama> - reemplaza la rama remota
con el historial de la rama local.
git pull - actualiza los commits de la rama remota.
git checkout <rama> - descarga la rama del remoto si no
existe localmente.
git fetch <remoto> - actualiza la información del repositorio
remoto.
git rebase <remoto>/<rama> - rebasa la rama local contra
la remota.
Uso de un repositorio central
compartido

Un repositorio de software compartido en red se usa


cuando se desea implementar una aplicación de software
en varias computadoras en una red. Se recomienda
almacenar el paquete de software que desea implementar
en un recurso compartido de red al que se pueda acceder
desde todos los equipos de la red.
Repositorios remotos locales.

DINÁMICA DE TRABAJO CONFLICTOS



Los desarrolladores pueden trabajar en diferentes partes del Los conflictos en repositorios remotos y locales son comunes
código fuente en diferentes ramas y luego fusionar los cambios cuando varios desarrolladores trabajan en el mismo archivo o
en el repositorio remoto. También pueden realizar revisiones código fuente en diferentes ramas o versiones. Los conflictos
de código y comentarios sobre los cambios antes de ocurren cuando dos o más desarrolladores realizan cambios en
fusionarlos en la rama principal. las mismas líneas de código y estos cambios no se pueden
fusionar automáticamente.
Evitar destruir
commits
Es importante tener cuidado al trabajar con repositorios
remotos y locales para evitar destruir commits,
especialmente en entornos de trabajo colaborativo.

Compartiendo ramas

Compartir ramas en un repositorio remoto o local es una


práctica común en el desarrollo de software colaborativo.
Las ramas permiten a los desarrolladores trabajar en
diferentes características o soluciones de errores de forma
aislada y luego fusionar los cambios en la rama principal del
repositorio.

Mantener los merges del


historial

sobre los merges en el
Significa preservar la información
historial de Git. De esta manera, se puede rastrear
fácilmente la historia de cómo se han combinado diferentes
ramas y cómo se ha evolucionado el proyecto.
Por defecto, Git intenta fusionar las ramas de manera "fast-
forward", lo que significa que el historial de la rama
resultante es una secuencia continua de commits sin ningún
merge visible. Sin embargo, es posible configurar Git para
que mantenga los merges en el historial, utilizando el
comando "git merge" con la opción "--no-ff".

Repositorios remotos online.


GITHUB

Trabajar con GITHUB Uso de las claves SSH

Para trabajar con GIT, se crea una Se usa para establecer conexiones
herramienta de alojamiento de git, se seguras y encriptadas con un dispositivo
realiza una copia del repositorio a la remoto, permitiendo realizar
máquina local, se añade un archivo al mantenimiento del servidor desde un
repositorio local y se confirman los equipo local o manejar lo por medio de
cambios, enviados a la rama principal, comandos, dependiendo de la versión
se hace un cambio de archivo con una utilizada.
herramienta de alojamiento gif y
confirmarlo. Se abre una solicitud de
incorporación de cambios a la rama
principal donde funciona la rama con la
rama principal.
TAGS Y RELEASES
GITHUB PAGES

Es un sitio “Social coding”, permite subir Tags: Una etiqueta, o tag, es un marcador que se utiliza
repositorios de código para almacenarlo para identificar una versión específica de un proyecto de
en el sistema de control de versiones, se software en un sistema de control de versiones (como Git).
pueden realizar colaboraciones de Las etiquetas se utilizan para seguir el desarrollo del
proyectos de código, siendo así de proyecto y para hacer un seguimiento de las versiones
código abierto por defecto cualquiera en específicas que se han probado y liberado.
el mundo lo pude encontrar en GitHub, Releases: Una versión, o release, es una versión final y
usarlo, aprender de él y mejorarlo. estable de un proyecto de software que se ha liberado para
su uso. Las versiones incluyen todas las características y
correcciones de errores que se han desarrollado hasta ese
momento. Las versiones también se utilizan para seguir el
desarrollo del proyecto y para hacer un seguimiento de las
versiones que se han liberado y son accesibles al público en
general.
Issues, Milestones y Proyectos

MILESTONES PROYECTOS
ISSUES

Un proyecto es un esfuerzo coordinado para


Issue, es un problema o una tarea
Un hito, o milestone, es un evento o lograr un objetivo específico en un plazo
que necesita ser resuelta en un
un logro importante en el desarrollo determinado. En el contexto de software y
proyecto de software. de un proyecto de software. Los desarrollo de aplicaciones, un proyecto
Los problemas se utilizan para
hitos se utilizan para marcar el puede referirse a una aplicación específica
registrar y seguir los problemas que
progreso del proyecto y para que se está desarrollando, o a un conjunto
surgen durante el desarrollo de un
mantener un seguimiento de los de aplicaciones relacionadas. Los proyectos
proyecto, y para coordinar el trabajo
objetivos importantes que se han se utilizan para coordinar el trabajo entre los
entre los miembros del equipo para
alcanzado. miembros del equipo y para mantener un
solucionarlos. seguimiento del progreso general del
proyecto.
Hooks y Webhooks
Hooks Webhooks
Un hook, en el contexto de software, es un punto Un webhook, en el contexto de software, es una
de conexión o un gancho en una aplicación que forma de permitir que una aplicación interactúe
permite a otros componentes interactuar con con otra aplicación a través de la web. Un
ella. Los hooks se utilizan para permitir que otros webhook es una URL en la que una aplicación
componentes extiendan o modifiquen el envía una solicitud HTTP cuando ocurre un
comportamiento de una aplicación sin tener que evento específico. La aplicación que recibe la
modificar su código fuente. solicitud puede entonces realizar acciones en

respuesta a ese evento.

Parches en Git
Gitflow
Es un archivo que contiene los cambios necesarios
para actualizar un conjunto de archivos de una
Es un proceso de trabajo de control de versión a otra. Para crear un parche en Git, primero
versiones de git que se usa para el se selecciona una rama o un conjunto de commits
desarrollo de software, basándose en el que representen los cambios que se desean
uso de ramas específicas teniendo cada compartir. Luego, se utiliza el comando "git format-
una de ellas una tarea y el uso de flujos patch" para generar un conjunto de archivos de
de trabajo estructural para garantizar parche, uno por cada commit seleccionado.
que el proceso de desarrollos sea más Es importante tener en cuenta que los parches
ordenado y controlado. pueden ser más complicados de aplicar que las
fusiones directas, ya que pueden requerir una mayor
interacción manual. Además, los parches no incluyen
toda la información necesaria para comprender el
contexto de los cambios, por lo que pueden ser
menos eficaces para resolver conflictos o para
comprender las intenciones detrás de los cambios.
Otros repositorios online

BITBUCKET AZURE REPOS SOURCEFORGE


Bitbucket es un servicio de alojamiento Al igual que GitHub, sourceforge fue uno de
basado en la web, para los proyectos que Este servicio es ofrecido por Microsoft dentro de su
línea de herramientas de desarrollo en la nube los pioneros en el mundo del OpenSource y
utilizan el sistema de control de versiones una de las ventajas que ofrece es el directorio
mercurial y git. conocido como Azure DevOps, se integra bien con
otros productos del mismo fabricante como Visual de aplicaciones en el cual podrás listar la tuya,
También ofrece planes comerciales y pero carece de un sistema integrado de
gratuitos, cuentas gratuitas con un studio code y Microsoft Teams, este servicio
también ofrece más que solo repositorios en línea, CI/CD, provee una amplia gama de servicios
número ilimitado de repositorios útiles para los procesos de desarrollo de
privados, este servicio está escrito con también puedes crear tareas, etc.
software e integra un amplio número de
Python, también fue desarrollado por aplicaciones de software libre.
Atlassian por lo cual su apariencia es muy
parecida a otros servicios y ofrece una
experiencia a nivel corporativo.
Estándares de codificación para el
lenguaje PHP
PSR-1 - Codificación PSR-2 - Guía de PSR-4 - Estándar de
PSR-0 - Estándar de
PSR-3 - Interfaz de autocarga de clases
autocarga de clases
estándar básica estilo de log

codificación (nueva versión)
(Obsoleta)
El objetivo de esta

son requisitos obligatorios que


Esta recomendación está
Esta recomendación
Esta recomendación
recomendación es sustituir

aseguran la compatibilidad con


centrada en convenciones
extiende a la
define una interfaz
a la PSR 0 de cara a

el “autoloader”, cada espacio


para el nombrado y la
recomendación PSR 1 que
común para todas las
abandonar el código

de nombres contiene la
estructura de archivos,
define una serie de
clases que
cantidad de subespacios como
anterior a la versión 5.3 y

asegura un alto nivel de


normas de estilo básico.
implementen un
desee, cada espacio de
conseguir una estructura de

interoperabilidad entre
Hace que reduzca la
servicio de logs de
nombres debe permanecer en
carpetas más concisa, es

códigos PHP escritos por


fricción al leer código
cara a mejorar su
un espacio de nombres
decir que el objetivo de esta

distintos equipos o
ajeno, actualmente se
usabilidad, el objetivo
conocido como “Vendor name”;
recomendación es unificar la

desarrolladores, emplea
recomienda PSR 12, esta
de esta
se permite emplear para los
forma en que las clases son

sólo las etiquetas <?php y


recomendación extiende
recomendación es
nombres cualquier combinación
compatibles con

<? =, emplear codificación


de cara a actualizar las
permitir a las
de carácter en mayúsculas o
“autoloading” y describe

UTF-8 sin bom, el nombre


normas que en ella se
librerías recibir un
minúsculas, el separador
dónde situar los archivos

de la clase debe ser


sugieren de acuerdo a los
objeto
dentro de un espacio de
que vayan a ser cargados de

definido empleando la
cambios que ha habido de
“Psr\Log\LoggerInte
nombres es convertido en un
manera automática de
convención StudlyCaps,
PHP y a aportar claridad
rface” y escribir logs
“Directory_Separator” cuando
acuerdo a esta
etc. sobre aquellas que
de una forma simple
se busca en el sistema de
especificación.

parecieran confusas. y universal.
archivos.

¡Gracias!

También podría gustarte