Així compartiu el vostre treball en un dipòsit remot git



Compartiu el vostre treball local amb l'equip en un dipòsit remot, també apreneu a gestionar-lo mentre feu un seguiment dels canvis i manteniu-vos sincronitzat.

El vostre treball aporta més valor quan es publica i es comparteix amb el món (o el vostre equip) !!!

Començant

Vaja , com ja sabeu, és l'eina de versions més popular que s'utilitza avui en dia botiga , pista i versió qualsevol tipus de dades .
Algunes de les característiques clau de git són les seves velocitat , distribuït naturalesa, seguretat , indolor ramificació i fusió juntament amb col·laboratiu treballar entre diversos col·laboradors.

Començant la nostra discussió a partir d’aquí, centrem-nos en com us ajuda git col·laborar i compartiu el vostre treball amb els companys perquè tothom pugui treballar al mateix codi simultàniament sense corrompre les dades de l’altre.
Aquí és on el concepte de repositoris remots entra a la imatge.
Suposo que heu dominat l'art de des del vostre directori de treball (sistema de fitxers) al fitxer Zona d’escenificació i finalment comprometre-ho amb el vostre dipòsit local (base de dades).

Això ens inspira a impulsar les nostres dades al següent nivell 'Dipòsit remot' per publicar-les en un dipòsit remot.

Les meves dades ja no estan emmagatzemades en una base de dades git?

Sí, ho és! Tanmateix, tal com s'indica al diagrama següent, les vostres dades encara es troben a base de dades local després de vostè compromís i encara no es comparteix amb els vostres companys.
Arquitectura de 4 nivells
Aquest article omple la bretxa entre recollir les nostres dades del vostre dipòsit local i portant-lo a la següent capa anomenada dipòsit remot .





Què és un dipòsit remot

Una base de dades d’informació recopilada emmagatzemada en una ubicació que es pot trobar compartit amb els seus companys d’equip donant-los accés .
Està idealment allotjat a núvol o en un servidor (local o remot) a Internet o a la vostra xarxa local.
Un dipòsit remot és igual que el vostre dipòsit local de git, excepte que generalment es declara com un dipòsit senzill, per tal de no tenir una còpia de treball com la vostra local.
Això es fa per restringir els canvis directes fets al dipòsit remot.

Dipòsit pelat el concepte és un avantatge afegit per a un dipòsit remot per mantenir-lo protegit i s’utilitzarà amb l’únic propòsit de compartir el codi entre els membres de l’equip.
Això s’aconsegueix declarant el dipòsit remot com a nu mitjançant l’ús del ‘--just'Marca al moment d'inicialitzar-lo com a repositori de git.
En fer-ho, la vostra reposició es crea amb metadades git o, en altres paraules, amb objectes git emmagatzemats només al directori ocult '.git' i no hi ha cap còpia de treball disponible per afegir dades directament a ningú.
Comandament:git init --bare.

Amb això en ment, en avançar veurem més maneres de gestionar una reposició remota i com sincronitzem el nostre treball local amb el control remot.



Creeu un dipòsit remot

En primer lloc, heu de decidir la ubicació on voleu col·locar el dipòsit remot.
Hi ha bastants repositoris populars d’allotjament git basats en el núvol, com ara: GitLab , BitBucket , GitHub , Perforça i CloudForge per anomenar-ne uns quants.
En aquest post, estic considerant GitHub, ja que aquest és el lloc on vaig començar a conservar els meus dipòsits de git. Per començar, tot el que heu de fer és iniciar la sessió en un compte de GitHub i després creeu un nou dipòsit , es crea un URL que apunta a aquesta reposició remota.


Git admet protocols ssh, git, http i https per dirigir un URL del dipòsit.

Com a alternativa, també podeu col·locar el vostre projecte en un altre lloc, per exemple, a Servidor Linux seguint les ordres següents:
cd $ INICI
mkdir remote_repo
cd remote_repo
git init --bare.

Connecteu el comandament a la vostra màquina local

