Así es como comparte su trabajo en un repositorio remoto de git



Comparta su trabajo local con el equipo en un repositorio remoto, también aprenda a administrarlo mientras realiza un seguimiento de los cambios y permanezca sincronizado.

¡Tu trabajo agrega más valor cuando se publica y se comparte con el mundo (o tu equipo)!

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.
Arquitectura de 4 niveles
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-upstreamo-u'Bandera junto con el comando' git push '
Mando:git push -u maestro de origen

ramas codificadas por colores


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



rama codificada por colores


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.