
Edmund Richardson
0
3569
1031
Ako ste ikada radili s kolegama na dokumentu, znate ovu bol: netko prvi prođe (document.doc), a zatim ga pošalje svima. Sljedeća osoba čini isto kao i treća, a svaka primjenjuje reviziju (document_rev3.doc) na ime datoteke. Voditeljica voli ono što vidi i označava je kao cjelovitu (document_final.doc)… Sve dok ne nastanu last-minute promjene (document_final_Aaron's changes_reviewed_by_Bob_now_really_final.doc).
Sada zamislite takve promjene u desecima datoteka izvornog koda. Programeri su stvorili sustave za upravljanje verzijama (VCS) kako bi riješili taj problem. Oni su malo tehničke naravi, ali mogu biti korisni i za korisnike napajanja. Pogledajmo osnove upravljanja verzijama pomoću vrhunskog sustava danas, Git.
Pregled kontrole verzija u upotrebi
Primarna svrha VCS-a je hvatanje verzije (također se naziva izmjene) datoteke s vremenom. To znači ne oslanjati se na sirove metode poput one gore opisane. U tim sustavima kad imate pristup “document.doc” prema zadnjoj verziji radite na najnovijoj verziji. No možete se vratiti i u povijest datoteke i dohvatiti stare verzije. Sustavi izgrađeni posebno za upravljanje verzijama datoteka započeli su u razvoju softvera, ali su ušli u više “matica” aplikacije.
Evolucija kontrole verzija u razvoju softvera
Aplikacije za kontrolu verzija izvorno su nastale kao način da se programerima onemogući da razbijaju međusobno kod. Prvi sustavi jednostavno su dopuštali korisnicima da zaključavaju datoteke iz drugih uređivanja, dok su druge generacije sustava (poput Subverzije Kako kontrolirati WordPress verzije pomoću Subverzije [Linux] Kako kontrolirati WordPress verzije pomoću Subverzije [Linux] Većina vjerojatno već znate da je WordPress pokreće veliku količinu web stranica koje pregledavamo svaki dan. Uz veliku korisničku bazu i podršku možete učiniti mnogo zgodnih stvari s…) dodanom punom projektnom odjavom iz središnjeg spremišta.
Iako su ovi sustavi drugog gena i dalje široko korišteni, industrija prelazi na sustave treće generacije. Glavna karakteristika ovih sustava je da oni jesu distribuiran, što znači da ne postoji središnje spremište. Umjesto toga, svaki korisnik ima vlastitu potpunu kopiju spremišta (uključujući sve prethodne revizije). Ali sve promjene (čak i potpune revizije) su “lokalne” dok on “gura” njih u drugo spremište. Tada korisnik može povući klona kako bi napravio promjene i ponovio postupak.
Trenutna kontrola verzije za neprogramirače
Mogućnost hvatanja više verzija iste stvari također je uobičajena značajka i za prosječne korisnike. Ne samo za kodrerere: Sustavi kontrole vrhunskih verzija za pisce, a ne samo za kodrere: Sustavi kontrole vrhunskih verzija za pisce Spomenuti kontrolu verzija ili kontrolu revizije čini čini se kao nešto za štrebere. Iznenadit ćete se kada saznate da sustavi za kontrolu verzija imaju svoje mjesto ne samo u akademskom pisanju, već i u…. Pristup jeftinijoj pohrani, kako na lokalnom računalu, tako i putem usluga oblaka koji se jednostavno koriste, korisnici sada mogu pratiti povijest svojih datoteka. Programi opće namjene to čine na više načina.
Operativni sustavi može snimiti povijest datoteka ili mapa The Ultimate Windows 10 Vodič za sigurnosno kopiranje podataka Ultimate Vodič za izradu sigurnosnih kopija za Windows 10 Saželi smo sve mogućnosti sigurnosne kopije, obnove, oporavka i popravka koje bismo mogli pronaći u sustavu Windows 10. Koristite naše jednostavne savjete i nikad ne očajavajte. ponovno izgubljeni podaci! , To se može dogoditi automatski svaki put kada se datoteka sprema ili u redovitom rasporedu. Neki desktop aplikacije također vam omogućuje snimanje verzija ili snimaka datoteka. Na primjer, LibreOffice pruža “Spremi verziju” značajka (kao što je prikazano na gornjoj slici ispod) koja omogućuje spremanje više verzija dokumenta u jednu datoteku. Konačno, web / oblačne aplikacije poput Google diska, ownCloud itd. Također će zadržati prethodne iteracije datoteke ili dokumenta (kao što je prikazano za Google Dokumente na donjoj slici dolje), bilo iza scene ili po vašoj izričitoj naredbi.
Zašto se tada koristiti Programiranje usredotočeno na verziju programa?
Budući da sve ove mogućnosti na OS-u ili aplikacijskoj razini već postoje, zašto se gnjaviti s tim šaljivim alatima programera? Postoji nekoliko nedostataka navedenih metoda, uključujući:
- Neki operativni sustavi spremit će svaki obradak koji napravite u novoj verziji datoteke. Vrijeme povratka: 4 alata i savjeta za vraćanje izbrisanih datoteka u sustavu Windows Vrijeme povratka: 4 alata i savjeta za vraćanje izbrisanih datoteka u sustavu Windows jedan od sustava Windows ' Najveći nedostaci mogli bi vam biti spas, ako ikada slučajno izbrišete važnu datoteku: Windows datotečni sustav zapravo ne briše datoteke. Izbrisane datoteke mogu se vratiti sve dok ih ne prebrisu. , Ovo ne samo da će zauzeti nepotrebno pohranjivanje, već će i otežati prepoznavanje određene točke vraćanja za datoteku.
- Ova rješenja mogu koristiti datoteku i kao osnovnu jedinicu za upravljanje. No sustavi za kontrolu verzija obično rade na razini direktorija (uključujući pod-mape). VCS olakšava precizno vidjeti što se datoteka promijenila i kada.
- Ista rješenja također vam ne daju mogućnost označavanja ponavljanja u većini slučajeva. Isto tako, teško je pronaći datoteku s odlomkom teksta koji ste prebrisali u nekom trenutku prije nego što ste shvatili koliko je sjajna.
- Verzije operativnih sustava i aplikacija poput Word-a također uvode pojedinačne točke neuspjeha. Za Word to je datoteka sama (ako se ošteti, oprosti se i od svih svojih prošlih primjeraka). Za operativni sustav to je tvrdi disk. Kako popraviti mrtvi pogon tvrdog diska kako biste obnovili podatke. Popravak mrtvog tvrdog diska kako biste obnovili podatke Ako vam pogon tvrdog diska nije uspio, ovaj će vam vodič pomoći u popravljanju pogona tvrdog diska i povrat podataka. , osim ako ste odgovoran korisnik i redovito stvarajte sigurnosne kopije. Vodič za sigurnosno kopiranje i vraćanje sustava Windows Vodi se od sigurnosnih kopija i obnavljanja. Ako niste spremni izgubiti svoje podatke, potrebna vam je dobra sigurnosna kopija programa Windows. Pokazat ćemo vam kako pripremiti sigurnosne kopije i obnoviti ih. .
- Priroda internetskih usluga znači da bi vaše starije revizije mogle biti vani u oblaku. Na primjer, ako pokušate pogledati povijest datoteke Dropbox na Linuxu (kao što je prikazano na slici dolje), preusmjerit ćete se na web mjesto.
Ako vas neki ili svi ovi problemi žele nešto više, pogledajte sljedeći odjeljak u kojem ih rješavamo Git.
Kontrola verzije s Gitom
U sljedećim ćemo odjeljcima proći svaki od ovih koraka za vrlo važan projekt: upravo ovaj članak. To ćemo učiniti korištenjem verzije Git naredbenog retka. Poznavanje naredbi terminala olakšat će vam pronalaženje njihovih ekvivalenta GUI, a zajamčiti će vam da ga možete koristiti na svakoj platformi.
1. Postavljanje Git repozitorija
Ako vaš uređaj nema instaliran git (to čine Maci, kao i neke Linux distribucije), možete ugrabiti instalacijski program Windows sa stranice za preuzimanje projekta ili instalirati na Linux pomoću naredbe (specifične za vaš distrokt), kao što su:
sudo apt install git
Sljedeće što trebamo učiniti je postaviti git skladište, što je samo mapa koja drži vaš projekt. Da biste iskoristili verziju Git verzije, morate inicijalizirati mapu kao spremište. To možete učiniti u naredbenom retku sa sljedećom naredbom:
git init
Nakon što se to završi, možda nećete vidjeti ništa, ali omogućite “prikaži skrivene datoteke” opciju u vašem upravitelju datoteka i vidjet ćete da postoji nova .Git mapu (kao što je prikazano na gornjoj slici). Ovdje git čuva sve svoje podatke, pa vam ne pada na pamet.
2. Dodajte i počnite svoju prvu datoteku
Sljedeći korak je stvaranje određenog sadržaja (datoteka) u vašem projektu. To mogu biti bilo koje vrste datoteka, jer se većina programskih projekata sastoji od koda (teksta) i sredstava kao što je grafika (binarno) Sve što trebate znati o formatima datoteka i njihovim svojstvima Sve što trebate znati o formatima datoteka i njihovim svojstvima. koristite izmjenjivu datoteku riječi: glazba, slika, proračunska tablica, prezentacija itd. Ali što datoteku uopće čini "datotekom"? Pokušajmo razumjeti ovaj temeljni dio računanja. , Nakon kreiranja, učinite sljedeće u naredbenom retku, dok ste još u direktoriju projekata:
git status
Prvi korak prema obvezi je “faza” nove ili ažurirane stavke. Pogledajte kako gornji izlaz omogućuje da znate da postoje “nestupnjevanih” promjene? Ovom naredbom možete postupiti sve u svojoj mapi (rekurzivno, tj. Da uključite podmape i njihove datoteke):
git -a .
“-” zastava je za “dodati,” a razdoblje se odnosi na trenutni imenik. To u osnovi kaže “dodaj sve datoteke u moje počinjenje.” Da biste se zapravo obvezali, upišite sljedeće:
git počinite -m "KAKO, moja prva obaveza!"
Kada ponovo provjerite status, ne bi trebalo biti promjena na čekanju. Da biste vidjeli sami obveza, provjerite git dnevnik pomoću grafički način rada, s izrezom na jedna linija, i ukrašen za čitljivost:
git log --all --decorate --oneline --graph
To će vam pokazati lijepu vremensku liniju vašeg angažmana, s najnovijim podacima na vrhu.
3. Stvorite granu za eksperiment
Dok radite, možda biste htjeli krenuti u određenom smjeru, ne znajući hoće li to uspjeti. Za ovo ćete želite stvoriti podružnicu sa sljedećom naredbom:
git grana eksperiment1 git checkout pokus1
Druga naredba prebacuje vas na “experiment1” grana. Možete se prebaciti natrag tako što ćete je zamijeniti sa “ovladati; majstorski.” Dok počinjete raditi na svom tekstu, zabilježite razliku između istu datoteku iz svake grane. Prvo, the “experiment1” grana s vašim novim tekstom:
Usporedite to s izvornikom:
Nakon što ste neko vrijeme radili (završavajući s novom obvezi), najbolje što biste mogli smisliti je “Lorem ipsum dolor sit amet… ?” Što je to? To je glupost i trebalo bi je odmah ukloniti iz vašeg projekta. Možete otpadati svoju podružnicu sljedećom naredbom (“-D” za prisilno brisanje):
git grana -D eksperiment1
Sada pokrenite drugu granu i dodajte nešto pametno, zajedno s nekoliko slika:
git grana eksperiment2 git checkout eksperiment2 git add. git commit -m "Više teksta, dodane slike"
4. Spojite svoje promjene
Konačno, nakon što budete zadovoljni promjenama u vašem trenutnom ogranku, sljedeća naredba spojit će ih sa “ovladati; majstorski” grana. Pod uvjetom da niste napravili mnogo skokova između njih, to će rezultirati primjenom svih vaših novih promjena i novom revizijom. Sljedeće iz naredbenog retka objedinit će ih za vas:
git spajanje eksperiment2
Sada ćete imati reviziju koja objedinjuje najnovije informacije u “ovladati; majstorski” s najnovijim u “experiment2.” U ovom se trenutku možete riješiti eksperimenta (ipak je bio uspješan) sa sljedećim:
git grana -d eksperiment2
Imajte na umu da ćete izgubiti sve inkrementalne promjene koje ste napravili unutar te grane samo ako to učinite.
5. Gurnite na sigurno mjesto
Napokon, Git je a distribuiran sustava, što znači da možete imati više kopija vašeg spremišta i sinkronizirati ih. Na primjer, stvorite novo spremište na poslužitelju na koje možete SSH-u Kako daljinsko upravljati Linux poslužiteljem sa SSH-om Kako daljinsko upravljati Linux poslužiteljem sa SSH-om SSH je vrlo funkcionalan, pa je to razlog za upravljanje udaljenim poslužiteljem. Naučite kako daljinsko upravljanje Linux serverom putem SSH-a, od veze, do instaliranja softvera i prijenosa datoteka. sa ovom naredbom:
git init --bare
“-ogoljen” zastava postavlja kao svojevrsno spremište samo za čitanje, tako da ne možete izravno mijenjati datoteke. Zatim možete to postaviti kao udaljenu kopiju lokalnog spremišta sa sljedećim (prva naredba osigurava da se nove lokalne grane stvaraju na daljinu):
git config push.default podudaranje git daljinsko dodavanje central ssh: // [korisničko ime] @ [URL] / put / do / repozitorij git push --set-upstream upstream central master
Postavljanje za verziju i izradu sigurnosnih kopija s Gitom
S gornjim postavljanjem, možete slijediti jednostavan postupak kako bi sav posao koji radite na projektu ne samo pretvorio u verziju, već i stvorio sigurnosnu kopiju..
- Unesite promjene u projektne datoteke.
- Problem “git add .” da biste dodali sve promjene u obzivu.
- Problem “git počiniti -m [neka poruka]” izvršiti promjene na vašem lokalne projekti. Ponovite od početka.
- Problem “git push” izvršiti promjene u udaljenom spremištu u pravilnim intervalima.
- Problem “git clone ssh: // [korisničko ime] @ [URL] / path / to / repository” s nekog drugog stroja na
Da li su prednosti sustava kontrole verzija nešto što vas zanima? Ili su rezervne aplikacije koje nisu u razvoju dovoljno za vaše potrebe? Javite nam svoje misli u komentarima u nastavku!