You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/01-introduction/sections/about-version-control.asc
+15-15Lines changed: 15 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -27,33 +27,33 @@ Ang RCS ay gumagana sa pamamagitan ng paglagay ng mga grupo ng mga tagpi (ito ay
27
27
==== Mga Sentralisadong Bersyon Kontrol na mga Sistema
28
28
29
29
(((version control,centralized)))
30
-
Ang sunod na pangunahing problema na nararanasan ng mga tao ay ang pangangailangan na makipagtulungan sa ibang mga developer na nasa ibang mga sistema.
31
-
Para malutas ang problemang ito, nagawa ang Centralized Version Control na mga Sistema (CVCSs).
30
+
Ang susunod na pangunahing problema na nararanasan ng mga tao ay ang pangangailangang makipagtulungan sa ibang mga developer na nasa ibang mga sistema.
31
+
Para malutas ang problemang ito, nagawa ang Sentralisadong Bersyon Kontrol na mga Sistema (CVCSs).
32
32
Ang mga sistemang ito, gaya ng CVS, Subversion, at Perforce, ay mayroong isang server na naglalaman ng lahat ng mga nakabersyon na mga files, at mga iilang bilang ng mga kliyente na nagsusuri sa mga files mula sa sentrong lugar na ito. (((CVS)))(((Subversion)))(((Perforce)))
33
-
Sa maraming mga taon, ito ang naging pamatayan para sa version control.
33
+
Sa maraming mga taon, ito ang naging pamatayan para sa bersyon kontrol.
34
34
35
35
.Centralized na version control.
36
-
image::images/centralized.png[Centralized version control diagram]
36
+
image::images/centralized.png[Diagram sa Sentralisadong bersyon kontrol]
37
37
38
-
Ang setup na ito ay nagbubunga ng napakaraming pakinabang, lalong lano kapag lokal na mga VCS.
38
+
Ang setup na ito ay nagbubunga ng napakaraming pakinabang, lalong lano kapag nasa lokal na mga VCS.
39
39
Halimbawa, kahit na sino ay may nalalaman kung ano ang ginagawa ng kahit na sinong nasa proyekto.
40
-
Ang mga tagapangasiwa ay mayroong fine-grained na kontrol sa kung sino ang makakagawa nito, at ito ay sobra ka napakadaling pangasiwaan kung ihambing sa pag-susuri sa mga lokal na mga database sa bawat kliyente.
40
+
Ang mga tagapangasiwa ay mayroong pinong-grano na kontrol sa kung sino ang makakagawa nito, at ito ay sobra ka napakadaling pangasiwaan kung ihambing sa pag-susuri sa mga lokal na mga database ng bawat kliyente.
41
41
42
42
Gayunman, ang setup na ito ay mayroon ding mga seryosong negatibong epekto.
43
-
Ang pinakahalata ay ang single point of failure na kinakatawan ng mga sentralisadong server.
44
-
Kung ang server na iyan ay hindi magagamit sa loob ng isang oras, sa oras na iyan walang sinuman ang maaaring makipag-collaborate o mag-save ng mga nakabersyon na mga pagbabago sa kahit anong tinatrabaho nila.
45
-
Kung ang hard disk ng sentrong database ay naging corrupted, at walang itinago na mga tamang backup, mawawala sa iyo ang lahat -- ang buong kasaysayan ng proyekso maliban na lang sa mga single snapshops na meron ang iba sa kanilang mga lokal na makina.
43
+
Ang pinakahalata ay ang isang punto ng pagpalya na kinakatawan ng mga sentralisadong server.
44
+
Kung ang server na iyan ay hindi magagamit sa loob ng isang oras, sa oras na iyan walang sinuman ang maaaring makipag-tulungan o mag-save ng mga nakabersyon na mga pagbabago sa kahit anong tinatrabaho nila.
45
+
Kung ang hard disk ng sentrong database ay naging bulok, at walang itinago na mga tamang backup, mawawala sa iyo ang lahat -- ang buong kasaysayan ng proyekto maliban na lang sa mga nag-iisang mga larawan na meron ang iba sa kanilang mga lokal na makina.
46
46
Ang Lokal na VCS na mga sistema ay mayroon ding parehong problema -- kung nasa isang lugar ang buong kasaysayan ng proyekto, maaari mong mawala ang lahat.
47
47
48
-
==== Distributed na Version Control na mga Sistema
48
+
==== Nakabahagi na Bersyon Kontrol na mga Sistema
49
49
50
50
(((version control,distributed)))
51
-
Ito ay kung saan dumating ang Distributed Version Control Systems (DVCSs).
52
-
Sa isang DVCS (gaya ng Git, Mercurial, Bazaar o Darcs), ang mga kliyente ay hindi lang basta mag-checkout sa pinakabagong snapshot ng mga files; sa halip, tuluyan nilang kinopya ang repository, kalakip na ang buong kasaysayan nito. Kaya naman, kung may mamamatay na server, at ang mga sistemang ito ay nakikipag-collaborate sa pamamagitan ng server na iyo, ang kahit alin sa mga repository ng mga kliyente ay maaaring kopyahin papunta sa server para ma-restore ito.
51
+
Ito ay kung saan dumating ang mga sistema ng Nakabahaging Bersyon Kontrol (DVCSs).
52
+
Sa isang DVCS (gaya ng Git, Mercurial, Bazaar o Darcs), ang mga kliyente ay hindi lang basta mag-checkout sa pinakabagong kuha ng mga files; sa halip, tuluyan nilang kinopya ang buong repository, kalakip na ang buong kasaysayan nito. Kaya naman, kung may mamamatay na server, at ang mga sistemang ito ay nakikipag-tulungan sa pamamagitan ng server na iyon, ang kahit alin sa mga repository ng mga kliyente ay maaaring kopyahin papunta sa server para ma-restore ito.
53
53
Bawat kopya ay talagang isang buong backup ng lahat ng mga datos.
54
54
55
55
.Distributed na version control.
56
-
image::images/distributed.png[Distributed version control diagram]
56
+
image::images/distributed.png[Diagram ng nakabahaging Bersyon Kontrol]
57
57
58
-
Higit pa dito, karamihan sa mga sistemang ito ay mahusay sa pagkaroon ng iilang mga remote repository na magagamit nila, kaya maaari kang makipag-collaborate sa iba't ibang mga grupo ng tao sa iba't ibang pamamaraan ng sabay-sabay sa isang parehong proyekto.
59
-
Nagbibigay daan ito para ma-setup mo ang iilang tipo ng mga workflow na hindi posible sa isang sentralisadong mga sistema, gaya ng hierarchical na mga modelo.
58
+
Higit pa dito, karamihan sa mga sistemang ito ay mahusay sa pagkaroon ng iilang mga malayong mga repository na magagamit nila, kaya maaari kang makipag-tulungan sa iba't ibang mga grupo ng tao sa iba't ibang pamamaraan ng sabay-sabay sa isang parehong proyekto.
59
+
Nagbibigay daan ito para maitakdo mo ang iilang tipo ng mga proseso na hindi posible sa isang sentralisadong mga sistema, gaya ng nakaherarkiyang na mga modelo.
Copy file name to clipboardExpand all lines: book/01-introduction/sections/basics.asc
+30-30Lines changed: 30 additions & 30 deletions
Original file line number
Diff line number
Diff line change
@@ -1,55 +1,55 @@
1
1
=== Pangunahing Kaalaman sa Git
2
2
3
-
Kaya, ano ang Git sa madaling salita?
4
-
Ito ay isang importanteng bahagi na kailangang makuha mo, dahil kung nauunawaan mo kung ano ang Git at ang mga pangunahing kaalaman kung paano ito gumagana, mas madali para sa iyo ang epektibong paggamit ng Git. Habang natututo ka ng Git, subukang linisin ang iyong isipan tungkol sa mga bagay na nalalaman mo tungkol sa ibang VCSs, gaya ng CVS, Subversion o Perforce -- sa ganitong paraan makakatulong itong maiwasan ang maliliit na kalituhan sa paggamit ng kagamitan.
5
-
Kahit na ang user interface ng Git ay kapareho lang sa ibang VCSs, ang Git ay nag-store at nag-iisip tungkol sa mga impormasyon sa isang kakaibang pamamaraan, at ang pag-uunawa sa mga kaibahang ito ay makakatulong sa iyo na maiwaasan ang ang pagkalito bahang gumagamit nito.(((Subversion)))(((Perforce)))
3
+
Kaya, ano ang Git sa madaliang salita?
4
+
Ito ay isang importanteng bahagi na kailangan mong makuha, dahil kung nauunawaan mo kung ano ang Git at ang mga pangunahing kaalaman kung paano ito gumagana, mas madali na para sa iyo ang epektibong paggamit ng Git. Habang natututo ka ng Git, subukang linisin ang iyong isipan tungkol sa mga bagay na nalalaman mo tungkol sa ibang VCSs, gaya ng CVS, Subversion o Perforce -- sa ganitong paraan makakatulong itong maiwasan ang maliliit na kalituhan sa paggamit ng kagamitang ito.
5
+
Kahit na ang user interface ng Git ay kapareho lang sa ibang VCSs, ang Git ay nag-store at nag-iisip tungkol sa mga impormasyon sa isang kakaibang pamamaraan, at ang pag-uunawa sa mga kaibahang ito ay makakatulong sa iyo na maiwaasan ang ang pagkalito habang gumagamit nito.(((Subversion)))(((Perforce)))
6
6
7
-
==== Mga Snapshot, Hindi Mga Kaibahan
7
+
==== Mga Kuha, Hindi Mga Kaibahan
8
8
9
9
Ang pangunahing kaibahan ng Git sa kahit anong VCS (Subversion at kalakip ang mga kaabigan nito) ay ang pag-iisip ng Git tungkol sa mga datos nito.
10
-
Kung iisipin, karamihan sa ibang mga sistema ay nag-store na mga impormasyon sa isang lista ng mga pagbabago ayon sa file.
11
-
Ang ibang mga sistemang ito (CVS, Subversion, Perforce, Bazaar, at iba pa) ay nag-iisip sa mga impormasyon na kanilang ini-store bilang isang grupo ng mga file at ang mga pagbabagong nagawa sa bawat file sa paglibas ng panahon (ito ay karaniwang inilarawang bilang _delta-based_ na version control).
10
+
Kung iisipin, karamihan sa ibang mga sistema ay naglakip na mga impormasyon sa isang lista ng mga pagbabago ayon sa file.
11
+
Ang ibang mga sistemang ito (CVS, Subversion, Perforce, Bazaar, at iba pa) ay nag-iisip sa mga impormasyon na kanilang inilakip bilang isang grupo ng mga file at ang mga pagbabagong nagawa sa bawat file sa paglipas ng panahon (ito ay karaniwang inilarawang bilang _nakabase sa delta_ na bersyon kontrol).
12
12
13
-
.Ang pag-store na mga datos bilang pagbabago sa base na bersyon ng bawat file.
14
-
image::images/deltas.png[Ang pag-store na mga datos bilang pagbabago sa base na bersyon ng bawat file.]
13
+
.Ang pag-tago na mga datos bilang pagbabago sa pangunahing bersyon ng bawat file.
14
+
image::images/deltas.png[Ang pag-store na mga datos bilang pagbabago sa pangunahing bersyon ng bawat file.]
15
15
16
-
Ang Git ay hindi nag-iisip o nag-store na mga datos nito sa ganitong paraan.
17
-
Sa halip, inisip ng Git ang mga datos nito bilang isang serye ng mga snapshot sa isang miniature na filesystem.
18
-
Sa Git, bawat beses na mag-commit ka, o mag-save ng estado ng iyong proyekto, ang Git ay para lang kumukuha ng larawan kung ano ang hitsura ng lahat ng iyong mga file sa oras na iyon at nag-store ng isang reference sa snapshot na ito.
19
-
Para mas mabisa, kung ang mga file ay hindi naabago, ang Git ay hindi ulit mag-store ng file, isang link lang sa dating kaparehong file na nai-store na nito.
20
-
Ang Git ay nag-iisip sa mga datos nito gaya ng isang *daloy ng mga snapshots*.
16
+
Ang Git ay hindi nag-iisip o nagtago na mga datos nito sa ganitong paraan.
17
+
Sa halip, inisip ng Git ang mga datos nito bilang isang serye ng mga larawan sa isang pinaliit na sistema ng mga file.
18
+
Sa Git, bawat beses na mag-commit ka, o mag-save ng estado ng iyong proyekto, ang Git ay para lang kumukuha ng larawan kung ano ang hitsura ng lahat ng iyong mga file sa oras na iyon at nagtago ng isang reperensya sa larawan na ito.
19
+
Para mas mabisa, kung ang mga file ay hindi nababago, ang Git ay hindi ulit magtago ng file, isang link lang sa dating kaparehong file na nai-store nito.
20
+
Ang Git ay nag-iisip sa mga datos nito gaya ng isang *daloy ng mga larawan*.
21
21
22
-
.Ang pag-store ng mga datos bilang mga snapshot sa paglipas ng panahon.
23
-
image::images/snapshots.png[Ang Git ay nag-store ng mga datos bilang mga snapshot sa paglipas ng panahon.]
22
+
.Ang pag-store ng mga datos bilang mga larawan sa paglipas ng panahon.
23
+
image::images/snapshots.png[Ang Git ay nag-store ng mga datos bilang mga larawan sa paglipas ng panahon.]
24
24
25
25
Ito ay isang importanteng kaibahan ng Git at sa halos lahat ng ibang mga VCSs.
26
-
Nagpapa-reconsider ito sa Git sa halos bawat aspeto ng version control na kadalasang kinopya ng karamihan sa ibang mga sistema mula sa nakaraang henerasyon.
27
-
Ito ang dahilan kung bakit ang Git ay parang isang mini filesystem na may mga lubhang malalakas na mga kagamitan na nabuo sa taas nito, sa halip na isang simpleng VCS lang.
26
+
Ito ang naging dahilin na nakapag-isip ang Git sa halos bawat aspeto ng bersyon kontrol na kadalasang kinopya ng karamihan sa ibang mga sistema mula sa nakaraang henerasyon.
27
+
Ito ang dahilan kung bakit ang Git ay parang isang maliit na sistema ng mga file na may mga lubhang malalakas na mga kagamitan na nabuo sa taas nito, sa halip na isang simpleng VCS lang.
28
28
Tutuklasin natin ang iilang sa mga benepisyo na makukuha mo sa pag-iisip ng iyong mga datos sa ganitong paraan kapag nadaanan na natin ang Git branching sa <<_git_branching#_git_branching>>.
29
29
30
-
==== Halos Bawat Operasyon ay Lokal
30
+
==== Halos Bawat Operasyon ay Nasa Lokal
31
31
32
-
Karamihan sa mga operasyon sa Git ay nangangailangan lang ng mga lokal na mga files at mga resources para makapag-operate --- sa pangkalahatan, walang impormasyon ang kinakailangan mula sa ibang kompyuter na nasa iyong network.
33
-
Kung ikaw ay nasanay na sa isang CVCS kung saan karamihan sa mga operasyon ay mayroong network latency na overhead, ang aspetong ito na Git ay magpapaisip sa iyo na ang Git ay pinalanginan ng mga diyos ng bilis ng kapangyarihan na wala sa mundong ito.
34
-
Dahil mayroon kang buong kasaysayan ng proyekto sa iyong local disk, karamihan sa mga operasyon ay nagagawa agad.
32
+
Karamihan sa mga operasyon sa Git ay nangangailangan lang ng mga lokal na mga files at mga kasangkapan para makapagpatakbo --- sa pangkalahatan, walang impormasyon ang kinakailangan mula sa ibang kompyuter na nasa iyong network.
33
+
Kung ikaw ay nasanay na sa isang CVCS kung saan karamihan sa mga operasyon ay mayroong network latency na overhead, ang aspetong ito ng Git ay magpapaisip sa iyo na ang Git ay pinalanginan ng mga diyos ng bilis ng kapangyarihan na wala sa mundong ito.
34
+
Dahil mayroon kang buong kasaysayan ng proyekto sa iyong lokal na disk, karamihan sa mga operasyon ay nagagawa agad.
35
35
36
-
Halimbawa, para mag-browse ng kasasayan ng proyekto, hindi kinakailangan ng Git na pumunta pa sa server para makuha ang kasaysayan at para ipakita ito para sa iyo -- simpleng binabasa lang nito ito mula sa iyong local na database.
36
+
Halimbawa, para maghanap ng kasasayan ng proyekto, hindi kinakailangan ng Git na pumunta pa sa server para makuha ang kasaysayan at para ipakita ito para sa iyo -- simpleng binabasa lang nito mula sa iyong lokal na database.
37
37
Ibig sabihin nito na makikita mo ang kasaysayan ng proyekto kaagad.
38
-
Kung gusto mong makita ang mga pagbabago na dinagdag sa kasalukuyang bersyon ng isang file at ang file sa nakaraang buwan, ang Git ay maaring maghanap sa file sa nakaraang buwan at gumawa ng kalkulasyon sa lokal na kaibahan, sa halip na magtanong pa sa isang remote na server para gawin ito o kumuha pa ng lumang bersyon ng file mula sa remote server para magawa ito sa lokal.
38
+
Kung gusto mong makita ang mga pagbabago na dinagdag sa kasalukuyang bersyon ng isang file at ang file sa nakaraang buwan, ang Git ay maaring maghanap sa file sa nakaraang buwan at gumawa ng kalkulasyon sa lokal na kaibahan, sa halip na magtanong pa sa isang remote na server para gawin ito o kumuha pa ng lumang bersyon ng file mula sa malayong server para magawa ito sa lokal.
39
39
40
40
Ibig sabihin din nito na mayroong maliit lang na na mga bagay ang hindi mo magagawa kung ikaw ay offline o naka-off ang VPN.
41
-
Kung ikaw ay sumakay ng eroplano o ng tren at gusto mong magtrabaho ng kaunti, maaari kang masayang mag-commit (sa iyong _local_ na kopya, naalala mo?) hanggang sa magkakaroon ka ng network connection para makapag-upload.
41
+
Kung ikaw ay sumakay ng eroplano o ng tren at gusto mong magtrabaho ng kaunti, maaari kang masayang mag-commit (sa iyong _local_ na kopya, naalala mo?) hanggang sa magkakaroon ka ng network na koneksyon para makapag-upload.
42
42
Kung nakauwi ka na at hindi mo mapatakbo ng mahusay ang iyong VPN client, makakatrabaho ka pa rin.
43
43
Sa karamihan sa mga ibang sistema, ang paggagawa nito ay imposible o mahirap.
44
44
Sa Perforce, halimbawa, wala kang masyadong magawa kung ikaw ay hindi konektado sa server; at sa Subversion at CVS, maaari kang mag-edit ng mga files, ngunit hindi mo maaaring i-commit ang iyong mga binago sa iyong database (dahil ang iyong database ay offline).
45
-
Parang maliit lang ito na bagay, ngunit masurpresa ka sa malaking pagbabago na magawa nito.
45
+
Parang maliit lang ito na bagay, ngunit masusurpresa ka sa malaking pagbabago na magawa nito.
46
46
47
47
==== Ang Git ay Mayroong Integridad
48
48
49
-
Lahat nang nasa Git ay naka check-sum bago ito i-store at pagkatapos ay ini-refer naman ng checksum na iyon.
49
+
Lahat nang nasa Git ay naka check-sum bago ito itinago at pagkatapos ay binigyan na naman ng check-sum.
50
50
Ibig sabihin nito, imposibleng mabago ang mga nilalaman ng kahit anong file o directory nang hindi malalaman ng Git.
51
-
Ang functionality na ito ay ginawa sa Git sa pinakamababang antas at isang mahalagang bahagi ng pilosopiya nito.
52
-
Hindi ka maaaring mawalan ng imprrmasyon agad-agad o makaranas ng file corruption nang hindi nadedetect ng Git.
51
+
Ang gawaing na ito ay ginawa ng Git sa pinakamababang antas at isang mahalagang bahagi ng pilosopiya nito.
52
+
Hindi ka maaaring mawalan ng impormasyon agad-agad o makaranas ng pagkabulok ng file nang hindi nalalaman ng Git.
53
53
54
54
Ang mekanismo na ginagamit ng Git para sa pag-checksum ay tinatawag na SHA-1 na hash.((SHA-1)))
55
55
Ito ay isang 40-karakter na string na binubuo ng mga hexadecimal na mga karakter (0-9 at a-f) at nakuha ayon sa mga nilalaman ng isang file o directory na istraktura sa Git.
@@ -60,8 +60,8 @@ Ang SHA-1 na hash ay parang ganito:
60
60
24b9da6552252987aa493b52f8696cd6d3b00373
61
61
----
62
62
63
-
Makikita mo na ang mga hash values na ito ay nasa iba't ibang lugar sa Git dahil ito ay palaging gumagamit sa mga ito.
64
-
Sa katunayan, ang Git ay nagstore sa lahat ng nasa database nito hindi ayon sa file name ngunit sa pamamagitan ng hash_value ng nilalaman nito.
63
+
Makikita mo na ang mga halaga ng hash na ito ay nasa iba't ibang lugar sa Git dahil ito ay palaging gumagamit sa mga ito.
64
+
Sa katunayan, ang Git ay nagtago nito sa lahat ng nasa database nito hindi ayon sa pangalan ng file ngunit sa pamamagitan ng hash_value ng nilalaman nito.
0 commit comments