Git

22 osnovne Git naredbe

22 osnovne Git naredbe
Git je postao najznačajniji sustav kontrole verzija. Porast popularnosti Gita može se pripisati njegovoj brzini, okretnosti i svestranosti. Bez obzira jeste li slobodni web programer ili dizajner softvera za aplikacije na razini poduzeća, korist od Gita možete imati. Pomaže vam u praćenju datoteka pomoću sustavnih verzija. Git olakšava vraćanje na starije verzije koda ili stvaranje novih grana za eksperimentiranje na trenutnoj bazi koda. Također, Git je distribuirani sustav kontrole verzija, što znači da se ne morate uvijek spajati na središnji poslužitelj da biste obavili svoj posao.Ispod su osnovne Git naredbe koje će vam pomoći u svakodnevnim zadacima. Jednostavni primjeri dat će vam razumijevanje naredbi, tako da se lako možete sjetiti sintakse kada ih trebate koristiti.

1. git dodaj

Naredba git add omogućuje vam započinjanje praćenja datoteka i mapa za vaše Git spremište i premješta ih u scensko područje. Morat ćete upotrijebiti naredbu git commit da biste ih učinili trajnima na svojim povijesnim snimkama.

Korištenje naredbe je jednostavno. Možete odabrati dodavanje datoteka i mapa pojedinačno ili upotrijebiti glob operater tipa Linux (*) da biste ih dodali u grupe.

Uzmimo primjer u nastavku:

Pretpostavimo da smo u gore navedenom slučaju već dodali ReadMe.txt. Ali ostale datoteke nisu dodane.

Provjerimo status:

$ git status
Na grani gospodar
Vaša grana je ažurirana s "origin / master".
Nepraćene datoteke:
(koristite 'git add ... 'uključiti u ono što će biti počinjeno)
datoteka1.txt
datoteka2.txt
mapa1 /

Datoteke i mape su crvene boje, što znači da im se ne prati. Možemo ih dodati pomoću:

$ git dodaj datoteku1.txt datoteka2.txt mapa1 / *

Ako sada provjerimo status:

$ git status
Na majstoru grane
Vaša grana je ažurirana s "origin / master".
Promjene koje treba izvršiti:
(upotrijebite 'git reset HEAD ... 'do nestanka)
nova datoteka: datoteka1.txt
nova datoteka: datoteka2.txt
nova datoteka: mapa1 / datoteka3.txt
nova datoteka: mapa1 / datoteka4.txt

Naredba git add dodala je datoteke u scensko područje. Datoteke se čuvaju u scenskom području prije nego što postanu trajne kroz postupak urezivanja.

2. git grana

Na Gitu je grananje jednostavno. U ostalim sustavima za upravljanje inačicama bila je to skupa operacija. Ali Git algoritmi su optimizirani za grananje. Tako možete koristiti naredbu git branch kad god želite stvoriti zasebnu liniju razvoja bez brige o performansama.

Pogledajmo sljedeći primjer.

$ git status
Na grani gospodar
Vaša grana je ažurirana s "origin / master".
Promjene koje treba izvršiti:
(koristite 'git reset HEAD ... 'do nestanka)
nova datoteka: datoteka1.txt
nova datoteka: datoteka2.txt
nova datoteka: mapa1 / datoteka3.txt
nova datoteka: mapa1 / datoteka4.txt

Primijetite da smo "na glavnom grani". Kada izradite novi projekt, završit ćete u master masteru. Također možete upotrijebiti naredbu git branch -a da biste saznali na kojoj ste grani:

$ git grana -a
* ovladati; majstorski

Gore navedeno govori vam da postoji samo jedna grana koja se zove 'master', a zvjezdica (*) znači da ste na toj grani.

Stvorimo novu granu pod nazivom 'testiranje':

$ git testiranje grana

Sada opet možemo provjeriti grane:

$ git grana -a
* ovladati; majstorski
testiranje

