Git fue creado por Linus Torvalds en 2005, originalmente como un software de control de versiones para permitir que los colaboradores carguen mejor el código en el kernel de Linux. Git es un sistema de control de versiones. A veces se denomina sistema SCM (gestión de control de código fuente).
Desde entonces, su uso ha superado con creces el ecosistema de Linux y lo utilizan millones de desarrolladores de software en todo el mundo (el 42,9 % de todos los desarrolladores de software lo utilizan sobre cualquier otro sistema de control de versiones). No es solo para desarrolladores de software, Joe's regulares que desean compartir o almacenar cosas, por ejemplo, archivos de configuración o sitios web. Git les permite tener un lugar donde pueden almacenar (y, lo que es más importante, colaborar o fusionar ) su contenido.
¿Qué hace exactamente, en términos sencillos?
Aquí hay dos razones principales por las que querrías usar Git:
- Colaboración :desea colaborar en algunos archivos; por ejemplo, un desarrollador escribe una línea de código y otro desarrollador escribe dos líneas de código. Esto se puede 'combinar' con una copia de seguridad en el 'servidor git', de modo que se convierta en un solo archivo.
- Control/seguimiento de versiones :desea poder realizar un seguimiento de los cambios que han realizado los otros colaboradores. La capacidad de seguimiento le permitirá ver si hay errores que deben revertirse.
Otra razón es que si tiene un trabajo que involucra el desarrollo de aplicaciones de alguna manera (por ejemplo, si es programador o administrador de sistemas que necesita hacer revisiones de sus datos de gestión de configuración, o simplemente clonar el código de los desarrolladores). ) – el uso de Git es el sistema de control de versiones generalmente aceptado en estos días. No saber cómo usarlo probablemente lo pondrá en desventaja profesional.
Git frente a Github
Un servidor Git Se puede instalar en cualquier servidor Linux. Acceder generalmente requiere el uso de git cliente , que es una herramienta de línea de comandos. Más sobre eso en la siguiente sección.
Github es un servicio Git público basado en web ampliamente utilizado para que las personas trabajen en proyectos a través de Internet. No está afiliado a Linus Torvalds ni a ninguna de las personas del proyecto git, es una adaptación basada en web de un servidor git. Aprovecha todos los componentes principales de git y ofrece una mayor extensibilidad a través de su interfaz web. El principal beneficio de github es que es un repositorio público de git al que aún puede conectarse a través del cliente de git habitual. Github también ofrece servicios de repositorio privado, sin embargo, estos son de pago.
También hay disponibles otros productos comerciales que implementan parte o la totalidad del servicio de git, como Atlassian Bitbucket.
Terminología y comandos importantes
El comando del cliente git se ingresa en la terminal y tiene varias opciones. Descubrirá que git probablemente ya esté instalado en su máquina Linux. Si no es así, es seguro esperar que sea solo una instalación apt-get o yum.
Los más pertinentes de ellos se enumeran a continuación. Tenga esto a mano, ya que será útil como hoja de trucos mientras empiezas con Git:
Comando | Descripción |
clonar | Hace una copia de un repositorio git. Por ejemplo, siempre que descargue cosas de un sitio github/git (repositorio), estará usando clone . |
iniciar | Inicializa un repositorio Git vacío en el directorio actual. por ejemplo: git init /home/mycode |
estado | Muestra el estado del repositorio. Harás esto a menudo, para que puedas rastrear cualquier cambio en el repositorio. |
añadir | Agrega archivo(s) a un área de preparación, para que los cambios se puedan rastrear localmente. Le dice a git que comience a rastrear los cambios para el archivo que especifique. Tenga en cuenta que esto no los envía a la rama, está en un área de preparación local, por ejemplo:
Para agregar varios archivos/directorios, necesita paréntesis alrededor de comodines para que git obtenga la lista de archivos antes de que el shell opere en el comodín. Este ejemplo agrega cada archivo .jpg en todos los directorios debajo del directorio actual (incluido el directorio actual):
|
compromiso | Confirmar un cambio por etapas (agregado). Confirmar un cambio significa "todos estos agregados Lo he hecho, sácalos del área de preparación y guárdalos en mi repositorio” . Es obligatorio comprometerse con un mensaje. El mensaje debe describir para qué es la confirmación, por ejemplo, podría decir que ha agregado algunos jpegs de gatos. |
remoto | Configure un repositorio remoto para enviar confirmaciones. Cualquier cambio que haya realizado localmente se puede cargar en un repositorio remoto. Github es un repositorio remoto, por ejemplo. Para inicializar la conexión de su servidor git remoto, use git remote. Ej:
|
empujar | Envíe los cambios confirmados a un repositorio remoto. Una vez que haya inicializado su repositorio remoto, puede enviar los cambios confirmados con push:
|
tirar | Combina los cambios del repositorio remoto con su copia local. Una vez que las personas (o usted) hayan realizado más cambios en el repositorio, desea emitir una solicitud de extracción para fusionar los cambios que tiene localmente con el repositorio ascendente (remoto).
|
dif | Muestra qué diferencias ha habido en el repositorio desde la última confirmación. Cuando más de una persona envía cambios al repositorio remoto, habrá diferencias entre lo que ha almacenado localmente y lo que está en el servidor remoto. Las diferencias se denominan diffs . Cuando haces un tirón , esto le permitirá a su local Para ver las diferencias entre su confirmación más reciente y la que existe en el repositorio remoto, puede usar el puntero HEAD. HEAD es simplemente un indicador de posición, por defecto apunta a su ubicación más confirmaciones recientes.
La salida mostrará las diferencias entre su copia de los archivos modificados y la copia remota (sumas y restas). Para ver las diferencias entre los archivos en su preparación (agregar ed) y los archivos locales en su PC, utilice |
pagar | Volver a una confirmación anterior o cambiar de rama. Digamos que realizó una confirmación de file.txt que decidió que no era buena y que quería volver a una versión confirmada anterior, la revertiría así:
Para cambiar una rama, especifique el nombre de la rama (en lugar de usar — o proporcionar un nombre de archivo para revertir):
|
sucursal | Crea una nueva copia (rama). El comando también elimina o enumera las ramas presentes. Para obtener más información sobre qué es una 'rama', consulte la terminología a continuación. El siguiente ejemplo crea una nueva rama llamada 'nueva rama':
El siguiente ejemplo elimina 'nueva rama ':
|
rm | Elimina archivos de la rama actual, así como del disco local. Para eliminar todos los archivos, use rm tal como lo haría con un complemento:
|
combinar | Fusiona una rama en otra. Como ejemplo práctico, continuando desde rm ejemplo de comando anterior, supongamos que realizó un rm *.txt desde la rama newbranch . Si desea fusionar ese cambio en el maestro rama, en primer lugar, volvería a cambiar al maestro sucursal emitiendo git checkout master, luego, usando el comando merge para fusionar las diferencias de newbranch con la rama actual (master ). La mayoría de los equipos de desarrolladores trabajarán en su código en ramas separadas antes de fusionarlos en la rama maestra al final del día.
|
restablecer | Revierte (elimina) cualquier cambio por etapas. Por ejemplo, si ha realizado un git add file.txt, pero luego, antes de confirmar, decide que file.txt no debe confirmarse, emita el comando de reinicio, por ejemplo:git reset archivo.txt |
registro | Muestra un diario de todos los cambios confirmados. Ej:git log |