40 years old Motor Mechanic (General ) Rodrick from Happy Valley-Goose Bay, has lots of hobbies and interests which include jewellery, and fossils. Has travelled since childhood and has been to numerous spots, like Barcelona.

Subtitle

Blog

Git

Posted by [email protected] on


Git(pronunciado "guit"
​) es un software dediseñado por, pensando en la eficacia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un enorme número de ficheros de. Su propósito es llevar registro de los cambios en archivos de computadora y regular el trabajo que varias personas realizan sobre archivos compartidos.


Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran redactar la interfaz de usuario ocomoo.
​Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena.
​Hay ciertos proyectos de mucha relevancia que ya usan Git, particularmente, el conjunto dedel.


ElGit está hoy en día (2009) supervisado por Junio Hamano, quien recibe contribuciones al código de cerca de doscientos ochenta programadores. En lo que se refiere a derechos de autor Git es undistribuible bajo los términos de la versión 2 de la.


Características


El diseño de Git se basó eny en.

​ Originalmente fue diseñado como un motor de sistema de control de versiones de bajo nivel sobre el cual otros podrían codificar interfaces frontales, tales comoo.
​ Desde ese entonces hasta el momento el núcleo del proyecto Git se ha vuelto un sistema de control de versiones completo, aprovechable en forma directa.


buscaba un sistema distribuido que pudiese emplear en forma semejante a BitKeeper, pero ninguno de los sistemas bajo software libre libres cumplía con sus requerimientos, singularmente en cuanto a desempeño. El diseño de Git mantiene una enorme cantidad de código distribuida y gestionada por bastante gente, que incide en abundantes detalles de rendimiento, y de la necesidad de rapidez en una primera implementación.


Entre las características más relevantes se encuentran:



  • Fuerte apoyo al desarrollo no lineal, por consiguiente rapidez en la gestión de ramas y mezclado de diferentes versiones. Git incluye herramientas específicas para navegar y visualizar un historial de desarrollo no lineal. Una presunción fundamental en Git, es que un cambio será fusionado mucho más a menudo de lo que se escribe originalmente, conforme se pasa entre varios programadores que lo examinan.

  • Gestión distribuida. Del mismo modo que,,,,y, Git le da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre loslocales. Los cambios se importan como ramas auxiliares y pueden ser fusionados en exactamente la misma forma que se hace con la rama local.

  • Los guardes de información pueden publicarse por,,o mediante un protocolo nativo, así sea a través de una conexión TCP/IP simple o a través de cifrado. Git también puede imitar servidores, lo que habilita el empleo de clientes CVS pre-existentes y módulos IDE para CVS pre-existentes en el acceso de repositorios Git.

  • Los repositorios Subversion y svk se pueden usar de forma directa con git-svn.

  • Gestión eficaz de proyectos grandes, dada la velocidad de gestión de diferencias entre archivos, entre otras muchas mejoras de optimización de velocidad de ejecución.

  • Todas las versiones anteriores a un cambio determinado, implican la notificación de un cambio siguiente en cualquiera de ellas a ese cambio (denominado autenticación criptográfica de historial). Esto existía en.

  • Resulta algo más caro trabajar con archivos específicos frente a proyectos, eso diferencia el trabajo en frente de CVS, que trabaja con base en cambios de fichero, pero mejora el trabajo con afectaciones de código que concurren en operaciones afines en varios archivos.

  • Los renombrados se trabajan basándose en similitudes entre archivos, además de nombres de ficheros, pero no se hacen marcas explícitas de cambios de nombre con base en supuestos nombres únicos de nodos de sistema de ficheros, lo que evita posibles y desastrosas coincidencias de archivos diferentes en un único nombre.

  • Realmacenamiento periódico en paquetes (ficheros). Esto es relativamente eficiente para escritura de cambios y parcialmente ineficiente para lectura si el reempaquetado (con base en diferencias) no ocurre cada cierto tiempo.


Órdenes básicas


Git ciclo de vida de archivos git


Esto crea un subdirectorio nuevo llamado .git, el cual contiene todos los ficheros necesarios del repositorio – un esqueleto de un repositorio de Git. Todavía no hay nada en tu proyecto que esté bajo seguimiento.