Connectar un comandament a la vostra còpia de treball significa simplement crear un fitxer controlador de referència del punter per al comandament a distància o simplement anomenat ' controlador remot '.
Saltem al meu projecte que vull publicar-cd learnRemots
Sintaxi:git remot afegir
Comandament:git remote add origen https://github.com/divyabhushan/learnRemotes.git

“Origen és el per defecte nom de referència per al controlador remot '. (el nom remot ha de ser un nom rellevant)
A veure si funcionava, amb l'ordre:git remote

Ho va fer :)

Imprimiu també l'URL remota juntament amb el nom:
git remote -v

Ben fet! Ja esteu preparat per establir una connexió amb el vostre dipòsit remot des del directori de treball local.

Temps de publicació

Sintaxi:git push --all --tags[-u | --set-upstream]
Comandament:git push origen mestre

Per tant, llegiu això com 'Empènyer les diferències dels compromisos a origen des del mestre local' .

Si comproveu el vostre compte de GitHub, s’hi han de mostrar els compromisos (dades) locals.



Seguiment d'oficines

Per tant, heu publicat el vostre treball amb èxit al dipòsit remot.
Tot i això, és important que configureu la vostra oficina local a pista els canvis a la branca remota automàticament.
Utilitzar el '--set-upstreamo bé-u'Marca juntament amb l'ordre' git push '
Comandament:git push -u origen mestre

branques codificades per colors


Creem, a més, un nou commit a la branca 'mestra' i comprovem com el detecta git-
Comandament:estat git


Mostra les branques de seguiment en mode detallat
Comandament:git branch -vv


Per tant, cada vegada hi ha una diferència en les confirmacions entre el vostre dipòsit local i remot a la branca seguida, Git us ho farà saber.
No és genial !!!

Com es connectarien els altres al vostre comandament a distància?

És un tros de pastís quan tu clonar un dipòsit remot !!!

Per tant, la clonació des d’un dipòsit remot fa dues coses primer, el vostre referència remota s'afegeix automàticament i el segon per defecte branca està definit a pista branca remota automàticament.

Pas 1: Cloneu el dipòsit remot com a usuari diferent
Comandament:git clone https://github.com/divyabhushan/learnRemotes.git developer2
desenvolupador de cd2

Pas 2: Mostra el comandament a distància i la seva URL
Comandament:git remote -v


Pas 3: Enumereu les branques de seguiment
Comandament:git branch -vv


La diversió comença quan ‘developer2’ iniciarà el seu propi treball i s’enfonsarà cap al comandament a distància.

Podeu connectar-vos i col·laborar-hi més d'un comandament a distància repositori des d'un fitxer projecte únic .

Veure les branques remotes

Comandament:git branch -r


Utilitzeu l'opció '-a' per imprimir sucursals locals i remotes, proveu-la al repositori local després de crear poques sucursals locals.

Com contribueixen els altres al vostre comandament a distància?

Configuració inicial
Developer2 decideix canviar un parell de coses, com ara:
a. Crear una nova 'característica' de l'últim commit a la branca 'mestre' i fer un nova comissió a la branca 'característica'
Ordres:
git checkout -b característica
eco 'millores de funcions'> feature.txt
git add. && git commit -m 'millores de les funcions'

b. Crear una branca 'feature2' diferent d'una confirmació anterior a la branca 'mestra'
Ordres:
git checkout -b feature2 95651fb
echo 'feature2 added'> feature2.txt
git add. && git commit -m 'Addició de canvis de funció2'

Visualitzem les sucursals de la màquina Developer2 juntament amb la informació de seguiment:

Com haureu notat, les noves branques no estan configurades per fer un seguiment de les branques remotes.

S'estan fent canvis a distància
En primer lloc, deixeu-me empènyer la branca 'característica' a distància amb el senyal '–set-upstream o -u'
Comandament:característica d'origen git push -u




Es crearà una nova branca al control remot, si encara no existeix !!!

En aquest moment, llistar les branques remotes amb l'ordre: 'git branch -r'




Una altra manera de fer un seguiment de la sucursal remota
A més, configurem la branca 'feature2' perquè apunti a la mateixa branca 'feature' del comandament a distància
Comandament:git branch --set-upstream-to = origen / característica característica2