Iako smo još uvijek na grani „master“, možemo vidjeti i novu granu „testiranje“ koja je stvorena. Grana 'testiranje' replika je grane 'master'.

3. git naplata

Naredba git checkout vodi vas do podružnice, tako da možete raditi na resursima tamo. O granama možete razmišljati kao o rijekama i potocima. Pomoću grane stvarate novi tok. Pomoću naredbe za naplatu prelazite u taj tok.

Provjerimo granu 'testiranja' iz prethodnog primjera:

$ git provjera provjere
Prebačeno na "testiranje" grane

Sada opet provjerimo status i grane:

$ git status
Na ispitivanju grana
ništa za obvezivanje, radni direktorij čist
$ git grana -a
ovladati; majstorski
* testiranje

Iz naredbe git branch -a možete vidjeti da smo prešli na granu testiranja.

4. git klon

Naredba git clone omogućuje vam kopiranje bilo kojeg Git spremišta. Čim klonirate spremište, nova klonirana mapa počet će lokalno pratiti promjene. Budući da se Git distribuira, klon je potpuno autonomno Git spremište.

Da bismo pokazali kako kloniranje djeluje, stvorimo novo spremište:

$ mkdir dir1
$ cd dir1
$ mkdir mojprojekt
$ cd mojprojekt /
$ git init
Inicijalizirano prazno Git spremište u / dir1 / myproject /.git /
$ touch ReadMe.txt
$ git commit -m 'Inicijaliziraj moje spremište'
[master (root-commit) 5a0bd75] Inicijalizirajte moje spremište
Promijenjena je 1 datoteka, 0 umetanja (+), 0 brisanja (-)
način stvaranja 100644 ReadMe.txt

U gornjem primjeru stvorili smo Git spremište nazvano 'myproject' unutar mape 'dir1'. Pretpostavimo, ovo je naše glavno spremište. Sada ga želimo kopirati i raditi negdje drugdje.

Stvorimo direktorij nazvan 'dir2' i kloniramo spremište 'myproject'. Koristimo git klon

klonirati 'mojprojekt':

$ mkdir dir2
$ cd dir2
$ git clone / dir1 / myproject /
Kloniranje u 'mojprojekt' ..
gotovo.
$ ls
moj projekt

Naredba git clone radi i s URL-om.

$ git klon https: // github.com / test / test.git

Također, možete promijeniti ime klona tako što ćete ga odrediti nakon adrese Git spremišta:

$ git klon https: // github.com / test / test.git mytest

5. git počiniti

Naredba git commit izvršava se nakon naredbe git add. U našem primjeru dodavanja git-a dodali smo datoteke za praćenje, ali ga nismo predali u spremište Git. Praćenje ostaje lokalno dok se ne izvrši predavanje. Kada izvršite promjene, one postaju dijelom trajnog zapisa.

Ispod pokrećemo git commit -m naredba:

$ git commit -m 'Predavanje mojih datoteka i mapa'
[master 3ef57b3] Predavanje mojih datoteka i mapa
Promijenjene su 4 datoteke, 0 umetanja (+), 0 brisanja (-)
stvoriti način rada 100644 datoteka1.txt
stvoriti način rada 100644 datoteka2.txt
način stvaranja 100644 mapa1 / datoteka3.txt
način stvaranja 100644 mapa1 / datoteka4.txt

Ako ne koristite opciju -m za stavljanje komentara, Git će otvoriti zadani uređivač teksta i zatražiti ga. Komentari se smatraju dobrom praksom kontrole verzija. Stoga uvijek stavljajte značajne komentare u svoj predavanje.

6. git config

Naredba git config omogućuje vam postavljanje različitih opcija za vaše git spremište. Na primjer, možete koristiti git config -global naredba za preuzimanje i postavljanje vašeg korisnika.ime i korisnik.e-mail.

Evo kako možete postaviti vrijednosti:

$ git config - globalni korisnik.ime 'Zak H'
$ git config - globalni korisnik.e-mail zakh @ primjer.com

