Git at Pagbagsak

Anonim

Habang ang mga repositoryo ng Subversion (SVN) ay katulad ng mga repository ng Git, ang pagkakaiba sa pagitan ng dalawang ay medyo banayad. Parehong ang dalawang pinaka-popular na mga sistema ng kontrol sa bersyon na magagamit upang masubaybayan ang mga pagbabago sa source code sa paglipas ng panahon, ngunit mayroon silang makatarungang bahagi ng mga pagkakaiba sa mga tuntunin ng arkitektura. Maaari silang gumawa ng mga katulad na bagay tulad ng pagta-tag at pagsasabog, ngunit naiiba ang pagkakaiba sa kung paano sila nag-iimbak ng mga bagay. Ang Git ay isang libre at open-source na bersyon ng sistema ng kontrol na ipinamamahagi sa ilalim ng lisensya ng GNU, samantalang ang SVN ay isang sentralisadong bersyon ng sistema ng kontrol na ipinamamahagi sa ilalim ng open-source license. Binibigyang-diin ng artikulong ito ang ilang mahahalagang pagkakaiba sa pagitan ng dalawa.

Ano ang Git?

Sa una nilikha para sa pagpapaunlad ng kernel ng Linux ni Linus Torvalds gamit ang isang pagmamay-ari na DVCS na tinatawag na BitKeeper, ang Git ay nag-udyok sa isang bagong antas ng collaborative coding sa komunidad ng mga developer. Ang Git ay isa sa mga pinaka-popular na tool na ginagamit sa halos libu-libong mga proyekto at pinagtibay ng milyun-milyong mga developer sa buong mundo. Ito ay isang ipinamamahagi na bersyon ng control system na dinisenyo upang panatilihin ang mga tab sa mga pagbabago sa source code sa paglipas ng panahon sa pamamagitan ng pagpapanatili ng isang espesyal na uri ng database na tinatawag na ang lokal na repository na kung saan ay ang eksaktong clone ng gitnang repository na nagpapahintulot sa mga gumagamit upang iimbak ang parehong kasalukuyan at nakaraang mga kasaysayan ng bersyon ng mga file sa kanilang mga lokal na machine. Ang pangunahing bentahe ng Git ay hindi ito nakasalalay sa pag-access sa network para sa mga operasyon nito na nagsisiguro ng integridad ng nilalaman.

Ano ang Pagbagsak?

Ang pagbabagsak, o SVN, ay isang malayang at open-source na bersyon ng sistema ng kontrol na ginagamit upang pamahalaan at mag-imbak ng mga file, at ang mga pagbabagong ginawa sa kanila sa paglipas ng panahon sa isang sentralisadong server. Ito ay ipinamamahagi sa ilalim ng lisensya ng Apache bilang open source. Itinatag ng CollabNet noong 2000, ang SVN ay nakapalibot sa loob ng higit sa isang dekada at patuloy na tinatangkilik ang malaganap na pag-aampon bilang isang matagumpay na tool ng VCS sa parehong open source community at corporate ecosystem. Hindi tulad ng Git, iniimbak ng SVN ang mga kasaysayan ng bersyon ng mga file sa isang sentralisadong server. Lumilikha ito ng mga sangay sa loob ng sentral na repository na ibinibigay bilang mga direktoryo. Kapag nais ng isang user na gumawa ng mga pagbabago sa code, ginagawa nila ito mula sa kanilang sariling mga machine at kapag tapos na ito, itulak nila ang code pabalik sa central repository.

Pagkakaiba sa pagitan ng Git at Pagbagsak

Mga Pangunahing Kaalaman ng Git at Pagbagsak

Habang pareho ang dalawang pinakasikat na open-source version control software na ginagamit upang mapanatili ang mga tab sa mga pagbabago sa source code sa paglipas ng panahon, ang mga ito ay ibang-iba sa bawat isa. Ang Git ay isang ipinamamahagi na bersyon ng control system na gumagamit ng isang ipinamamahagi na sistema upang i-catalog ang lahat ng mga bersyon ng isang file ng proyekto. Ang pagbabagsak (svn), sa kabilang banda, ay isang sentralisadong versioning at revision control system na ipinamamahagi sa ilalim ng open-source license.

