Introducción
Git es un sistema de control de versiones. Permite mantener, cambiar, hacer copias de seguridad y compartir muchos archivos mientras mantiene automáticamente registros de todas las versiones anteriores. Estos tipos de archivos incluyen, pero no se limitan a:archivos de código, documentos, contratos, archivos HTML y CSS, y más. Todo lo que esté basado en texto se puede usar con Git.
¿Por qué usar Git?
¿Alguna vez ha actualizado un programa, un sitio web o un documento solo para desear tener la versión anterior a mano? Tal vez sus cambios rompieron el programa o el sitio web, tal vez cortó y pegó alguna información del vial. De cualquier manera, una línea de tiempo de cambios le ahorraría tiempo y esfuerzo, que es exactamente para lo que se creó el protocolo Git.
Además, Git se puede configurar para crear copias de seguridad automáticas de cualquier archivo al guardar ("confirmar") un archivo o cambiar en el sistema. También es un sistema rápido y liviano:el protocolo Git solo guarda los cambios que ha realizado en cada archivo, no cada archivo individualmente.
Finalmente, Git es el estándar de la industria cuando se trabaja con código. Permite que varios usuarios accedan a los mismos archivos y los editen sin conflictos, llevar una copia local ("clon") de un proyecto a la computadora de un usuario, crear una nueva copia con fines de prueba que no afecte al original ("sucursal" ), o para crear una versión completamente nueva ("bifurcación") de su programa, o el de otra persona, para editarlo con un solo clic o comando. Incluso puede traer los cambios en una rama al original ("fusionar").
Instalación de un cliente Git
De acuerdo, para comenzar con Git, deberá instalar algún software. Hay muchos clientes, pero nos vamos a centrar en uno para cada sistema operativo principal.
Instalación de Windows:
Vaya a http://msysgit.github.io/ y haga clic en "Descargar" para instalar el programa.
Página de descarga del cliente Windows Git
Instalación de Mac OSX:
SourceForge alberga el instalador de Max OSX. Haga clic en la versión que coincida con su versión de OSX para descargar y luego instale el programa.
Página de descarga del cliente Mac OSX Git
Instalación de Linux:
Para Debian/Ubuntu:
sudo apt-get install git
Para CentOS/RedHat/Fedora:
sudo yum install git
Para otras distribuciones de Linux o Unix, consulte las opciones de instalación del paquete aquí.
Comprender Git
Antes de entrar en los comandos, debemos revisar algunas de las funciones principales y la terminología utilizada con Git.
Repositorio :La base de datos principal donde se almacenan todos sus archivos para un proyecto determinado.
Índice (Área de preparación):el espacio de almacenamiento temporal para los cambios de archivo que enviará al Repositorio.
HEAD :apunta a una rama actual donde se confirmarán los cambios.
Nota:HEAD es un comando y un puntero dentro del sistema git. Se utiliza para demarcar la "cabeza", un marcador que le indica al sistema la rama actual que desea editar.
Mancha :el nombre de un archivo en Git.
Etiqueta :una nota que identifica el número de versión de un documento o fragmento de código.
Mensaje :una descripción de los cambios realizados con una confirmación (actualizaciones de archivos o etiquetas)
Historial :un registro de todas las confirmaciones realizadas en la rama o el repositorio.
Uso de Git
Abra el programa Git bash que instaló anteriormente:
Git bash en Windows
Si desea usar algo que no sea la carpeta predeterminada para almacenar su repositorio, cree la nueva carpeta y luego navegue su cliente Git a la carpeta correcta.
Ejemplo de navegación a una carpeta:
(Windows)
cd C:/Users/username/foldername/
(Linux/Mac)
cd /Users/username/foldername
Donde username
es su nombre de usuario en la computadora y foldername
es el nombre de la carpeta que creaste.
Crear un repositorio Git
Una forma de comenzar es crear un nuevo repositorio.
Para crear un nuevo repositorio, ingrese el comando:
git init
Clonación de un repositorio Git
Otra forma de comenzar es clonar otro repositorio existente. Para clonar un repositorio existente de GitHub (un sitio popular para almacenar y compartir proyectos usando Git, que se analiza más adelante), ingrese el comando:
git clone git://github.com/repositoryname
Para clonar un repositorio en línea diferente (al que tenga acceso), ingrese el comando:
git clone [email protected]:/path/to/repository.git
Confirmar repositorios de Git
Una vez que haya realizado los cambios y desee agregarlos a su repositorio, deberá seguir un breve proceso:
- Coloque los archivos para confirmar en el índice (área de ensayo)
- Confirmar con el repositorio local
- Envíe los cambios al repositorio remoto (si trabaja con un repositorio remoto).
Índice
Debe colocar los archivos que enviará en cada ronda en el índice (o área de preparación) antes de la actualización. Su cliente de Git solo actualizará los archivos que se hayan colocado allí. Para colocar un archivo en el índice, ingrese el comando:
git add filename
Nota:puede usar un punto (.) en lugar del nombre de archivo para agregar todos los archivos actuales en el directorio.
git add .
Compromiso
Para enviar los archivos agregados a su repositorio local, ingrese el comando:
git commit -m "message"
Donde message
es una descripción de sus cambios de confirmación. Asegúrese de incluir comillas.
Consejo:
Ya que estamos aquí, veamos las confirmaciones y los mensajes. Vimos un ejemplo arriba, agregando todos los archivos a una confirmación. Sin embargo, la mejor práctica al usar Git es confirmar solo un conjunto de cambios relacionados cada vez. Las confirmaciones deben ser fragmentos pequeños y discretos que se puedan explicar con un mensaje breve. Esto es lo que hace que el control de versiones (la razón de la existencia de Git) sea útil. Los cambios pequeños se pueden deshacer si causan problemas o si luego se descubre que son innecesarios o están en conflicto con otros cambios. Confirmar grandes bloques de cambios no relacionados hace que sea difícil identificar qué está causando un problema o error, en caso de que ocurra. Una buena regla general:si se necesitan más de una oración o dos para describir tu confirmación, debes confirmar partes más pequeñas.
Empujar
Ahora que sus cambios se han confirmado, puede enviarlos a un repositorio remoto (si está utilizando un repositorio remoto):
git push origin master
Empujar a un repositorio remoto permite que otros usuarios accedan y modifiquen los cambios que ha realizado.
Crear, usar y fusionar ramas de Git
Hemos discutido las ramas brevemente, pero repasémoslas.
Una rama es una línea de pensamiento separada para su contenido o programa. Por ejemplo, si desea considerar una nueva paleta de colores para un sitio web, puede crear una o más sucursales del sitio web y probar sus diversos conceptos de paleta de colores sin afectar el Maestro. Si se decidió por un nuevo tema naranja, podría fusionar la rama "naranja" nuevamente en el Maestro y reemplazar la paleta anterior. Veamos cómo funciona esto.
Para crear una nueva rama que albergará su paleta de colores naranja, ingrese:
git checkout -b orange
checkout
es un comando de Git que cambia entre ramas. El -b
crea una nueva rama con el nombre a continuación, en este caso, "naranja".
Nota:Asegúrate de haber guardado cualquier trabajo que hayas hecho en tu editor antes de crear una nueva rama para evitar perderla.
Si desea volver a trabajar en la rama principal, ingrese:
git checkout master
Nota:Git requiere que confirmes todos los cambios antes de permitirte cambiar de rama.
En este ejemplo, trabajaremos con esa nueva paleta de colores, por lo que nos quedaremos con la nueva rama.
Confirmarás la rama con el mismo comando que la rama Maestra.
git commit -a -m "branch demonstrating an orange palette"
El -a
flag agrega automáticamente todos los archivos rastreados, es decir, todos los archivos que se incluyeron en la última confirmación que se modificaron.
Si desea enviar su rama naranja al repositorio remoto, use:
git push origin orange
Si está satisfecho con sus pruebas y le gustaría incluir los cambios en su versión principal (su rama maestra), querrá fusionarse.
Primero, realiza el pago en tu sucursal principal.
git checkout master
Luego, use el comando merge para actualizar el Maestro con la información de su rama "naranja".
git merge orange
Después de la fusión, la rama aún existe pero ya no es necesaria. Elimine la rama "naranja" usando -d
opción:
git branch -d orange
Conflictos al fusionarse
Si tiene dos o más ramas que tienen ediciones en el mismo archivo, puede tener un conflicto al fusionarlas sucesivamente. Un ejemplo de un conflicto entre una rama de "diseño de prueba" de su sitio web y su rama "naranja" que fusionó recientemente en el Maestro podría verse así:
$ git merge orange <<<<<<< HEAD:index.html <div id="footer">contact : [email protected]</div> ======= <div id="footer"> contact us at [email protected]</div> >>>>>>> test-layout:index.html
Serás responsable de cambiar los dos archivos para que coincidan en las áreas de conflicto y luego ejecutar el comando para finalizar la combinación:
git add index.html
Siempre puede comparar ramas antes de una fusión utilizando el diff
comando.
git diff <one-branch> <another-branch>
Extraer y traer con Git
Hemos repasado cómo enviar cambios a un repositorio remoto, pero ¿qué sucede si está trabajando con otros y necesita acceder a los cambios que han realizado? Ahí es donde el pull
entra el comando.
La extracción recupera todos los cambios realizados en el repositorio remoto desde la última vez que lo clonó o extrajo y copia los cambios en su repositorio local.
git pull
Si desea actualizaciones remotas sin cambiar automáticamente su copia local para reflejar los cambios, use fetch
:
git fetch
Luego tiene la oportunidad de revisar los cambios y fusionar las actualizaciones en su Maestro.
Bifurcación y GitHub
Al usar y aprender Git, te encontrarás con el término "bifurcación" o "bifurcación". Bifurcar es simplemente clonar el repositorio de otra persona en su propio espacio, donde puede modificarlo y crear su propia versión sin interrumpir la de ellos, creando así una versión independiente o "bifurcación".
También te encontrarás con el nombre GitHub. Con GitHub, la bifurcación se simplifica y se puede hacer con solo hacer clic en un botón:
Botón de bifurcación en GitHub
Anunciado principalmente como una herramienta de colaboración, GitHub es un servicio con el que puede realizar copias de seguridad y compartir sus repositorios, o contribuir y bifurcar los proyectos de otras personas. Hay otros servicios similares a GitHub, pero GitHub sigue siendo una de las opciones más populares.
Para descargar el cliente u obtener más información, vaya a Github.
Más recursos
Hay muchas fuentes de las que aprender opciones avanzadas en Git. Una de las fuentes más completas es el libro Pro Git, disponible en línea.
Y siempre está la documentación oficial de Git.
GitHub también ofrece una lista de reproducción de lecciones en video.
Atlantic.Net
Atlantic.net ofrece alojamiento VPS, así como servicios de alojamiento gestionados que incluyen una capa de servicios gestionados esenciales para el negocio en sus paquetes de alojamiento. Contáctenos hoy para obtener más información.