Evo kako možete provjeriti vrijednosti:

$ git config --global korisnik.Ime
Zak H
$ git config - globalni korisnik.e-mail
zakh @ primjer.com

7. git razl

Naredba git diff pomaže vam vidjeti razlike između datoteka i mapa. Ako vršite promjene u datoteci, to je koristan alat za brzu procjenu promjena koje ste napravili.

Pretpostavimo da svoj rad započinjemo s ReadMeom.txt datoteka s dva retka. Tada se riješimo drugog retka i dodamo treći redak.

Sada, ako pokrenemo naredbu diff, pokazat će razlike između predane verzije i lokalne promijenjene verzije u scenskom području. Evo kako će to izgledati:

$ git razl
diff - git a / ReadMe.txt b / ReadMe.txt
indeks 9475ddc… 1804904 100644
--- a / ReadMe.txt
+++ b / ReadMe.txt
@@ -1,2 +1,2 @@
Redak 1: Moj prvi redak
-2. redak: Moj drugi redak
+3. red: Moja TREĆA linija

Linija 1 je nepromijenjena (bijela), linija 2 uklonjena (crvena) i dodana je linija 3 (zelena).
Naredbu diff možete koristiti i za pronalaženje razlika između pojedinih predavanja.

8. git fetch

Naredba git fetch dobiva najnovije resurse s navedenog podrijetla.

Pogledajmo primjer. Pretpostavimo da imate sljedeće stanje:

dir1 / myproject
dir2 / myproject (klonirano)

Mapa 'dir2 / myproject' klonirana je iz 'dir1 / myproject'. Sada ako je netko počinio promjene u 'dir1 / myproject', te promjene poput ovog možete dobiti iz 'dir2 / myproject':

$ git dohvati podrijetlo
daljinski: Brojanje predmeta: 2, gotovo.
daljinski: Komprimiranje predmeta: 100% (2/2), gotovo.
daljinski: Ukupno 2 (delta 0), ponovno korišteno 0 (delta 0)
Raspakivanje predmeta: 100% (2/2), gotovo.
Iz / dir2 / ... / dir1 / myproject
5a0bd75… 1713734 master -> ishodište / master

Važno je zapamtiti da naredba git fetch ne spaja promjene. Za automatsko dohvaćanje i spajanje upotrijebite naredbu git pull. Tada se možda pitate zašto uopće koristiti ovu naredbu. Možda postoje napredne Git opcije u kojima sve promjene dobivate s izvornog poslužitelja, a zatim promjene primjenjujete samo selektivno na određene datoteke. Naredba git fetch omogućuje vam da to postignete. Međutim, to je napredna tema koju možete pronaći u dokumentaciji za git fetch.

9. git grep

Naredba git grep omogućuje vam pretraživanje podataka na vašem Git stablu. Evo primjera pretraživanja riječi 'Linija' u našem git spremištu. Opcija -n ili --line-number prikazuje brojeve linija gdje Git pronalazi podudaranje:

$ git grep -n Linija
Pročitaj me.txt: 1: 1. redak: moj prvi redak
Pročitaj me.txt: 2: Red 3: Moj TREĆI redak

Možete pokrenuti slično pretraživanje koliko je puta podudaranje bilo pomoću opcije -c ili --count:

git grep -c Linija
Pročitaj me.txt: 2

Razlog korištenja git grepa preko Linux grepa je taj što je git grep brži za git spremišta.

10. git log

Naredba git log prikazuje vam povijest urezivanja.

$ git zapisnik
predati 171373479fc309846ef605fbe650933767afd0fb
Autor: Zak H
Datum: Sre 21.11 20:26:32 2018 -0800
Dodane su nove datoteke
predati 5a0bd759506d20b2b989873258bf60d003aa3d36
Autor: Zak H
Datum: sri 21. studenog 18:48:35 2018 -0800
Inicijalizirajte moje spremište

Također možete koristiti opciju --oneline da biste vidjeli skraćenu verziju. Skraćenu verziju je lakše slijediti.

