Empezando
Vamos , como sabe, es la herramienta de control de versiones más popular que se utiliza actualmente para Tienda , pista y versión cualquier clase de datos .
Algunas de las características clave de git son su velocidad , repartido naturaleza, seguridad , indoloro ramificación y fusión junto con colaborativo trabajar entre múltiples contribuyentes.
Comenzando nuestra discusión desde aquí, centrémonos en cómo git te ayuda a colaborar y comparta su trabajo con los compañeros para que todos puedan trabajar en el mismo código simultáneamente sin dañar los datos de los demás.
Aquí es donde el concepto de repositorios remotos entrar en escena.
Asumo que has dominado el arte de de tu directorio de trabajo (sistema de archivos) al Área de ensayo y finalmente comprometiéndolo con tu repositorio local (base de datos).
Esto nos inspira a llevar nuestros datos al siguiente nivel de “repositorio remoto” para publicarlos en un repositorio remoto.
Java split string múltiples delimitadores
¿No están ya mis datos almacenados en una base de datos de git?
¡Sí lo es! Sin embargo, como se indica en el diagrama a continuación, sus datos todavía están en el base de datos local Después de usted cometer y aún no lo ha compartido con sus colegas.
Este artículo llena el vacío entre la recopilación de nuestros datos de su repositorio local y llevarlo a la siguiente capa llamada repositorio remoto .
Que es un repositorio remoto
Una base de datos de información recopilada almacenada en una ubicación que puede compartido con tus compañeros dándoles acceso .
Está alojado idealmente en un nube o en un servidor (local o remota) en Internet o en su red local.
Un repositorio remoto es como su repositorio local de git, excepto que generalmente se declara como un repositorio simple para no tener una copia de trabajo como la local.
Esto se hace para restringir los cambios directos realizados en el repositorio remoto.
Repositorio desnudo El concepto es una ventaja adicional para un repositorio remoto para mantenerlo protegido y se utilizará con el único propósito de compartir el código entre los miembros del equipo.
Esto se logra al declarar el repositorio remoto como desnudo mediante el uso de '--sólo
‘En el momento de inicializarlo como repositorio de git.
Al hacerlo, su repositorio se crea con metadatos git o, en otras palabras, objetos git almacenados solo en el directorio oculto '.git' y no hay una copia de trabajo disponible para que nadie agregue datos directamente.
Mando:git init --bare.
Con esto en mente, en el futuro veremos más formas de administrar un repositorio remoto y cómo sincronizamos nuestro trabajo local con el remoto.
Crea un repositorio remoto
En primer lugar, debe decidir la ubicación en la que desea colocar su repositorio remoto.
Hay bastantes repositorios de alojamiento de git populares basados en la nube, como: GitLab , BitBucket , GitHub , Forzosamente y CloudForge para nombrar unos pocos.
En esta publicación, estoy considerando GitHub ya que este es el lugar donde comencé a guardar mis repositorios de git. Para comenzar, todo lo que tiene que hacer es iniciar sesión en una cuenta de GitHub y luego crear un nuevo repositorio , esto crea una URL que apunta a este repositorio remoto.
Git admite los protocolos ssh, git, http y https para direccionar la URL de un repositorio.
Alternativamente, también puede colocar su proyecto en otro lugar, digamos un Servidor Linux siguiendo los siguientes comandos- cd $ INICIO
mkdir remote_repo
cd remote_repo
git init --bare.
Conecte el control remoto a su máquina local
Adjuntar un control remoto a su copia de trabajo simplemente significa crear un controlador de referencia de puntero para el control remoto o simplemente llamado ' manipulador remoto “.
Pasemos a mi proyecto que quiero publicar.cd learnRemotes
Sintaxis:git remoto agregar
Mando:git remoto agregar origen https://github.com/divyabhushan/learnRemotes.git
'Origen es el defecto nombre de referencia para el controlador remoto '. (el nombre remoto debe ser un nombre relevante)
Veamos si funcionó, usando el comando:git remoto
Lo hizo :)
Imprima también la URL remota junto con el nombre:
git remoto -v
¡Bien hecho! Ya está listo para establecer una conexión a su repositorio remoto desde su directorio de trabajo local.
Hora de publicar
Sintaxis:git push --todos --tags
[-u | --set-upstream]
Mando:maestro de origen de git push
Entonces, lees esto como 'Empujar la diferencia de confirmaciones al origen desde el maestro local' .
Si verifica su cuenta de GitHub, sus confirmaciones locales (datos) deben mostrarse allí.
Seguimiento de ramas
Entonces, ha publicado con éxito su trabajo en el repositorio remoto.
Sin embargo, es importante que configure su sucursal local para pista los cambios en la rama remota automáticamente.
Utilizar el '--set-upstream
o-u
'Bandera junto con el comando' git push '
Mando:git push -u maestro de origen
Vamos a crear una nueva confirmación en la rama 'maestra' y verificar cómo la detecta git.
Mando:estado de git
Mostrar las ramas de seguimiento en modo detallado
Mando:git branch -vv
Por lo tanto, cada vez que haya una diferencia en las confirmaciones entre su repositorio local y remoto en la rama rastreada, Git se lo informará.
¿No es genial?
¿Cómo se conectarían los demás a su control remoto?
Es pan comido cuando clon un repositorio remoto !!!
Entonces, la clonación desde un repositorio remoto hace 2 cosas primero, su referencia remota se agrega automáticamente, y el segundo valor predeterminado rama se establece en pista sucursal remota automáticamente.
Paso 1: Clone su repositorio remoto como un usuario diferente
Mando:clon de git https://github.com/divyabhushan/learnRemotes.git desarrollador2
desarrollador de cd2
Paso 2: Muestra el control remoto y su URL
Mando:git remoto -v
Paso 3: Enumere las ramas de seguimiento
Mando:git branch -vv
La diversión comienza cuando el 'desarrollador2' comienza su propio trabajo y empuja hacia el control remoto.
Puedes conectarte y contribuir a más de un control remoto repositorio de un proyecto único .
Ver las ramas remotas
Mando:git branch -r
Utilice la opción '-a' para imprimir ramas locales y remotas, pruébela en su repositorio local después de crear algunas sucursales locales.
¿Cómo contribuyen otros a tu control remoto?
Configuración inicial
Developer2 decide cambiar un par de cosas como:
a. Crear una nueva 'característica' de la última confirmación en la rama 'maestra' y hacer una nuevo compromiso en la rama 'característica'
Comandos: git checkout -b función
echo 'mejoras de funciones'> feature.txt
git add. && git commit -m 'mejoras de funciones'
b. Crear una rama 'feature2' diferente de una confirmación anterior en la rama 'master'
Comandos: git checkout -b feature2 95651fb
echo 'feature2 added'> feature2.txt
git add. && git commit -m 'Añadiendo cambios a feature2'
Visualicemos las ramas en la máquina de developer2 junto con la información de seguimiento:
Como debe haber notado, las nuevas sucursales no están configuradas para rastrear las sucursales remotas.
Empujando cambios a control remoto
En primer lugar, permítanme pasar la rama 'función' a control remoto con la marca '–set-upstream o -u'
Mando:función de origen git push -u
cómo crear una lista vinculada en c
Se creará una nueva rama en el control remoto, si aún no existe !!!
En este momento, enumere las ramas remotas con el comando: 'git branch -r'
Otra forma de rastrear una sucursal remota
Además, configuremos la rama 'feature2' también para que apunte a la misma rama 'feature' en el control remoto
Mando:git branch --set-upstream-to = origen / característica feature2
Un consejo rápido: puede omitir el nombre de la sucursal local si ya está en esa sucursal, en otras palabras, la sucursal local ya está desprotegida.
Enumere las ramas en modo detallado una vez más, comando:git branch -vv
Observe que las dos sucursales locales 'característica' y 'característica2' apuntan a la misma 'característica' de la sucursal remota.
Mantenerse sincronizado con el control remoto: buscar, tirar y empujar
Consideremos la parte donde el sucursal remota su seguimiento ya se ha actualizado, ¿entonces qué?
Un simple 'estado de git
'O un'git checkout
'O incluso el'git branch -vv
'El comando nos advierte con tal desajuste-
'Developer2' primero debe actualizar las referencias y los objetos locales (' git fetch ‘) Y luego fusionar los cambios locales y remotos (‘ git merge ’).
Curiosamente, puede reemplazar estos dos comandos por un solo comando 'git pull'.
Sintaxis:Vamos
Halar
–Para rama sin seguimiento
Sintaxis: git pull [:]
Mando:característica de origen de git pull: feature2
–Para rama con seguimiento
Sintaxis: git pull
Mando:git pull
=> En la práctica, puede haber conflictos que surjan en esta etapa cuando se extrae del control remoto para simplificar. He generado un cambio de compromiso sin conflicto.
Después de que 'desarrollador2' extraiga (obtenga y fusione) los últimos cambios remotos ahora deben publicar su propio trabajo.
Mando:git push origin HEAD: característica
Nota: la 'función' de la rama ascendente no coincide con el nombre de la 'función2' de la rama local, debe proporcionarlo explícitamente
Recordatorio : 'HEAD' es la última confirmación en la rama local 'feature2'.
¿Cuándo usar 'git fetch'?
En los momentos en los que solo necesita actualizar su cabezas de referencia sin realmente descargar (tirar) del control remoto.
O cuando las ramas remotas hayan sido modificadas / eliminadas en la actualización, tendrá que ejecutar el comando de recuperación con el '--ciruela pasa
' opción.
Como práctica recomendada, debe ejecutar el comando 'git fetch' cada vez que comience a trabajar en su repositorio local.
Gestión remota
Finalmente, querrá realizar algunas tareas de limpieza, como cambiar el nombre o eliminar controles remotos y sucursales.
Estos son tan importantes como los comandos anteriores.
Cambiar el nombre del control remoto
Sintaxis:git remote renombrar
Mando:git remoto cambiar el nombre de snv_repo svn
Por ejemplo, considere un gerente de proyecto asociado con 3 proyectos:
Eliminar referencia remota
Suponga que ya no se sincroniza con un repositorio remoto, es probable que elimine la referencia del puntero al mismo.
Sin embargo, esto no afectará al repositorio remoto ni al trabajo de otros.
Sintaxis:git remoto eliminar
Mando:git remote eliminar proj1
¿Qué pasaría si tuvieras una rama local configurada para rastrear una rama del repositorio 'proj1' eliminado?
Bien tu sucursal local (y de ahí el trabajo) es seguro y todavía presente, solo es referencia de seguimiento remoto y configuración la configuración será eliminado automáticamente
cómo crear archivos de registro en java
Eliminar rama remota
Dices tu accidentalmente empujó su personal trabajo duro en un rama al control remoto pero no quiero que otros lo revisen todavía -
Elimine la rama 'unfinishedWork' del control remoto 'svn'.
Mando:git branch -vv
#Enumere las ramas de seguimiento remoto
Sintaxis:git push --delete
Mando:git push --delete svn unfinishedWork
Liquidación
Con esto llegamos al final de este artículo. Si encontraste esto ' Tutorial 'Relevante, revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de formación de certificación de Edureka DevOps ayuda a los alumnos a adquirir experiencia en varios procesos y herramientas de DevOps como Puppet, Jenkins, Nagios y GIT para automatizar varios pasos en SDLC.