branca codificada per colors


Un consell ràpid: podeu ometre el nom de la sucursal local si ja esteu en aquesta sucursal, és a dir, la sucursal local ja està retirada.

Torneu a llistar les branques en mode detallat, ordeneu:git branch -vv



Tingueu en compte que les dues branques locals 'característica' i 'característica2' apunten a la mateixa 'funció' de la branca remota.

Mantingueu-vos sincronitzat amb el comandament a distància: busqueu, estireu i empenyeu

Considerem la part on branca remota que esteu fent un seguiment ja s'ha actualitzat, què passa?
Un simpleestat git'O un'git checkout'O fins i tot el'git branch -vv'L'ordre ens adverteix amb un desajust com



'Developer2' primer ha d'actualitzar les referències i els objectes locals (' git fetch ') I després combinar els canvis remots i locals (' git merge ').
Curiosament, podeu substituir aquestes dues ordres per una sola ordre 'git pull'.
Sintaxi:vaja estirar

–Per a una branca sense rastrejar
Sintaxi: git pull [:]
Comandament:característica git pull origin: feature2

–Per branca rastrejada
Sintaxi: git pull
Comandament:git pull




=> A la pràctica, pot haver-hi conflictes que sorgeixin en aquesta etapa quan es retiri del control remot per simplicitat. He generat un canvi de compromís sense conflicte.

Després d’extreure ‘developer2’ (obtenir i combinar), els darrers canvis remots han de publicar ara el seu propi treball.
Comandament:git push origen HEAD: característica
Nota: la 'característica' de la sucursal anterior no coincideix amb el nom de la 'sucursal2' de la sucursal local, heu de proporcionar-la explícitament



Recordatori : 'HEAD' és l'última confirmació de la branca local 'feature2'.

Quan s’ha d’utilitzar ‘git fetch’?
En moments en què tingueu la necessitat d'actualitzar el fitxer caps de referència sense descarregar (treure) realment del comandament a distància.
O quan les branques remotes s’han modificat / esborrat en actualitzar-les, haureu d’executar l’ordre fetch amb el botó ‘--podar‘Opció.
Com a pràctica recomanada, heu d'executar l'ordre 'git fetch' cada vegada que comenceu a treballar al repositori local.

Gestió remota

Finalment, voldríeu dur a terme algunes tasques de neteja com ara canviar el nom o eliminar comandaments a distància i branques.
Aquests són tan importants com les ordres anteriors.

Canvieu el nom del comandament a distància

Sintaxi:git canvia el nom remot
Comandament:git canvia el nom remot a snv_repo svn
Per exemple, penseu en un gerent de projecte associat a 3 projectes-


descripció de la feina del desenvolupador de big data

Suprimeix la referència remota

Suposem que ja no se sincronitza amb un dipòsit remot; és probable que suprimiu la referència del punter.
Tot i això, això no afectarà el dipòsit remot ni el treball de l’altre.

Sintaxi:eliminació remota de git
Comandament:git remote remove proj1


Què passa si teniu configurada una sucursal local per fer un seguiment d’una sucursal des del dipòsit ‘proj1’ eliminat?
Bé, el vostre sucursal local (i d’aquí el treball) ho és Caixa forta i encara present, només és referència de seguiment remot i configuració la configuració serà eliminat automàticament

Suprimeix la branca remota

Digues-ho accidentalment va empènyer el vostre personal treball dur en un branca cap al control remot però no vull que els altres ho comprovin encara -
Traieu la branca 'unfinishedWork' del remot 'svn'
Comandament:git branch -vv#Lista les branques de seguiment remot



Sintaxi:git push --delete
Comandament:git push --delete svn unfinishedWork


Liquidació

Amb això, arribem al final d’aquest article. Si trobeu això ' tutorial 'Rellevant, fes un cop d'ull al per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació en certificació Edureka DevOps ajuda els estudiants a adquirir experiència en diversos processos i eines DevOps com Puppet, Jenkins, Nagios i GIT per automatitzar diversos passos en SDLC.