$ git log --oneline
1713734 Dodane su nove datoteke
5a0bd75 Inicijalizirajte moje spremište

11. git spajanje

Naredba git merge spaja grane.

Stvorimo novo spremište s 'main', a zatim stvorimo 'test' granu.

$ mkdir mojprojekt
$ cd mojprojekt
$ git init
Inicijalizirano prazno Git spremište u / git_essentials / myproject /.git /
$ touch ReadMe.txt
$ git dodaj -A
$ git commit -m 'Početno urezivanje'
[master (root-commit) b31d4e1] Početno predavanje
Promijenjena je 1 datoteka, 0 umetanja (+), 0 brisanja (-)
način stvaranja 100644 ReadMe.txt
$ git test grane
$ git grana -a
* ovladati; majstorski
test
$ git test provjere
Prebačeno na "test" grane

U grani 'test' napravimo neke promjene:

$ touch File1.txt Datoteka2.txt
$ Ls
Datoteka1.txt Datoteka2.txt ReadMe.txt
$ git dodaj -A
$ git commit -m 'Dodane su dvije nove datoteke'
[test 7e11910] Dodane su dvije nove datoteke
Promijenjene su 2 datoteke, 0 umetanja (+), 0 brisanja (-)
način stvaranja 100644 Datoteka1.txt
način stvaranja 100644 Datoteka2.txt

U test smo dodali dvije datoteke.

$ git grana -a
ovladati; majstorski
* test
$ ls
Datoteka1.txt Datoteka2.txt ReadMe.txt
$ git checkout master
Prebačeno na granu 'master'
$ git grana -a
* ovladati; majstorski
test
$ ls
Pročitaj me.txt

Iz navedenog vidimo da je File1.txt i File2.txt postoji u 'test' grani, ali ne i u 'master'.

Spojimo se sada.

$ git test spajanja
Ažuriranje b31d4e1… 7e11910
Premotavanje unaprijed
Datoteka1.txt | 0
Datoteka2.txt | 0
Promijenjene su 2 datoteke, 0 umetanja (+), 0 brisanja (-)
način stvaranja 100644 Datoteka1.txt
način stvaranja 100644 Datoteka2.txt
$ ls
Datoteka1.txt Datoteka2.txt ReadMe.txt
$ git grana -a
* ovladati; majstorski
test

Sada imamo 'File1.txt 'i' Datoteka2.txt 'u' master 'grani također.

Napomena: Zamišljajte spajanje kao operaciju izvlačenja. Morate biti u grani u koju se želite spojiti. U ovom slučaju nalazite se u grani 'master' i povlačite promjene iz grane 'test'.

12. git mv

Git mv je prečica za pokretanje naredbi git add i git rm. Može se koristiti za preimenovanje datoteka.

Evo primjera:

$ git mv ReadMe.txt ReadMe.doktor medicine
$ git status
Na majstoru grane
Promjene koje treba izvršiti:
(upotrijebite 'git reset HEAD ... 'do nestanka)
preimenovano u: ReadMe.txt -> ReadMe.doktor medicine

13. git pull

Naredba git pull sliči na git fetch, osim što se spajanje događa automatski.

Evo primjera pokretanja git pull origin-a poput git fetch-a (pokrećemo zahtjev za povlačenjem iz klona za dobivanje promjena iz izvornog Git-ovog spremišta):

$ git pull podrijetlo
daljinski: Brojanje predmeta: 3, gotovo.
daljinski: Komprimiranje objekata: 100% (2/2), gotovo.
daljinski: Ukupno 3 (delta 0), ponovno korišteno 0 (delta 0)
Raspakivanje predmeta: 100% (3/3), gotovo.
Iz / LearnGIT / git_essentials / myproject
7e11910… e67f932 master -> ishodište / master
Ažuriranje 7e11910… e67f932
Premotavanje unaprijed
Datoteka1.txt | 1 +
Datoteka2.txt | 1 +
Datoteka3.txt | 1 +
Pročitaj me.txt => ReadMe.md | 0
Promijenjene su 4 datoteke, 3 umetanja (+)
način stvaranja 100644 Datoteka3.txt
preimenovati ReadMe.txt => ReadMe.md (100%)

