-
1. Začetek
- 1.1 O nadzoru različic
- 1.2 Kratka zgodovina Gita
- 1.3 Kaj je Git?
- 1.4 Ukazna vrstica
- 1.5 Namestitev Gita
- 1.6 Prva nastavitev Gita
- 1.7 Pridobivanje pomoči
- 1.8 Povzetek
-
2. Osnove Git
- 2.1 Pridobivanje repozitorija Git
- 2.2 Snemanje sprememb v repozitorij
- 2.3 Pregled zgodovine potrditev
- 2.4 Razveljavljanje stvari
- 2.5 Delo z daljavami
- 2.6 Označevanje
- 2.7 Aliasi Git
- 2.8 Povzetek
-
3. Veje Git
- 3.1 Veje na kratko
- 3.2 Osnove vej in združevanja
- 3.3 Upravljanje vej
- 3.4 Poteki dela z vejami
- 3.5 Oddaljene veje
- 3.6 Ponovno baziranje
- 3.7 Povzetek
-
4. Git na strežniku
- 4.1 Protokoli
- 4.2 Pridobitev Gita na strežniku
- 4.3 Generiranje vaših javnih ključev SSH
- 4.4 Nastavitev strežnika
- 4.5 Prikriti proces Git
- 4.6 Pametni HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Možnosti gostovanja pri tretjih ponudnikih
- 4.10 Povzetek
-
5. Porazdeljeni Git
- 5.1 Porazdeljeni poteki dela
- 5.2 Prispevek k projektu
- 5.3 Vzdrževanje projekta
- 5.4 Povzetek
-
6. GitHub
-
7. Orodja Git
- 7.1 Izbira revizije
- 7.2 Interaktivno pripravljanje
- 7.3 Shranjevanje na varno (angl. stashing) in čiščenje
- 7.4 Podpisovanje vašega dela
- 7.5 Iskanje
- 7.6 Prepisovanje zgodovine
- 7.7 Demistifikacija ponastavitve
- 7.8 Napredno združevanje
- 7.9 Rerere
- 7.10 Razhroščevanje z Gitom
- 7.11 Podmoduli
- 7.12 Povezovanje v pakete
- 7.13 Zamenjava
- 7.14 Shramba poverilnic
- 7.15 Povzetek
-
8. Prilagoditev Gita
- 8.1 Konfiguracija Git
- 8.2 Atributi Git
- 8.3 Kljuke Git
- 8.4 Primer pravilnika, ki ga uveljavlja Git
- 8.5 Povzetek
-
9. Git in ostali sistemi
- 9.1 Git kot odjemalec
- 9.2 Migracija na Git
- 9.3 Povzetek
-
10. Notranjost Gita
- 10.1 Napeljava in keramika
- 10.2 Objekti Git
- 10.3 Reference Git
- 10.4 Packfiles (datoteke zmanjšanih podatkov)
- 10.5 Refspec
- 10.6 Protokoli prenosa
- 10.7 Vzdrževanje in obnovitev podatkov
- 10.8 Spremenljivke okolja
- 10.9 Povzetek
-
A1. Dodatek A: Git v drugih okoljih
- A1.1 Grafični vmesniki
- A1.2 Git v Visual Studio
- A1.3 Git v Visual Studio Code
- A1.4 Git v IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Git v Sublime Text
- A1.6 Git v Bashu
- A1.7 Git v Zsh
- A1.8 Git v Powershellu
- A1.9 Povzetek
-
A2. Dodatek B: Vdelava Gita v vašo aplikacijo
- A2.1 Git v ukazni vrstici
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Dodatek C: Ukazi Git
- A3.1 Nastavitev in konfiguracija
- A3.2 Pridobivanje in ustvarjanje projektov
- A3.3 Osnove posnetkov
- A3.4 Veje in združevanje
- A3.5 Deljenje in posodabljanje projektov
- A3.6 Pregled in primerjava
- A3.7 Razhroščevanje
- A3.8 Popravljanje
- A3.9 E-pošta
- A3.10 Zunanji sistemi
- A3.11 Administracija
- A3.12 Orodja za sisteme napeljave
A3.5 Dodatek C: Ukazi Git - Deljenje in posodabljanje projektov
Deljenje in posodabljanje projektov
V Gitu ni veliko ukazov, ki dostopajo do omrežja, saj skoraj vsi ukazi delujejo na lokalni podatkovni bazi. Ko ste pripravljeni deliti svoje delo ali povleči spremembe od drugod, obstaja nekaj ukazov, ki se ukvarjajo z oddaljenimi repozitoriji.
git fetch
Ukaz git fetch
se poveže z oddaljenim repozitorijem in prenese vse informacije iz njega, ki niso v vašem trenutnem repozitoriju, ter jih shrani v vašo lokalno podatkovno bazo.
Ta ukaz smo najprej obravnavali v razdelku Pridobivanje in vlečenje iz vaših daljav in nadaljevali z ogledom primerov uporabe v razdelku Oddaljene veje.
Uporabljali smo ga tudi v več primerih v Prispevek k projektu.
V Reference zahtevkov potega smo ga uporabljali za prenos posamezne specifične reference, ki je zunaj privzetega prostora, in v Povezovanje v pakete smo pogledali, kako prenesti iz paketa.
V Refspec smo nastavili zelo prilagojene referenčne specifikacije, da git fetch
opravi nekoliko drugačno dejanje kot privzeto.
git pull
Ukaz git pull
je v bistvu kombinacija ukazov git fetch
in git merge
, pri čemer Git prenese iz oddaljenega repozitorija, ki ga določite, in ga takoj poskuša združiti v vejo, na kateri ste.
Ukaz smo na hitro predstavili v Pridobivanje in vlečenje iz vaših daljav in prikazali, kako videti, kaj bo združeno, če ga zaženete v Preverjanje daljave.
Prikazali smo tudi, kako ga uporabiti za pomoč pri težavah s ponovnim baziranjem v Ponovno bazirajte, ko ponovno bazirate.
Prikazali smo, kako ga uporabiti z URL-jem za enkratno pridobivanje sprememb v Izvlečenje oddaljenih vej.
Na koncu smo v razdelku Podpisovanje potrditev zelo na hitro omenili, da mu lahko s stikalom --verify-signatures
omogočimo preverjanje, ali so potrditve, ki jih pridobivamo, podpisane z GPG.
git push
Ukaz git push
se uporablja za komunikacijo z drugim repozitorijem, izračuna razliko med lokalno bazo podatkov in oddaljeno bazo podatkov ter to razliko potisne v drug repozitorij.
Potreben je dostop za pisanje do drugega repozitorija in običajno je na nekakšen način overjen.
Najprej smo si ogledali ukaz git push
v razdelku Potiskanje na vaše daljave.
Tukaj smo pokrili osnove potiskanja veje v oddaljeni repozitorij.
V razdelku Potiskanje smo šli nekoliko globlje v potiskanje specifičnih vej in v razdelku Sledenje vej smo si pogledali, kako nastaviti sledenje vej, da se samodejno potisnejo.
V razdelku Brisanje oddaljenih vej smo uporabili zastavico --delete
, da izbrišemo vejo na strežniku z git push
.
Skozi razdelek Prispevek k projektu smo si ogledali več primerov uporabe git push
za deljenje dela na vejah preko več oddaljenih repozitorijev.
V razdelku Deljenje oznak smo videli, kako ga uporabiti za deljenje oznak, ki ste jih ustvarili, z uporabo možnosti --tags
.
V razdelku Objavljanje sprememb podmodulov smo uporabili možnost --recurse-submodules
, da smo preverili, ali je bilo vse delo z našimi podmoduli objavljeno, preden potisnemo nadrejeni projekt, kar je lahko resnično koristno pri uporabi podmodulov.
V razdelku Ostale kljuke odjemalca smo na kratko govorili o kljuki pre-push
, ki je skript, ki ga lahko nastavimo, da se izvede pred končanjem potiskanja, da preveri, ali je potiskanje dovoljeno.
Na koncu, smo si v razdelku Potiskanje refspecov ogledali potiskanje z uporabo celotnega refspeca namesto splošnih bližnjic, ki se običajno uporabljajo. To vam lahko pomaga, da boste zelo specifični glede dela, ki ga želite deliti.
git remote
Ukaz git remote
je upravljavsko orodje za vaše zapise oddaljenih repozitorijev.
Omogoča vam, da dolge URL-je shranite kot kratke oprimke, kot je »origin«, tako da jih ni treba vedno vpisovati.
Lahko imate več takih oprimkov in ukaz git remote
se uporablja za dodajanje, spreminjanje in brisanje teh oprimkov.
Ta ukaz je podrobno opisan v razdelku Delo z daljavami, vključno s seznamom, dodajanjem, odstranjevanjem in preimenovanjem oprimku.
Uporablja se skoraj v vsakem nadaljnjem razdelku v knjigi, vendar vedno v standardnem formatu git remote add <name> <url>
.
git archive
Ukaz git archive
se uporablja za ustvarjanje stisnjene arhivske datoteke določenega posnetka projekta.
git archive
smo uporabili za ustvarjanje stisnjega arhiva tar (angl. tarball) projekta za deljenje v Priprava izdaje.
git submodule
Ukaz git submodule
se uporablja za upravljanje zunanjih repozitorijev znotraj normalnih repozitorijev.
To bi lahko bilo za knjižnice ali druge vrste skupnih virov.
Ukaz submodule
ima več podukazov (add
, update
, sync
itd.) za upravljanje teh virov.
Ta ukaz je omenjen in v celoti pokrit samo v razdelku Podmoduli.