Noțiuni de bază
Merge , după cum știți, este cel mai popular instrument de versiune folosit astăzi magazin , urmări și versiune Orice fel de date .
Unele dintre caracteristicile cheie ale git sunt viteză , distribuit natură, Securitate , nedureros ramificare și fuzionare impreuna cu colaborativ lucrează între mai mulți colaboratori.
Începând discuția noastră de aici, permiteți-ne să ne concentrăm asupra modului în care vă ajută git colabora și împărtășiți munca dvs. cu colegii, astfel încât toată lumea să poată lucra simultan pe același cod fără a corupe datele celuilalt.
Aici se află conceptul de depozite la distanță intră în poză.
Presupun că ați stăpânit arta de la tine director de lucru (sistem de fișiere) la Zona de organizare și, în cele din urmă, să o încredințezi depozit local (Bază de date).
Acest lucru ne inspiră să ne împingem datele la nivelul următor „Remote repo” pentru a le publica într-un depozit la distanță.
Nu sunt datele mele stocate deja într-o bază de date git?
Da, este! Cu toate acestea, așa cum este indicat în diagrama de mai jos, datele dvs. sunt încă în baza de date locală După dumneavoastră comite acesta și încă nu a fost distribuit colegilor dvs.
Acest articol umple decalajul dintre preluarea datelor noastre de la dvs. depozit local și ducându-l la următorul strat numit depozit la distanță .
Ce este un depozit la distanță
O bază de date cu informații colectate stocate într-o locație care poate fi impartit cu colegii tăi de echipă oferindu-le acces .
Este găzduit în mod ideal pe un nor sau pe un Server (local sau la distanță) pe internet sau în rețeaua dvs. locală.
Un depozit la distanță este la fel ca depozitul dvs. local git, cu excepția faptului că este declarat în general ca depozit simplu, astfel încât să nu aveți o copie de lucru ca cea locală.
Acest lucru se face pentru a restricționa modificările directe efectuate pe depozitul la distanță.
Depozitul gol conceptul este un avantaj suplimentar pentru păstrarea unui depozit la distanță protejat și să fie utilizat în scopul său unic de a partaja codul între membrii echipei.
Acest lucru se realizează declarând depozitul de la distanță ca fiind gol, folosind „--doar
„Semnalizați la momentul inițializării acestuia ca depozit git.
Procedând astfel, repo-ul dvs. este creat cu metadate git sau cu alte cuvinte obiecte git stocate în directorul ascuns „.git” singur și nu este disponibilă nicio copie de lucru pentru ca oricine să adauge direct date.
Comanda:git init --bare.
Având în vedere acest lucru, mergând mai departe vom vedea mai multe modalități de a gestiona o repo la distanță și cum ne sincronizăm munca locală cu telecomanda.
Creați un depozit la distanță
În primul rând, trebuie să decideți locația pe care doriți să plasați repo la distanță.
Există destul de multe depozite populare de git hosting bazate pe cloud, cum ar fi - GitLab , BitBucket , GitHub , Forțează și CloudForge a numi câteva.
În această postare, iau în considerare GitHub, deoarece acesta este locul în care am început să păstrez depozitele mele git. Pentru început, tot ce trebuie să faceți este să vă conectați la un cont GitHub și apoi creați un nou depozit , se creează o adresă URL care indică această repo la distanță.
Git acceptă protocoalele ssh, git, http și https pentru a adresa un URL de depozit.
Alternativ, puteți plasa proiectul în altă parte, spuneți a Server Linux urmând comenzile de mai jos- cd $ ACASA
mkdir remote_repo
cd remote_repo
git init --bare.
Atașați telecomanda la mașina dvs. locală
Atașarea unei telecomenzi la copia dvs. de lucru înseamnă pur și simplu crearea unui handler referință pointer pentru telecomandă sau pur și simplu numit „ telecomandă '.
Să trecem la proiectul meu pe care vreau să-l public-cd learnRemotes
Sintaxă:git remote add
Comanda:git remote add origin https://github.com/divyabhushan/learnRemotes.git
'Origine este Mod implicit numele de referință pentru dispozitivul de manipulare la distanță. ” (numele de la distanță trebuie să fie un nume relevant)
Să vedem dacă a funcționat, folosind comanda:git remote
A facut :)
Imprimați și adresa URL la distanță împreună cu numele:
git remote -v
Foarte bine! Sunteți gata să stabiliți o conexiune la depozitul dvs. de la distanță din directorul local de lucru.
Timpul de publicare
Sintaxă:git push --all --tags
[-u | --set-upstream]
Comanda:git push origin master
Deci, ați citit acest lucru ca „Împingeți diferența comiterilor către originea de la maestrul local” .
Dacă vă verificați contul GitHub, confirmările locale (datele) trebuie afișate acolo-
Urmărirea sucursalelor
Deci, v-ați publicat cu succes lucrarea în depozitul la distanță.
Cu toate acestea, este important să vă configurați sucursala locală la urmări modificările de pe ramura de la distanță în mod automat.
Folosește '--set-upstream
sau-u
„Semnalizează împreună cu comanda„ git push ”
Comanda:git push -u origin master
Să creăm în continuare un nou commit pe ramura „master” și să verificăm modul în care git îl detectează-
Comanda:starea git
Afișați ramurile de urmărire în modul detaliat
Comanda:git branch -vv
Prin urmare, de fiecare dată, există o diferență în confirmări între depozitul local și cel de la distanță de pe ramura urmărită, Git vă va anunța.
Nu-i așa mișto !!!
Cum s-ar conecta alții la telecomanda ta?
Este o bucată de tort când tu clona un depozit la distanță !!!
Deci, clonarea dintr-un depozit la distanță face mai întâi 2 lucruri, dvs. referință la distanță este adăugat automat, iar al doilea implicit ramură este setat sa urmări ramură îndepărtată automat.
Pasul 1: Clonați-vă repo la distanță ca alt utilizator-
Comanda:git clone https://github.com/divyabhushan/learnRemotes.git developer2
dezvoltator de cd2
Pasul 2: Afișați telecomanda și adresa URL
Comanda:git remote -v
Pasul 3: Enumerați ramurile de urmărire
Comanda:git branch -vv
Distracția începe când „dezvoltatorul2” își va începe propria lucrare și va trece la telecomandă.
Vă puteți conecta și contribui la mai mult de o telecomandă depozit dintr-un proiect unic .
Vizualizați ramurile la distanță
Comanda:git branch -r
Utilizați opțiunea „-a” pentru a imprima atât sucursale locale cât și la distanță, încercați-o în repo-ul local după ce ați creat câteva sucursale locale.
Cum contribuie alții la telecomanda ta?
Configurare inițială
Developer2 decide să schimbe câteva lucruri, cum ar fi:
la. Crea o nouă „caracteristică” din cea mai recentă confirmare din ramura „master” și creați un comitere nouă pe ramura „caracteristică”
Comenzi: git checkout -b caracteristică
ecou „îmbunătățiri caracteristici”> feature.txt
git add. && git commit -m „îmbunătățiri ale funcției”
b. Crea o ramură „feature2” diferită de o comitere mai veche din ramura „master”
Comenzi: git checkout -b feature2 95651fb
ecou „feature2 adăugat”> feature2.txt
git add. && git commit -m 'Adăugarea caracteristicii2 modificări'
Să vizualizăm ramurile de pe computerul dezvoltator2 împreună cu informațiile de urmărire:
După cum trebuie să fi observat, noile ramuri nu sunt configurate pentru a urmări ramurile la distanță.
Apăsarea modificărilor la telecomandă
În primul rând, permiteți-mi să împing ramura „caracteristică” la distanță cu semnalizatorul „–set-upstream sau -u”
Comanda:caracteristica de origine git push -u
O nouă ramură va fi creată pe telecomandă, dacă nu există deja !!!
În acest moment, listați ramurile la distanță cu comanda: ‘git branch -r’
Un alt mod de a urmări ramificația la distanță
Mai mult, să setăm și ramura „feature2” pentru a indica aceeași ramură „feature” de pe telecomandă
Comanda:git branch --set-upstream-to = origin / feature feature2
Un sfat rapid: puteți omite numele sucursalei locale dacă sunteți deja în acea sucursală, cu alte cuvinte, sucursala locală este deja eliminată.
Enumerați din nou ramurile în modul detaliat, comandați:git branch -vv
Observați că ambele ramuri locale „caracteristică” și „caracteristică2” indică aceeași „caracteristică” a ramurilor la distanță.
Rămâneți sincronizat cu telecomanda - preluați, trageți și împingeți
Să luăm în considerare partea în care ramură îndepărtată urmăriți a fost deja actualizat, ce atunci?
Un simplu 'starea git
„Sau un„git checkout
„Sau chiar„git branch -vv
„Comanda ne avertizează cu o astfel de nepotrivire-
„Dezvoltatorul2” trebuie mai întâi să actualizeze referințele și obiectele locale („ git fetch ‘) Și apoi îmbinați modificările la distanță și locale (‘ git merge ’).
Interesant este că puteți înlocui aceste două comenzi cu o singură comandă „git pull”.
Sintaxă:merge
Trage
–Pentru ramură ne-urmărită
Sintaxă: git pull [:]
Comanda:caracteristica git pull origin: feature2
–Pentru ramură urmărită
Sintaxă: git pull
Comanda:git pull
=> În practică, pot apărea conflicte care apar în acest stadiu atunci când trageți de la distanță pentru simplitate, am generat o modificare de comitere fără conflict.
După extragerea „dezvoltator2” (preluare și îmbinare), ultimele modificări de la distanță trebuie să-și publice acum propria lucrare-
Comanda:git push origine HEAD: caracteristică
Notă: „caracteristică” a sucursalei din amonte nu se potrivește cu numele „caracteristică2” a sucursalei locale, trebuie să o furnizați în mod explicit
Aducere aminte : „HEAD” este cea mai recentă confirmare din ramura locală „feature2”.
Când se folosește „git fetch”?
În momente în care aveți nevoie să vă actualizați doar capete de referință fără a descărca (trage) efectiv de pe telecomandă.
Sau când ramificările la distanță au fost modificate / șterse la actualizare, va trebui să executați comanda de preluare cu „--prună uscată
' opțiune.
Ca o bună practică, trebuie să rulați comanda „git fetch” de fiecare dată când începeți să lucrați la repo-ul local.
management la distanta
În cele din urmă, ați dori să efectuați unele sarcini de menaj, cum ar fi redenumirea sau eliminarea telecomenzilor și a ramurilor.
Acestea sunt la fel de importante ca comenzile anterioare.
Redenumiți telecomanda
Sintaxă:git redenumire la distanță
Comanda:git la distanță redenumiți snv_repo svn
De exemplu, luați în considerare un manager de proiect asociat cu 3 proiecte-
tutoriale SQL pentru începători
Ștergeți referința la distanță
Să presupunem că nu vă mai sincronizați cu un depozit la distanță, este probabil să ștergeți referința indicatorului la acesta.
Cu toate acestea, acest lucru nu va afecta depozitul la distanță și lucrările altora.
Sintaxă:git remote remove
Comanda:git remote remove proj1
Ce se întâmplă dacă ai avea o ramură locală setată să urmărească o ramură din depozitul „proj1” eliminat?
Ei bine, a ta filiala locala (și de aici munca) este sigur și încă prezent, doar al său referință de urmărire la distanță și configurare setările vor fi eliminat automat
Ștergeți ramura la distanță
Ai spus accidental v-a împins personal muncă aspră pe un ramificați spre telecomandă dar nu vreau ca alții să o verifice încă -
Eliminați ramura „unfinishedWork” din telecomanda „svn’-
Comanda:git branch -vv
#Listează ramurile de urmărire la distanță
Sintaxă:git push --delete
Comanda:git push --delete svn unfinishedWork
Lichidare
Cu aceasta, ajungem la sfârșitul acestui articol. Dacă ați găsit acest „ Tutorial ”Relevant, verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Cursul Edureka DevOps Certification Training ajută cursanții să câștige expertiză în diferite procese și instrumente DevOps, cum ar fi Puppet, Jenkins, Nagios și GIT pentru automatizarea mai multor pași în SDLC.