Možete vidjeti da su promjene preuzete s podrijetla i spojene u klon.

14. git push

Naredba git push koristi se za guranje promjena u udaljenim spremištima. Evo primjera izvođenja naredbe push:

$ git push master master
Brojanje predmeta: 2, gotovo.
Delta kompresija pomoću do 4 niti.
Stiskanje predmeta: 100% (2/2), gotovo.
Zapisivanje objekata: 100% (2/2), 242 bajta | 0 bajtova / s, gotovo.
Ukupno 2 (delta 1), ponovno upotrijebljena 0 (delta 0)
Na / LearnGIT / git_essentials / myproject
e67f932… 90dc546 master -> master

Glavna naredba git push origin šalje promjene u 'master' granu podrijetla (Git spremište koje ste klonirali) iz 'master' grane kloniranog spremišta. Vizualno potisak izgleda ovako:

klonirano / majstor -> podrijetlo / majstor

15. git rebase

Naredba git rebase pomaže vam promijeniti bazu grana. U općem spajanju, dogodi se nešto slično:

Ispitna grana spojena je u granicu 'master' radi stvaranja novog urezivanja.

U ponovnoj bazi podataka događa se sljedeće:

Promjene s popisa promjena E i F ponovno se izračunavaju i učvršćuju na kraju glavne grane. Predefiniranje pomaže pojednostavljenju grana.

Pretpostavimo da imamo ovu situaciju u grani 'master':

$ git log --oneline
7f573d8 Obveza C: dodano c.txt
795da3c Porezivanje B: dodano b.txt
0f4ed5b Porezivanje A: dodano a.txt

I grana značajke:

$ git log --oneline
8ed0c4e Porezivanje F: izmijenjeno b.txt
6e12b57 Porezivanje E: izmijenjeno a.txt
795da3c Porezivanje B: dodano b.txt
0f4ed5b Porezivanje A: dodano a.txt

Ako ponovno napravimo bazu podataka, dobit ćemo git rebase master:

$ git značajka naplate
Prebačeno na granu "značajka"
$ git rebase master

Prvo, premotavanje glave da biste na vrhu reproducirali svoj rad ..

Primjena: Obvezati E: izmijenjeno a.txt
Primjena: Obrezivanje F: modificirano b.txt
Zatim spojite "značajku" u "master".
$ git checkout master
Prebačeno na granu 'master'
Značajka spajanja $ git
Ažuriranje 7f573d8… 9efa1a3
Premotavanje unaprijed
a.txt | 1 +
b.txt | 1 +
Promijenjene su 2 datoteke, 2 umetanja (+)

Sada ako odete i na granu 'master' i na 'feature', vidjet ćete iste zapisnike:

$ git log --oneline
9efa1a3 Obrezivanje F: modificirano b.txt
8710174 Porezivanje E: izmijenjeno a.txt
7f573d8 Obveza C: dodano c.txt
795da3c Porezivanje B: dodano b.txt
0f4ed5b Porezivanje A: dodano a.txt

Rebazing ih je zgnječio.

Napomena: Nikada nemojte koristiti ponovnu podlogu u javnim spremištima jer će programeri naići na velike probleme spajanja.

16. git daljinski

Naredba git remote omogućuje vam postavljanje udaljenog poslužitelja za vaše spremište. U situaciji kloniranja, izvorno spremište automatski postaje daljinski.

Na primjer:

$ pwd
/ LearnGIT / git_essentials / test
$ git daljinski -v
origin / LearnGIT / git_essentials / myproject (dohvat)
origin / LearnGIT / git_essentials / myproject (push)