Descarga los cambios efectuados en el repositorio recóndito.




  • git merge
    <nombre_rama>
    :


Impacta en la rama en la que te hallas parado, los cambios realizados en la rama “nombre_rama”.


Unifica los comandos
fetchy
mergeen un único comando.




  • git commit -am "<mensaje>":


Confirma los cambios realizados. El “mensaje” normalmente se emplea para asociar al
commituna breve descripción de los cambios realizados.




  • git push origin
    <nombre_rama>
    :


Sube la rama “nombre_rama” al servidor remoto.


Muestra el estado actual de la rama, como los cambios que hay sin commitear.




  • git add
    <nombre_archivo>
    :


Comienza a trackear el archivo “nombre_archivo”.




  • git checkout -b
    <nombre_rama_nueva>
    :


Crea una rama a partir de la que te encuentres parado con el nombre “nombre_rama_nueva”, y después brinca sobre la rama nueva, con lo que quedas parado en esta última.




  • git checkout -t origin/
    <nombre_rama>
    :


Si hay una rama recóndita de nombre “nombre_rama”, al ejecutar este comando se diseño web galicia con el nombre “nombre_rama” para hacer un seguimiento de la rama recóndita con exactamente el mismo nombre.


Lista todas y cada una de las ramas locales.


Lista todas las ramas locales y remotas.




  • git branch -d
    <nombre_rama>
    :


Elimina la rama local con el nombre “nombre_rama”.




  • git push origin
    <nombre_rama>
    :


Commitea los cambios desde el branch local origin al branch “nombre_rama”.


Actualiza tu repositorio remoto en caso que algún otro desarrollador haya eliminado alguna rama recóndita.


Elimina los cambios realizados que aún no se hayan hecho
commit.




  • git revert
    <hash_commit>
    :


Revierte el
commitrealizado, identificado por el “hash_commit”.


Flujo de trabajo


Git plantea una enorme libertad en la manera de trabajar en torno a un proyecto. Sin embargo, para regular el trabajo de un grupo de personas en torno a un proyecto es necesario convenir como se trabajará con Git. A estos pactos se les llama
flujo de trabajo
​ Un flujo de trabajo de Git es una fórmula o una recomendación acerca del uso de Git para realizar trabajo de forma uniforme y productiva.
​Los flujos de trabajo más populares son git-flow, GitHub-flow, GitLab Flow y One Flow.


Creado en 2010 por Vincent Driessen.
​ Es el flujo de trabajo más conocido. Está pensado para aquellos proyectos que tienen entregables y ciclos de desarrollo bien definidos.
​Está basado en dos grandes ramas con infinito tiempo de vida (ramas master y develop) y múltiples ramas de apoyo, unas orientadas al desarrollo de nuevas funcionalidades (ramas feature-*), otras al arreglo de errores (hotfix-*) y otras orientadas a la preparación de nuevas versiones de producción (ramas release-*). La herramienta gitflowfacilita la automatización de las labores implicadas en este flujo de trabajo



Master


Es la rama primordial. Contiene el repositorio que se halla publicado en producción, con lo que ha de estar siempre estable.



Development


Es una rama sacada de
Master. Es la rama de integración, todas y cada una de las nuevas funcionalidades se deben integrar en esta rama. Entonces que se realice la integración y se corrijan los errores (en el caso de haber alguno), esto es que la rama se halle estable, se puede hacer un merge de development sobre la rama
Master.



Features


Cada nueva funcionalidad se debe realizar en una rama nueva, específica para esa funcionalidad. Estas se deben sacar de
Development. Una vez que la funcionalidad esté desarrollada, se hace un merge de la rama sobre
Development, donde se integrará con las demás funcionalidades.



Hotfix


Sonque surgen en producción, por lo que se deben reparar y publicar de forma urgente. Es por ello, que son ramas sacadas de
Master. Una vez corregido el error, se debe hacer una unificación de la rama sobre
Master. Al final, para que no quede desactualizada, se debe realizar la unificación de
Mastersobre
Development.



Release


Las ramas de release apoyan la preparación de nuevas versiones de producción. Para ellos se arreglan muchos errores menores y se preparan adecuadamente los metadatos. Se suelen original de la rama develop y deben fusionarse en las ramas master y develop.