Repository of Git and Subversion

Git ay isang ipinamamahagi bersyon ng control system kahulugan kaysa sa paggamit ng isang sentralisadong server upang mag-imbak at pamahalaan ang source code, lumilikha ito ng isang lokal na repository na walang anuman kundi ang clone ng gitnang repository na nagpapahintulot sa mga developer na gumawa ng mga pagbabago ng buong bagay nang lokal. Binubuo ang lokal na imbakan ng lahat mula sa mga kasaysayan ng bersyon hanggang sa mga sanga sa metadata, lahat. Sa kabilang banda, kapag nagpapatupad ang mga developer sa pagbabagsak, ipinapadala nila ang lahat ng mga pagbabago pabalik sa central repository.

Pamamahagi ng Git at Pagbagsak

Kapag nag-check ang mga user ng isang repository sa Git, nakakakuha sila ng kumpletong clone ng buong bagay na nakaimbak sa kanilang mga lokal na machine. Kailangan nilang "itulak" ang mga pagbabagong ginawa sa code upang ibahagi ito sa iba pang mga gumagamit, o "pull" upang i-sync ito sa isang remote repository. Ginagawa nitong madali para sa maraming mga gumagamit na makipagtulungan nang hindi nakakagambala sa central repository. Sa pagbabagsak, ang bawat gumagamit ay nagbabahagi ng parehong sentral na repository sa pamamagitan ng pagsalakay.

Dependability ng Git at Subversion ng Network

Ang Git ay hindi bababa sa mapagkakatiwalaan sa pag-access sa network dahil karamihan sa mga operasyon nito ay available offline. Ang mga gumagamit ay maaaring gumawa ng pagsasama, rebase, at sumasanga nang walang kahit na nababahala tungkol sa pag-access sa network. Gayunpaman, ang network ay kinakailangan lamang kapag kailangan ng mga user na i-sync ang kanilang lokal na imbakan sa gitnang imbakan. Ang pagbabagsak, sa kabilang banda, ay nangangailangan ng access sa network para sa karamihan ng mga operasyon nito sapagkat wala itong lokal na imbakan upang iimbak ang mga pagbabago sa isang lugar.

Nilalaman Integridad ng Git at pagbabagsak

Lahat ng bagay sa Git ay cryptographically check-summed gamit ang algorithm SHA-1 hash bago ito ay naka-imbak na tinitiyak ang katatagan ng mga nilalaman ng code. Ginagawang halos imposible na baguhin ang mga nilalaman ng code nang walang nalalaman tungkol dito. Ang pagbabagsak, sa kabaligtaran, ay hindi magkaroon ng mga nilalaman na may hash na hindi nito ginagarantiya ang integridad ng nilalaman sa kaganapan ng network o disk failure. Ang Git ay walang alinlangan ang mas mahusay na alternatibo pagdating sa integridad ng nilalaman.

Git vs. Subversion: Tsart ng Paghahambing

Buod ng Pagbabagsak ng Git verses

Ang Git ay walang alinlangang isa sa mga pinaka-popular at malawak na ginamit na bersyon ng mga sistema ng kontrol na magagamit na partikular na idinisenyo upang mahawakan ang lahat mula sa maliliit hanggang sa malalaking proyekto. Ito ay isang open-source na ipinamamahagi bersyon control system na ginagamit upang mag-imbak at mapanatili ang mga pagbabago sa source code sa paglipas ng panahon sa isang lokal na repository na walang anuman kundi ang clone ng central repository. Ang SVN ay isang bersyon ng control system na ginagamit para sa karaniwang parehong layunin sa pagbubukod kung paano sila nag-iimbak ng mga bagay.Hindi tulad ng Git, ang SVN ay gumagamit ng isang sentralisadong server upang mapanatili ang kasalukuyan at naunang mga bersyon ng mga file tulad ng source code, dokumentasyon, mga web page, atbp. Isang mahusay na kalamangan Git ay may higit sa SVN ay ang mga gumagamit ng Git ay maaaring magkaroon ng kontrol na bersyon nang walang kahit na nag-aalala tungkol sa network access na kung saan ay lubos na malamang na hindi sa SVN.