Gore pokazano da je udaljeni poslužitelj za 'test' druga mapa koja se naziva 'myproject'. Razlog je taj što je 'test' kloniran za moj projekt.

Ali udaljeni poslužitelj ne mora biti lokalni. Možete imati nešto poput ovoga s URL-om:

$ git daljinski -v
podrijetlo https: // github.com / zakh / myproject (dohvati)
podrijetlo https: // github.com / zakh / myproject (push)

Možete postaviti git udaljeno spremište pomoću naredbe git remote add :

$ git remote dodaj podrijetlo https: // github.com / zakh / myproject

Ovo će povezati vaš repo s izvorom, tako da možete dohvatiti i pritisnuti.

17. git resetiranje

Git reset omogućuje vam uklanjanje dodanih datoteka.

Recimo da ste dodali test datoteke.txt 'u vaše spremište:

$ dodirni test.txt
$ git dodaj -A
$ git status
Na majstoru grane
Vaša grana je ažurirana s "origin / master".
Promjene koje treba izvršiti:
(upotrijebite 'git reset HEAD ... 'do nestanka)
nova datoteka: test.txt

Međutim, odlučili ste da ne želite pratiti test.txt 'više. Možete koristiti git reset Head naredba za uklanjanje datoteke iz faze:

$ git reset HEAD test.txt

Ako provjerite status, datoteka se ponovno ne prati:

$ git status
Na majstoru grane
Vaša grana je ažurirana s "origin / master".
Nepraćene datoteke:
(koristite 'git add ... 'uključiti u ono što će biti počinjeno)
test.txt

'Datoteka' test.txt 'se više ne prati.

18. git revert

Naredba git revert omogućuje vam poništavanje promjena pomoću hash broja urezivanja.

$ echo 'Test 1' >> MyFile.txt
$ git dodaj -A
$ git commit -m 'Dodana promjena 1'
[master 78a8277] Dodana promjena 1
Promijenjene su 2 datoteke, 1 umetanje (+)
način stvaranja 100644 MyFile.txt
test načina rada 100644.txt
$ mačka MyFile.txt
Test 1
$ echo 'Test 2' >> MyFile.txt
$ git dodaj -A
$ git commit -m 'Dodana promjena 2'
[master a976e9c] Dodana promjena 2
1 datoteka promijenjena, 1 umetanje (+)
$ mačka MyFile.txt
Test 1
Test 2
$ git log --oneline
a976e9c Dodana promjena 2
78a8277 Dodana promjena 1
90dc546 Dodana je datoteka
e67f932 Dodane su nove datoteke
7e11910 Dodane su dvije nove datoteke
b31d4e1 Početno predavanje

Stvorili smo 'MyFile.txt 'i počinio je dvije promjene, tako da datoteka ima retke' Test 1 'i' Test 2 '. Ali zaključili smo da ne želimo drugi pogodak. Stoga smo za njega pronašli hash urezivanja (a976e9c). Možemo koristiti git revert da biste se riješili predavanja:

$ git revert a976e9c
[master 4f270e7] Vrati 'Dodanu promjenu 2'
1 datoteka promijenjena, 1 brisanje (-)
$ git log --oneline
4f270e7 Vrati "Dodana promjena 2"
a976e9c Dodana promjena 2
78a8277 Dodana promjena 1
90dc546 Dodana je datoteka
e67f932 Dodane su nove datoteke
7e11910 Dodane su dvije nove datoteke
b31d4e1 Početno predavanje
$ mačka MyFile.txt
Test 1

Vidimo da je stvoren novi hash za urezivanje koji je poništio predavanje reda 'Test 2'. Datoteka sada ima samo redak "Test 1".

19. git rm

Naredba git rm postavlja datoteke za buduća brisanja. Datoteke koje treba izbrisati stavljaju se u scensko područje.

$ git rm test.txt
rm 'test.txt '
$ git status
Na majstoru grane
Vaša grana je ispred "origin / master" za 3 urezivanja.
(upotrijebite 'git push' za objavljivanje svojih lokalnih obveza)
Promjene koje treba izvršiti:
(upotrijebite 'git reset HEAD ... 'do nestanka)
izbrisano: test.txt