GitHub-Flow


Creado en dos mil once por GitHub
​ y es la manera de trabajo sugerida por las funcionalidades propias de GitHub . Está centrado en un modelo de desarrollo iterativo y de despliegue constante. Está basado en 4 principios:



  • Todo lo que está en la rama master está listo para ser puesto en producción

  • Para trabajar en algo nuevo, debes crear una nueva rama desde la rama master con un nombre gráfico. El trabajo se irá integrando sobre esa rama en local y de manera regular también a esa rama en el servidor

  • Cuando se necesite ayuda o información o cuando creemos que la rama está lista para integrarla en la rama master, se debe abrir una pull request (petición de integración de cambios).

  • Alguien debe revisar y visar los cambios para fusionarlos con la rama master

  • Los cambios integrados se pueden poner en producción.


GitHub procura simplificar la gestión de ramas, trabajando directamente sobre la rama master y produciendo integrando las distintas features de manera directa a esta rama


GitLab Flow


Creado en dos mil catorce por Gitlab.
​Es una especie de extensión de GitHub Flow acompañado de un conjunto de pautas y mejores prácticas que apuntan a estandarizar aún más el proceso. De la misma forma que GitHub Flow plantea el empleo de ramas de funcionalidad (feature) que se producen desde la rama master y que al acabarse se mezclan con la rama master. link building spain ás introduce otros 3 tipos de ramas:



  • Ramas de entrecierro. Por ejemplo pre-production production. Se crean desde la rama master cuando estamos listos para implementar nuestra aplicación. Si hay un error crítico lo podemos arreglar en un rama y luego mezclarla en la rama de entrecierro.

  • Ramas de versión. Por poner un ejemplo 1.5-stable 1.6-stable. El flujo puede incluir ramas de versión en el caso de que el software requiera lanzamientos usuales.


Creado en 2015 por Adam Ruka. En él cada nueva versión de producción está basada en la versión anterior de producción. La mayor diferencia entre One Flow y Git Flow es que One Flow no tiene rama de desarrollo.


Software que los emplea como base


Git se ha usado como software base sobre el que el que se han desarrollado otros proyectos



  • . Aplicación web que deja la revisión de código en equipo para la aprobación o bien rechazo de modificaciones. Consiste de un repositorio Git que actúa como intermediario entre los gits de los desarrolladores y el repositorio Git que usa la. Los desarrolladores en vez de enviar el código al sistema de integración continua lo envían al repositorio Gerrit donde se han establecido político.

  • Las plataformas deson plataformas web que ofrecen servicios que dejan el desarrollo colaborativo de software. Uno de los servicios básicos ofrecidos es crear poder crear repositorio de software en un sistema deconcreto. El sistema de control de versiones más empleado es Git. Ejemplos de estos servicios son,y. Se han desarrollado múltiples soluciones que dejan crear automáticamente forjas software como por servirnos de un ejemplo,,o las versiones de plataformas ofrecidas por GitHub (GitHub Enterprise), Gitlab (GitLab CE y GitLab EE) y Bitbucket.


  • . Es un cliente del servicio de código abierto que permite utilizar repositorios Git como, dejando la sincronización de ficheros y colaboración en la nube de forma afín a. Los repositorios Git pueden estar en una máquina Linux, normalmente creados con la aplicacióno en repositorios git alojados en la nube utilizando servicios como,,o.


  • . Herramienta de git que permite hacer cifrado de forma totalmente transparente. Cuando se hace un git push los archivos marcados para cifrar se cifren automáticamenteno. Análogamente se hará cuando se hace un git pull. Así podemos tener un repositorio que tenga una parte de sus ficheros cifrados y otra parte sin cifrar. El cifrado se puede realizar con claves de(con) o.

  • Herramientas, como gitflow, que facilitan la automatización de las labores implicadas en cierto/s flujo/s de trabajo.


Véase también


Referencias


Enlaces externos

Categories: None

Post a Comment

Oops!

Oops, you forgot something.

Oops!

The words you entered did not match the given text. Please try again.

Already a member? Sign In

0 Comments