Git
¿Qué es Git?
Git es un sistema de control de versiones distribuido (dvcs) escrito en lenguaje C. Un sistema de control de versiones permite mantener un conjunto de archivos (una colección de archivos) y registrar un historial de cambio de este conjunto. Las operaciones que permite este control pueden ser: cambiar el estado de los archivos a dos días atrás, cambiar entre distintas versiones para pruebas y control. Este tipo de operaciones permite tener los archivos en cualquier estado sin perder ninguna historia y mantener los archivos coherentes con las historias correspondientes.
El conjunto o colección de archivos se denomina código fuente (source code) y al ser un sistema distribuido, la colección completa de archivos y las historias generadas se encuentran en cada cliente del software. Por lo tanto, no se requiere de un repositorio central desde el cual recuperar o almacenar los cambios generados.
Git mantiene todas las versiones. De esta manera se puede regresar a cualquier punto de la historia del código fuente.
Git efectúa "commit" a su repositorio local y luego puede sincronizar su repositorio con otros repositorios (remotos). Git permite clonar los repositorios, es decir, crear una copia exacta del repositorio incluyendo la historia completa del código fuente. Los dueños de los repositorios pueden sincronizar los repositorios vía "push" (transferir los cambios al repositorio remoto) o vía "pull" (obtener cambios de un repositorio remoto).
Git soporta ramificaciones ("branching") que consiste en mantener diferentes versiones de tu código fuente. Si deseas desarrollar una nueva característica, puedes abrir una rama ("branch") y desarrollar el código necesario para esta nueva funcionalidad sin afectar la línea principal de tu código.
Git puede ser usado desde la línea de comandos, este forma de trabajo será descrita en este documento. También existen herramientas gráficas, por ejemplo EGit para el IDE Eclipse, pero estas herramientas no serán descritas en este documento.
Terminología importante
Repositorio : Un repositorio contiene la historia, las diferentes versiones a través del tiempo de todas las ramas ("branchs") y etiquetas ("tags"). En Git cada copia del repositorio es un repositorio completo. El repositorio permite que puedas recuperar revisiones dentro de tu propia copia de trabajo.
Ramas ("Branches") : Una rama es una línea de código separada con su propia historia. Puedes crear una nueva rama de una existente y cambiar el código independientemente de otras ramas. Una de las ramas es la inicial (por omisión, normalmente denominada "master"). El usuario selecciona una rama y trabaja en esta rama seleccionada, la cual se denomina "copia de trabajo" (working copy). El seleccionar una rama se denomina "obtener una rama" (checkout a branch).
Etiquetas ("Tags") : A los puntos de la etiqueta a un punto determinado en el tiempo en una rama. Con una etiqueta, puede tener un punto de llamada al que siempre se puede revertir, por ejemplo, la codificación de 25.01.2009, en la rama de "pruebas".
Confirmar : Usted confirma sus cambios en un repositorio. Esto crea una nueva revisión, que puede ser recuperada más tarde, por ejemplo, si usted quiere ver el código fuente de una versión anterior. Cada compromiso contiene el autor y confirmador, por lo que es posible identificar la fuente del cambio. El autor y confirmador podrían ser personas diferentes.
URL : Una URL en Git determina la ubicación del repositorio.
Revisión : Representa una versión del código fuente. Git identifica las revisiones con los identificadores de SHA1. SHA1 son los identificadores de 160 bits de longitud y están representados en hexadecimal. La última versión se puede recuperar mediante el literal "HEAD", la versión anterior a la ultima seria mediante el literal "HEAD~1" y así sucesivamente.
El indice de paso (Staging Index)
Git requiere que los cambios esten marcados de forma explícita para la próxima confirmación (commit). Por ejemplo, si usted hace un cambio en un archivo y desea que este cambio sea relevante para el siguiente envío, usted tiene que agregar el archivo al "índice de paso" mediante la llamada del comando "git add <archivo>". El índice de paso será una instantánea completa de los cambios.
Los nuevos archivos siempre se deben agregar explícitamente al índice. Para los archivos que ya han sido confirmados, puede utilizar la opción -a en una confirmación (commit).
Instalación
En Ubuntu se puede instalar la herramienta de línea de comandos de Git a través del siguiente comando:
sudo apt-get install git-core
Para otras distribuciones de Linux por favor revise la documentación del proveedor.
Una versión para Windows de Git se pueden encontrar en el sitio del Proyecto msysgit. La dirección URL de esta página web es http://code.google.com/p/msysgit/.
El programa de instalación
Git le permite almacenar la configuración global en un archivo. Gitconfig. Este archivo se encuentra en el directorio home del usuario. Como se mencionó antes Git almacena el confirmador y el autor en cada confirmación. Esta y más información se puede almacenar en la configuración global.
A continuación se va a configurar Git de manera que un determinado usuario y la dirección de correo electrónico se utiliza, permite la codificación de color y decirle a Git que ignore ciertos archivos.
Configuración de usuario
Configure su usuario y correo electrónico para Git a través del siguiente comando.
# Configure el usuario que será utilizado por git
# Por supuesto, usted debe usar su nombre
git config - user.name mundial "Apellidos Ejemplo"
# Lo mismo para la dirección de correo electrónico
git config - global user.email "your.email @ gmail.com"
# Establezca por defecto para que todos los cambios se desplazan siempre en el repositorio
git config - push.default mundial "matching"
Para consultar la configuración de Git, ejecuta el siguiente comando:
git config - list
Resaltado de color
La figura a continuación permitirá destacar algunos de la consola.
git config - global de automóviles color.status
git config - auto color.branch mundial
No haga caso de determinados archivos
Git puede ser configurado para ignorar determinados archivos y directorios. Esto se configura a través del archivo. Gitignore. Este archivo puede estar en cualquier directorio y puede contener patrón de los archivos. Por ejemplo, puede decirle a Git que ignore el directorio bin a través del siguiente. Gitignore en el directorio principal.
papelera
Git también ofrece la core.excludesfile configuración global para especificar excluye a nivel mundial.
También puede configurar un archivo global. Gitignore válido para todos los repositorios Git.
# Crear un ~ /. Gitignore en tu directorio de usuario
cd ~ /
tacto. gitignore
# Excluir bin y. Directorios de metadatos
echo "bin">. gitignore
echo ". los metadatos". >> gitignore
# Configure Git para utilizar este archivo
# Como global. Gitignore
git config -. core.excludesfile mundial ~ / gitignore
Seguimiento de los directorios vacíos con el. Gitkeep
Git va a ignorar los directorios vacíos, POR EJEMPLO, no los ponga bajo control de versiones. Si desea realizar un seguimiento de dichas guías, que es la convención de poner los archivos llamados ". Gitkeep" en estos directorios. El archivo que se podría llamar nada, Git no asigna especial importancia a este nombre. Como el directorio actual contiene un archivo, Git va a incluir en su mecanismo de control de versiones.
Introducción a Git
A continuación lo guiará a través de un flujo de trabajo típico de Git. Creará unos pocos archivos, crear un repositorio Git local y comprometer a su archivo en el repositorio. Después, clonar el repositorio y empujar y tirar algunos cambios entre los repositorios. Los comentarios marcados con #) antes de los comandos de explicar las acciones específicas.
Abra una línea de comandos / shell para las operaciones.
Crear contenido
El siguiente, se crea algunos archivos con algún contenido que posteriormente será puesto bajo control de versiones.
# Cambiar de casa
cd ~ /
# Crear un directorio
mkdir ~ / repo01
# Cambiar en ella
cd repo01
# Crear un nuevo directorio
mkdir ficheros de datos
# Creación de unos pocos archivos
contacto TEST01
contacto test02
contacto test03
ficheros de datos de contacto / data.txt
# Ponga un poco de texto en el primer archivo
ls> TEST01
Crear repositorio, agregar y comprometerse
Cada repositorio Git se almacena en la carpeta. Git del directorio en el que ha sido el repositorio Git creado. Este directorio contiene la historia completa del repositorio. El archivo .git / config contiene la configuración local del repositorio.
A continuación se crea un repositorio Git, agregar los archivos al índice del repositorio y confirmar los cambios.
# Inicializar el repositorio Git locales
git init
# Agregar todos (los archivos y directorios) en el repositorio Git
git add.
# Hacer un compromiso de su archivo en el repositorio local
git commit-m "compromiso inicial"
# Muestra el archivo de registro
git log
4,3. Ver las diferencias a través de diferencias y confirmar los cambios
El comando git diff permite al usuario ver las modificaciones. Para probar esto, hacer algunos cambios en un archivo y comprobar lo que el git diff muestra para ti. A continuación, confirme los cambios en el repositorio.
# Hacer algunos cambios en el archivo
echo "Esto es un cambio"> TEST01
echo "y este es otro cambio"> test02
# Compruebe los cambios a través del comando diff
git diff
# Confirme los cambios,-uno se compromete cambios en los archivos modificados
# Pero no agregará automáticamente los archivos nuevos
git commit-a-m "Estos son los nuevos cambios"
4,4. Estado, Diff y el registro de confirmación
A continuación te ayuda a ver el estado actual y la lista de confirmaciones en su repositorio.
# Hacer algunos cambios en el archivo
echo "Esto es un nuevo cambio"> TEST01
echo "y este es otro nuevo cambio"> test02
# Ver el estado actual de su repositorio
# (Los archivos que han cambiado / eliminado nueva /)
git status
# Muestra las diferencias entre los archivos comprometidos
# Y la última confirmación de la rama actual
git diff
# Agregar los cambios en el índice y se comprometen
git add. && Git commit-m "chaanges Más - error tipográfico en el mensaje de confirmación"
# Muestra la historia de la cometa en la rama actual
git log
# Esto inicia una bonita vista gráfica de los cambios
gitk - todo
4,5. Corrección de los mensajes de confirmación - git modificar
La modificación de git comando permite cambiar el mensaje de la última confirmación.
En el ejemplo anterior el mensaje de confirmación es incorrecto, ya que contenía un error tipográfico. A continuación se pondrá fin a esta vía - modificar el parámetro.
git commit - amend-m "Más cambios - ahora correcto"
4,6. Borre los archivos
Si se elimina un archivo que se encuentra bajo control de git add versión. no recoge este archivo a. Es necesario utilizar el comando git commit con la opción-a, o el indicador-en el comando git add.
# Crear un archivo y lo puso bajo control de versiones
tocar nonsense.txt
git add. && Git commit-m "un nuevo archivo ha sido creado"
# Eliminar el archivo
nonsense.txt rm
# Trate de forma estándar de la comisión -> no va a funcionar
git add. && Git commit-m "un nuevo archivo ha sido creado"
# Ahora comprometerse con la opción-a
git commit-a-m "nonsense.txt archivo ha sido removido"
# También puede agregar archivos borrados con el índice de puesta en escena a través de
git add-A.
git commit-m "nonsense.txt archivo ha sido removido"
Trabajar con repositorios remotos
5,1. La creación de un mando a distancia (desnudo) repositorio Git
Ahora vamos a crear un repositorio Git remoto. Git le permite almacenar el repositorio remoto, ya sea en la red o localmente.
Un repositorio Git estándar es diferente de un repositorio Git remoto. Un repositorio Git estándar contiene el código fuente y el repositorio Git. Puede trabajar directamente en este directorio como repositorio contiene una copia de trabajo de todos los archivos.
Repositorios remotos no contienen copias de trabajo de los archivos. Sólo contienen los archivos del repositorio. Para crear un repositorio, establezca el parámetro - desnuda.
Con el fin de simplificar los ejemplos siguientes, el repositorio Git se crea localmente en el sistema de ficheros.
# Cambiar al primer repositorio
cd ~ / repo01
#
git clone - desnuda. .. / Remoto repository.git
# Verifique el contenido, que es idéntica a la del directorio de git. En repo01
ls ~ / remoto repository.git-
5,2. Presione cambios a otro repositorio
Hacer algunos cambios y llevarlos a su primer depósito en el repositorio remoto a través de los siguientes comandos.
# Hacer algunos cambios en el repositorio primero
cd ~ / repo01
# Hacer algunos cambios en el archivo
echo "Hola, hola. Encienda el radio"> TEST01
echo "Bye, bye. apagar el radio"> test02
# Confirme los cambios,-uno se compromete cambios en los archivos modificados
# Pero no agregará automáticamente los archivos nuevos
git commit-a-m "algunos cambios"
# Pulse los cambios
git push .. / remoto repository.git
5,3. Añadir a distancia
Siempre se puede empujar a un repositorio Git a través de su dirección URL completa. Pero también se puede añadir un "nombre corto" a un repositorio a través del comando git add a distancia. origen es un nombre especial que se usa normalmente de forma automática, si se clona un repositorio Git. Origen indica el repositorio original desde el que empezar. Cuando empezamos desde cero, este nombre está aún disponible.
# Agregar .. / remoto repository.git con el origen el nombre de
git add origen remoto .. / remoto repository.git
# Una vez más algunos cambios
echo "He añadido un mando a distancia repo"> test02
# Encomienda
git commit-a-m "Esta es una prueba para el origen remoto de nuevo"
# Si no etiquetar un repositorio va a empujar a su origen
git push origin
5,4. Mostrar los repositorios remotos existentes
Para ver las definiciones existentes de los repositorios remotos, utilice el siguiente comando.
# Mostrar los existentes definidos repositorios remotos
Git remoto
5,5. Clonar su repositorio
Crear un nuevo repositorio en un nuevo directorio a través de los siguientes comandos.
# Cambiar de casa
cd ~
# Hacer nuevo directorio
mkdir repo02
# Cambiar al nuevo directorio
cd ~ / repo02
# Clonar
git clone .. / remoto repository.git.
5,6. Tire de los cambios
De extracción permite obtener los últimos cambios del otro repositorio. En su segundo depósito, hacer algunos cambios, empuje a tu repositorio remoto y tire de estos cambios en tu primer depósito.
# Cambiar de casa
cd ~
# Cambiar al directorio de segundo
cd ~ / repo02
# Realice los cambios
echo "Un cambio"> TEST01
# Encomienda
git commit-a-m "un cambio"
# Pulse cambios en el repositorio remoto
# Origen se mantiene automáticamente a medida que clonado a partir de este repositorio
git push origin
# Cambiar al primer repositorio y tirar en los cambios
cd ~ / repo01
git pull .. / remoto repository.git /
# Compruebe los cambios
menos TEST01
Deshacer los cambios
Si crea archivos en su copia de trabajo que no quieren comprometerse, usted puede deshacerse de ellos.
# Crear un nuevo archivo con el contenido
contacto test04
echo "Esto es basura"> test04
# Hacer un dry-run para ver lo que sucedería
#-N es el mismo que - funcionamiento en seco
git limpia-n
# Ahora borre
git limpia-f
Usted puede comprobar fuera de revisiones anteriores de su código fuente a través del ID de confirmación. El ID de confirmación se muestran si se introduce el comando git log. Se muestra detrás de la palabra de confirmación.
# Cambiar de casa
cd ~ / repo01
# Obtener el registro de
git log
# Copiar uno de los mayores se compromete, y obtenga la revisión a través de mayores
git checkout commit_name
Si usted no ha añadido los cambios en el índice de puesta en escena, también se pueden revertir los cambios directamente.
# Algunos cambios sin sentido
echo "cambio de sentido"> TEST01
# No se agrega al índice provisional. Por tanto podemos
# Sólo pago y envío de la versión antigua
git checkout TEST01
# Verifique el resultado
cat TEST01
# Otro de los cambios sin sentido
echo "otro cambio de sentido"> TEST01
# Añadimos el archivo con el índice de puesta en escena
git add TEST01
# Restaurar el archivo en el índice de puesta en escena
git reset CABEZA TEST01
# Obtener la versión anterior del índice de puesta en escena
git checkout TEST01
También puede revertir compromete a través del siguiente comando:
# Revertir un compromiso
git revert commit_name
Si ha eliminado un archivo, pero que aún no lo han agregado al índice o comprometido el cambio, usted puede consultar el archivo de nuevo.
# Eliminar un archivo
TEST01 rm
# Revertir la eliminación
git checkout TEST01
Si ha agregado un archivo en el índice, pero no quiero cometer el archivo, puede eliminarlo del índice a través del comando git archivo de restablecimiento.
/ / Crear un archivo
contacto incorrect.txt
/ / Accidentalmente se añade al índice
git add.
/ / Eliminar de que el índice de
git reset incorrect.txt
/ / Eliminar el archivo
incorrect.txt rm
Si ha eliminado un directorio y que aún no ha confirmado los cambios, puede restaurar el directorio a través del siguiente comando:
git checkout CABEZA - your_dir_to_restore
Etiquetado en Git
Git tiene la opción de etiquetar ciertas versiones de la historia para que encontrarlos más fácilmente en un punto posterior en el tiempo. Más comúnmente, se utiliza para marcar una determinada versión que ha sido puesto en libertad.
Puede crear una lista de las etiquetas disponibles a través del siguiente comando:
git etiqueta
Puede crear una nueva etiqueta a través de la siguiente. A través de la M-parámetro, se especifica la descripción de esta etiqueta.
git tag 'versión 1.6' version1.6-m
Si desea utilizar el código asociado a la etiqueta, utilice:
git checkout <nombre_etiqueta>
Sucursales y Fusión
¿Cuáles son las ramas?
Git te permite crear ramas, por ejemplo, copias independientes del código fuente que se puede cambiar de forma independiente uno de otro. La rama por defecto se llama maestro.
Git te permite crear ramas muy rápida y barata en términos de consumo de recursos. Los desarrolladores están invitados a utilizar ramas con frecuencia.
8,2. Trabajar con las ramas
El comando siguiente se enumeran todas las ramas disponibles a nivel local. La rama activa está marcada con *.
git branch
Si quieres ver todas las ramas (incluidas las sucursales remotas), use el siguiente comando.
git branch-uno
Puede crear una nueva rama a través de la siguiente.
# Sintaxis: git branch <name> <hash>
# <hash> En lo anterior es opcional
# Si no se especifica la última confirmación se utilizará
# Si se especifica el compromiso correspondiente se utilizará
git rama de las pruebas
# Cambie a su nueva sucursal
git checkout pruebas
# Algunos cambios
echo "nueva característica interesante en esta rama"> TEST01
git commit-a-m "nueva función"
# Cambiar a la rama principal
git checkout master
# Verifique que el contenido de TEST01 es la antigua
cat TEST01
8,3. La fusión de
Merge le permite combinar los cambios de dos ramas. Merge realiza una llamada de tres vías-fusión entre la última instantánea de dos ramas, con base en el ancestro común más reciente de ambos.
Como resultado de ello, usted tiene una nueva instantánea. Usted puede combinar los cambios de una rama a la que activa actual a través del siguiente comando.
# Sintaxis: git merge <branch-name>
git merge pruebas
Si se produce un conflicto de combinación Git va a marcar el conflicto en el archivo y el programador tiene que resolver el conflicto de forma manual. Después de resolverlo, puede agregar el archivo con el índice de puesta en escena y confirmar el cambio.
8,4. Eliminar una rama
Para eliminar una rama que ya no es necesario, puede utilizar el siguiente comando.
# Eliminar las pruebas rama
git branch-d pruebas
# Compruebe si la rama ha sido eliminado
git branch
8,5. Presione una rama en el repositorio remoto
Por Git por defecto sólo empujará a juego ramas a un repositorio remoto. Eso significa que usted tiene que empujar manualmente una nueva rama de una vez. Después "git push" también impulsará la nueva sucursal.
# Pulse prueba rama en el repositorio remoto
git push pruebas de origen
# Cambiar a la rama de pruebas
git checkout pruebas
# Algunos cambios
echo "Noticias para usted"> TEST01
git commit-a-m "nueva característica en la rama"
# Presione todas las ramas incluidas
git push
De esta manera usted puede decidir qué ramas deben ser visibles a otros repositorios y que deben ser las secciones locales.
Resolver conflictos de combinación
A los conflictos de fusión se produce, si dos personas han modificado el mismo contenido y Git no puede determinar automáticamente qué tanto los cambios deben aplicarse.
Git requiere que los conflictos de combinación se resuelven de forma manual. En esta sección, lo primero que va a crear un conflicto de combinación y luego resolverlo y aplicar el cambio en el repositorio Git.
A continuación se va a crear un conflicto de combinación.
# Cambiar al primer directorio
cd ~ / repo01
# Realice los cambios
contacto mergeconflict.txt
echo "Cambio en el primer repositorio"> mergeconflict.txt
# Etapa y se comprometen
git add. && Git commit-a-m "Se creará un conflicto de combinación"
# Cambiar al directorio de segundo
cd ~ / repo02
# Realice los cambios
contacto mergeconflict.txt
echo "El cambio en el segundo repositorio"> mergeconflict.txt
# Etapa y se comprometen
git add. && Git commit-a-m "Se creará conflicto de combinación 2"
# Pulse en el repositorio maestro
git push
# Ahora tratan de empujar desde el primer directorio
# Cambiar al primer directorio
cd ~ / repo01
# Tratar de empujar -> usted conseguirá un mensaje de error
git push
# Obtener los cambios
git pull origin master
Git marca el conflicto en el archivo afectado. Este archivo tiene el siguiente aspecto.
<<<<<<< CABEZA
Cambio en el primer repositorio
=======
Cambio en el segundo repositorio
>>>>>>> B29196692f5ebfd10d8a9ca1911c8b08127c85f8
Lo anterior es parte de su repositorio y por debajo de uno desde el repositorio remoto. Ahora puede editar el archivo manualmente y luego confirme los cambios. Como alternativa, puede utilizar el comando git mergetool. git mergetool comienza una herramienta de combinación configurable que muestra los cambios en una pantalla dividida.
# O editar el archivo manualmente o utilizar
git mergetool
# Se le pedirá que seleccione el cual se unen la herramienta que desea utilizar
# Por ejemplo en Ubuntu se puede utilizar la herramienta de "fusionar"
# Después de combinar los cambios de forma manual, los cometen
git commit-m "los cambios fusionados"
Rebase
Cambio de base se compromete en la misma rama
El comando rebase le permite combinar varias entregas en un solo cometido. Esto es útil ya que permite al usuario volver a escribir parte de la historia de compromiso (limpiarlo) antes de empujar los cambios a un repositorio remoto.
El siguiente creará varios compromete que deben combinarse en un momento posterior en el tiempo.
# Crear un nuevo archivo
tocar rebase.txt
# Añadir a git
git add. && Git commit-m ", agregó rebase.txt al índice"
# Hacer algunos cambios tontos y nos comprometemos
echo "contenido" >> rebase.txt
git add. && Git commit-m "el contenido agregado"
echo "más contenido" >> rebase.txt
git add. && Git commit-m ", añade más contenido"
echo "más contenido" >> rebase.txt
git add. && Git commit-m ", añade más contenido"
echo "más contenido" >> rebase.txt
git add. && Git commit-m ", añade más contenido"
echo "más contenido" >> rebase.txt
git add. && Git commit-m ", añade más contenido"
echo "más contenido" >> rebase.txt
git add. && Git commit-m ", añade más contenido"
# Verifique el mensaje de registro git
git log
Vamos a combinar los últimos siete años comete. Usted puede hacer esto de forma interactiva a través del siguiente comando.
git rebase-i HEAD ~ 7
Esto abrirá el editor de su elección y le permiten editar el mensaje de confirmación o el squash / corrección de la confirmación con el último.
Squash combinará los mensajes de confirmación, mientras que la compostura no tendrá en cuenta el mensaje de confirmación.
Ramas rebasado
También puede usar Git para reajustar dos ramas. Como se ha descrito, el comando de combinación combina los cambios de dos ramas. Rebase toma los cambios de una rama, crea un parche y lo aplica a otra rama.
El resultado final para el código fuente es la misma que con la fusión, pero la historia de confirmación es más limpia, la historia parece ser lineal.
# Crear nueva sucursal
git rama de las pruebas
# Comprobación de la rama
git checkout pruebas
# Hacer algunos cambios
echo "Esto va a ser rebasada para dominar"> TEST01
# Comprometerse en la rama de pruebas
git commit-a-m "Nueva función en la rama"
# Reajustar el maestro
git rebase master
Las mejores prácticas para rebase
Usted siempre debe verificar su historial de sucursal local antes de empujar cambios a otro repositorio Git o sistema de revisión.
Git te permite hacer commits locales. Esta función se utiliza con frecuencia para tener puntos a los que se puede ir hacia atrás, si algo debe ir mal después, durante una función de desarrollo. Caso de que lo haga usted, antes de empujar, debería mirar en su historial de sucursal local y validación, sean o no comete son relevantes para otros.
Si todos ellos pertenecen a la aplicación de la misma característica que, muy probablemente, quieren resumir en una única confirmación antes de empujar.
El rebase interactivo es, básicamente, la reescritura de la historia. Es seguro hacer esto siempre y cuando el se compromete a no haber sido empujado al otro repositorio. Esto significa comete sólo debe ser reescrito como siempre que no han sido empujados.
Si vuelves a escribir y empuje de una confirmación de que ya está presente en otros repositorios Git, que se verá como si en práctica algo que alguien ya se aplican en el pasado.
Crear y aplicar parches
Un parche es un archivo de texto que contiene los cambios en el código fuente. Este archivo puede ser enviado a otra persona y esta persona puede utilizar este archivo para aplicar los cambios a su / repositorio local.
El siguiente, se crea una rama, hace algunos cambios en esta rama, se crea un parche y se aplica el parche para el maestro.
# Crear una nueva rama
git MiRama rama
# Use esta nueva rama
git checkout MiRama
# Hacer algunos cambios
contacto test05
# Cambiar algún contenido en un archivo existente
echo "Nuevo contenido para TEST01"> TEST01
# Encomienda al Poder
git add.
git commit-a-m "En primer lugar se comprometen en la rama"
# Crear un parche -> git formato de parche de maestro
git formato de parche de origin / master
# Este parche creado 0001-primer-compro-en-el-branch.patch
# Cambiar al maestro
git checkout master
# Aplicar el parche
git aplican 0001-primer-compro-en-el-branch.patch
# Haga su confirmación normal en el maestro
git add.
git commit-a-m "parche que se aplica"
# Eliminar el parche
RM 0001-primer-compro-en-el-branch.patch
Definir alias
Un alias de Git te permite configurar tu mando Git propia. Por ejemplo, puede definir un alias que es una forma corta de sus comandos favoritos propios o puede combinar varios comandos con un alias.
Por ejemplo, la siguiente se define el complemento git commit comando que combina git add. -A y git commit-m. Después de definir este comando, se puede utilizar a través de la git add-commit-m "mensaje" de comandos.
git config - global de alias.add-commit 'git add. -A && git commit '
Desafortunadamente, la definición de un alias es en el momento de escribir este no es completamente compatible con msysGit. Usted puede hacer alias individuales, POR EJEMPLO, ca de ca = compromiso de a), pero no se puede hacer a partir de las!.
Untrack un archivo / directorio
A veces usted quiere tener archivos o directorios que no están incluidos en su repositorio Git. Si se añade a su archivo. Gitignore, Git va a dejar de seguir desde este momento. No se eliminará desde el repositorio. Por lo tanto, la última versión seguirá siendo en git. Para untrack un archivo o directorio en Git puede utilizar.
# Eliminar directorio. Metadatos de repositorios git
git rm-r -. caché de metadatos
# Eliminar archivo test.txt de repo
git rm - test.txt en caché
Esto no va a eliminar el archivo de la historia de confirmación. Si el archivo también debe ser removido de la historia, echar un vistazo a git filter-branch, que le permite reescribir la historia de confirmación.
Otros comandos útiles
A continuación se enumeran algunos comandos de Git que son útiles en el trabajo diario con Git.
Comandos útiles Git
Comando Descripción
git blame nombre ¿Quién ha creado / modificado el archivo
git checkout-b amo MiRama ~ 1 Crea una nueva sucursal sobre la base de la rama principal sin la última confirmación
Instalación de un servidor de Git
Como se ha descrito anteriormente, usted no necesita un servidor. Usted sólo puede utilizar un sistema de archivos o un proveedor de Git público, como Github o Bitbucket. A veces, sin embargo, es conveniente tener su propio servidor, y su instalación en Ubuntu es relativamente fácil.
En primer lugar asegúrese de haber instalado ssh.
apt-get install ssh
Si usted aún no ha instalado Git en su servidor, que tiene que hacer esto también.
sudo apt-get install git-core
Crear un nuevo usuario para git.
git sudo adduser
Ahora iniciar sesión con su usuario de Git, y crear un repositorio desnudo.
# Inicio de sesión con el servidor
# Para probar localhost uso
ssh git @ IP_ADDRESS_OF_SERVER
# Crear repositorio
git init - example.git desnuda
Ahora usted puede comprometerse con el repositorio remoto.
mkdir gitexample
cd gitexample
git init
touch README
git add README
git-commit primer "commit-m
git git remote add @ IP_ADDRESS_OF_SERVER origen: example.git
git push origin master
Repositorios remotos en linea
Clonación de repositorios remotos
Git también apoyo a las operaciones remotas. Git soporta varios tipos de transporte, el protocolo nativo de Git también se conoce como git.
El siguiente clonar un repositorio existente a través del protocolo Git.
git clone git@github.com: vogella / gitbook.git
Si lo prefiere puede clonar el mismo repositorio a través del protocolo http.
# La siguiente clonar a través de HTTP
git clone http://vogella @ github.com / vogella / gitbook.git
Añadir repositorios remotos
Si se clona un repositorio remoto, el depósito original de forma automática se llama origen.
Usted puede empujar cambios en el repositorio de origen a través de origen git push. Por supuesto, empujando a un repositorio remoto requiere acceso de escritura a este repositorio.
Usted puede añadir los repositorios más remotas de su repositorio Git remoto a través del nombre de comando Agregar gitrepo. Por ejemplo, si clonado del repositorio desde arriba a través del protocolo Git, habría que agregar el protocolo http a través de:
/ / Añadir el protocolo https
Git remoto complemento githttp https://vogella @ github.com / vogella / gitbook.git
Operaciones remoto vía HTTP y un proxy
Es posible utilizar el protocolo HTTP para clonar repositorios Git. Esto es especialmente útil, si el firewall bloquea todo excepto HTTP.
Git también proporciona soporte para el acceso HTTP a través de un servidor proxy. El comando git siguiente podría, por ejemplo, clonar un repositorio a través de http y un proxy. Puede establecer la variable proxy en general para todas las aplicaciones o configurarlo sólo para Git.
Este ejemplo utiliza las variables de entorno.
# Linux
export http_proxy = http://proxy:8080
# En Windows
# Establezca http_proxy = http://proxy:8080
git clone http://dev.eclipse.org/git/org.eclipse.jface/org.eclipse.jface.snippets.git
# Presione de nuevo al origen utilizando http
git push origin
En este ejemplo se utiliza la configuración de configuración de Git.
/ / Conjunto de proxy para git a nivel mundial
git config - global http://proxy:8080 http.proxy
/ / Para comprobar la configuración de proxy
git config - get http.proxy
/ / Sólo en caso de que necesite también puede revocar las configuraciones de proxy
git config - global - unset http.proxy
17. Git proveedor de hosting
En lugar de configurar su propio servidor, también puede utilizar un servicio de alojamiento. El Git más popular son los sitios de alojamiento y GitHub Bitbucket. Tanto la oferta de alojamiento gratuito con ciertas limitaciones.
Claves SSH
La mayoría de proveedor de hosting permiten utilizar el protocolo HTTP con autenticación manual del usuario o para utilizar una clave SSH para la autentificación automática.
Una de las claves ssh tiene una parte pública y privada. La parte pública se carga en el proveedor de hosting. Si usted interactúa con el proveedor de hosting a través de ssh, la clave pública será validada sobre la base de la clave privada que es mantener a nivel local.
La clave SSH normalmente se genera en el directorio. Ssh. Asegúrese de que copia de seguridad de las claves existentes en este directorio antes de ejecutar los siguientes comandos.
Para crear una clave ssh bajo Ubuntu interruptor de la línea de comandos y ejecute los siguientes comandos.
# Cambie a su. Ssh
cd ~ /. ssh
# Si el directorio
# No existe, cree que a través de:
# Mkdir. Ssh
# Manual de copia de seguridad de todo el contenido existente de este directorio!
# Después de generar la clave ssh
ssh-keygen-t rsa-C "your_email@youremail.com"
# Presione enter para seleccionar el directorio por defecto
# Se le pedirá una contraseña opcional
# Una frase de contraseña protege su clave privada
# Pero tu tienes que introducir de forma manual durante las operaciones de ssh
El resultado será dos archivos, id_rsa que es su clave privada y id_rsa.pub que es su clave pública.
Usted encontrará más información para la generación de una clave RSA en la creación de la llave ssh en la página web de Ubuntu. Para Windows consulte msysgit generación de claves SSH.
GitHub
GitHub se puede encontrar bajo la dirección https://github.com/. GitHub es gratuito para todos los repositorios públicos, es decir, si usted quiere tener los repositorios privados que sólo son visibles para las personas que usted seleccione, usted tiene que pagar una cuota mensual GitHub.
Crea una cuenta en GitHub y crear un repositorio. Después de crear un repositorio en GitHub obtendrá una descripción de todos los comandos que necesita para ejecutar su proyecto de subir a GitHub. Siga las instrucciones.
Estas instrucciones serán similares a lo siguiente:
Configuración global:
Configurar git
git config - user.name mundial "Tu Nombre"
git config - global your.email user.email @ gmail.com
Próximos pasos:
mkdir gitbook
cd gitbook
git init
touch README
git add README
git-commit primer "commit-m
git git@github.com remoto origen de añadir: vogella / gitbook.git
git push origin master-u
Existentes repositorio git?
cd existing_git_repo
git git@github.com remoto origen de añadir: vogella / gitbook.git
git push origin master-u
Bitbucket
Bitbucket se puede encontrar en la URL https://bitbucket.org/~~V. Bitbucket permite un número ilimitado de archivos públicos y privados, mientras que el número de participantes en un depósito privado se limita actualmente a 5 colaboradores. Es decir si usted tiene más de 5 desarrolladores que necesitan acceso a un depósito privado que tiene que pagar dinero para Bitbucket.
Interfaz gráfica de usuario para Git
En este tutorial se centra en el uso de la línea de comandos de Git. Después de terminar este tutorial, usted puede desear mirar en herramientas gráficas para trabajar con Git.
Git provee las herramientas gráficas de dos. gitk muestra la historia y git gui muestra un editor que le permite realizar operaciones de Git.
El proyecto Eclipse Git EGIT proporciona integración con Eclipse, que se incluye en la última versión de Eclipse.
No hay comentarios:
Publicar un comentario