Morate unijeti promjene da bi brisanje stupilo na snagu.

20. git skrivanje

Naredba git stash omogućuje vam privremeno napuštanje posla za koji još niste spremni.
Pretpostavimo da radite u spremištu sa sljedećim datotekama:

$ ls
Ivan.txt Marija.txt
Želite promijeniti ove datoteke kako bi se više temeljile na projektu. Pa započnite sa:
$ git mv Ivan.txt ProjectFile1.txt
$ ls
Marijo.txt ProjectFile1.txt
$ git status
Na majstoru grane
Promjene koje treba izvršiti:
(upotrijebite 'git reset HEAD ... 'do nestanka)
preimenovan u John.txt -> ProjectFile1.txt

Usred preimenovanja i ažuriranja 'Ivana.txt 'na' ProjectFile1.txt ', primit ćete zahtjev za promjenom nečega u projektu. Ali niste spremni poslati 'ProjectFile1.txt '. Pa skrivaj to.

$ git zaliha

Spremljeni radni direktorij i stanje indeksa WIP na masteru: f0b5a01 Init John and Mary

HEAD je sada na f0b5a01 Init Ivan i Marija

$ ls
Ivan.txt Marija.txt

Vaše se lokalno radno okruženje vratilo tamo gdje ste bili prije uvođenja promjena na temelju projekta. Nakon toga, pobrinuvši se za prekid, umjesto da se vratimo k Johnu.txt ', odlučili ste raditi na' Mariji.txt 'datoteka sada:

$ git mv Marija.txt ProjectFile2.txt
$ git status
Na majstoru grane
Promjene koje treba izvršiti:
(upotrijebite 'git reset HEAD ... 'do nestanka)
preimenovana u: Marija.txt -> ProjectFile2.txt
$ ls
Ivan.txt ProjectFile2.txt

Opet te prekidaju i skrivaš svoj novi rad na 'Mary.txt ':

$ git zaliha
Spremljeni radni direktorij i stanje indeksa WIP na masteru: f0b5a01 Init John and Mary
HEAD je sada na f0b5a01 Init Ivan i Marija
$ ls
Ivan.txt Marija.txt

Nakon završetka rada na prekidu provjeravate popis zaliha:

$ git popis zaliha
stash @ 0: WIP na masteru: f0b5a01 Init John and Mary
spremnik @ 1: WIP na masteru: f0b5a01 Init John and Mary

Na zalihi imate dva nedovršena rada (WIP). Prvi put kad stavite skrivačicu, dobit ćete najnoviju 'Mary.txt 'promjene:

$ git skrivena pošta
Uklanjanje Marije.txt
Na majstoru grane
Promjene koje treba izvršiti:
(upotrijebite 'git reset HEAD ... 'do nestanka)
nova datoteka: ProjectFile2.txt
Promjene nisu uprizorene za urezivanje:
(koristite 'git add / rm ... 'za ažuriranje onoga što će biti počinjeno)
(koristite 'git checkout -- ... 'za odbacivanje promjena u radnom direktoriju)
izbrisano: Mary.txt
Ispuštene preporuke / zaliha @ 0 (9b77a6b75e4e414fb64de341668c812d3d35150c)

Drugi put kad stavite skrivačicu, dobit ćete "John.promjene povezane s txt'om:

$ git skrivena pošta
Uklanjanje Ivana.txt
Na majstoru grane
Promjene koje treba izvršiti:
(upotrijebite 'git reset HEAD ... 'do nestanka)
nova datoteka: ProjectFile1.txt
nova datoteka: ProjectFile2.txt
Promjene nisu uprizorene za urezivanje:
(upotrijebite 'git add / rm ... 'za ažuriranje onoga što će biti počinjeno)
(koristite 'git checkout -- ... 'za odbacivanje promjena u radnom direktoriju)
izbrisano: John.txt
izbrisano: Mary.txt
Ispuštene preporuke / zaliha @ 0 (1e1968854fb5ca4d609e577822dc3280dbf928f6)
$ ls
ProjectFile1.txt ProjectFile2.txt

I vi imate svoj "ProjectFile1" u tijeku.txt 'i' ProjectFile2.txt 'natrag.

Tako vam naredba git stash pomaže da skrivate svoj posao kako biste se kasnije mogli vratiti na njega.

21. git status

Naredba git status prikazuje razliku između trenutnih datoteka i urezivanja HEAD.

Evo primjera:

$ git status
Na majstoru grane
Promjene koje treba izvršiti:
(koristite 'git reset HEAD ... 'do nestanka)
preimenovana u: File2.txt -> Datoteka3.txt
Promjene nisu uprizorene za urezivanje:
(koristite 'git add ... 'za ažuriranje onoga što će biti počinjeno)
(koristite 'git checkout -- ... 'za odbacivanje promjena u radnom direktoriju)
izmijenjeno: Datoteka1.txt

To pokazuje da 'File2.txt 'preimenuje se u' File3.txt 'koji je spreman za urezivanje, ali izmjene u' File1.txt 'još nije na sceni.

Dakle, dodajemo sve:

$ git dodaj -A

Sada kada provjeravamo status:

$ git status
Na majstoru grane
Promjene koje treba izvršiti:
(koristite 'git reset HEAD ... 'do nestanka)
izmijenjeno: Datoteka1.txt
preimenovana u: File2.txt -> Datoteka3.txt

Vidimo da su sve promjene spremne za urezivanje.

22. git oznaka

Naredba git tag pomaže vam stvoriti oznake za vaše važne povijesne točke. Obično se koristi za postavljanje brojeva verzija.

Naredba git tag pokazat će vam trenutne dostupne oznake:

$ git oznaka
v1.0
v2.0

Možete označiti naredbenim formatom git tag :

$ git oznaka v3.0

Da biste vidjeli što je u oznaci, možete upotrijebiti git show naredbu:

$ git show v1.0
počini 61e9e8aa1b98b2a657303e6822b291d2374314b5
Autor: Zak H
Datum: Četvrtak 22. studenoga 01:06:42 2018 -0800
Prvo počinite
diff --git a / 1.txt b / 1.txt
novi način datoteke 100644
indeks 0000000 ... e69de29

Također možete označiti pomoću hash-a urezivanja i git oznake formata naredbe :

$ git log --oneline
374efe9 Izmijenjena datoteka
a621765 Dodati
6d6ed84 Drugi predaj
61e9e8a Prvo predavanje
$ git oznaka v4.0 a621765
$ git show v4.0
predati a6217650a2c7b2531ecb9c173ba94bd4b3ba7abd
Autor: Zak H
Datum: Četvrtak 22. studenoga 01:15:55 2018 -0800
Dodati
razl - git a / 1.txt b / 1.txt
indeks e69de29… 587be6b 100644
--- a / 1.txt
+++ b / 1.txt
@@ -0,0 +1 @@

U zaključku

Za bilo koju naredbu možete koristiti git -h da biste dobili više informacija.

Daljni studiji

  • https: // git-scm.com / docs
Kako preuzeti i igrati Sid Meier's Civilization VI na Linuxu
Uvod u igru Civilization 6 moderan je pogled na klasični koncept predstavljen u seriji igara Age of Empires. Ideja je bila prilično jednostavna; započ...
Kako instalirati i igrati Doom na Linuxu
Uvod u Doom Serija Doom nastala je 90-ih nakon izlaska originalnog Dooma. To je bio trenutni hit i od tog vremena nadalje igraća serija dobila je broj...
Vulkan za korisnike Linuxa
Sa svakom novom generacijom grafičkih kartica vidimo da programeri igara pomiču granice grafičke vjernosti i dolaze na korak od fotorealizma. No, bez ...