Git
Chapters ▾ 2nd Edition

4.2 Git sa Server - Pagkuha ng Git sa isang Server

Pagkuha ng Git sa isang Server

Ngayon ay tatalakayin natin ang pag-set up ng isang serbisyo ng Git na nagpapatakbo ng mga protokol sa iyong sariling server.

Dito ipapakita namin ang mga mga utos at mga hakbang na kailangan upang gawin ang batayan, pinasimple na pag-install sa isang batay sa isang Linux na server, gayunman posible rin ipatakbo ang mga serbisyong ito sa mga MAC o Windows na server. Ang pag-setup ng server para sa produksyon sa loob ng iyong imprastraktura ay tiyak na may pagkakaiba sa mga hakbang sa seguridad o mga kagamitan ng operating system, ngunit sana ito ay magbibigay ng isang pangkalahatang ideya kung ano ang kasangkot.

Upang simulang ang pag-set up ng anumang server sa Git, kailangan mong mag-export ng isang umiiral na repository patungo sa isang payak na repositoryo — isang repositoryo na walang laman na gumagana na repositoryo. Ito ay sa pangkalahatan ay madaling gawin. Upang ma-clone ang iyong repositoryo upang makapaglikha ng bagong payak na repositoryo, ipapatakbo mo ang clone na utos gamit ang --bare` na opsyon. Sa pamamagitan ng kombensyon, ang mga pangalan ng payak na repositoryo ay nagtatapos sa suffix na .git, tulad nito:

$ git clone --bare my_project my_project.git
Cloning into bare repository 'my_project.git'...
done.

Dapat ngayon ay may kopya ka na sa datos ng direktoryo sa Git sa iyong my_project.git na direktoryo.

Ito ay halos katumbas sa katulad nito

$ cp -Rf my_project/.git my_project.git

Mayroong ilang mga maliit na kaibahan sa pagsasayos na file ngunit, para sa iyong layunin, ito ay isang clone ng parehong bagay. Kinukuha ang repositoryo ng Git mismo, walang isang gumagana na direktoryo, at maglikha ng isang direktoryo partikular para sa ito lamang.

Paglalagay ng Payak na Repositoryo sa isang Server

Ngayon na mayroon kanang isang payak na kopya ng iyong repositoryo, ang kailangan mo lamang gawin ay ilagay sa isang server at i-set up ang iyong mga protokol. Sabihin nating nakapag-setup ka ng isang server na ang tawag ay git.example.com na kung saan mayroon kang access sa SSH, at gusto mo iimbak lahat ng iyong mga repositoryo ng Git sa ilalamin ng direktoryo na /srv/git. Sa pag-aakala na ang /srv/git ay umiiral sa server, maaari kang mag-set up ng bagong repositoryo sa pamamagitan ng pag kopya ng iyong payak na repositoryo:

$ scp -r my_project.git user@git.example.com:/srv/git

Sa puntong ito, ang ibang mga gumagamit na mayroong read access na batay sa SSH sa /srv/git na direktoryo sa server ay maaring ma-clone ang iyong repositoryo sa pamamagitan ng pagpapatakbo ng

$ git clone user@git.example.com:/srv/git/my_project.git

Kung ang isang user ay nag-SSH patungo sa isang server at mayroong access sa pagsulat sa /srv/git/my_project.git na direktoryo, sila ay awtomatikong may access sa pag-push.

Ang Git ay awtomatikong magdadagdag ng pahintulot ng pagsulat sa grupo sa isang repositoryo kung ipapatakbo mo ang git init na utos kasama ang --shared na opsyon.

$ ssh user@git.example.com
$ cd /srv/git/my_project.git
$ git init --bare --shared

Nakikita mo kung gaano kadali kumuha ng isang Git na repositoryo, maglikha ng isang payak na bersyon, at ilagay ito sa isang server kung saan ikaw at iyong mga katulong ay mayroong SSH na access. Ngayon ay handa ka na mag tulungan sa parehong proyekto.

Mahalagang tandaan na ito lamang ang kailangan mong gawin upang makapagpatakbo ng isang kapaki-pakinabang na Git na server na kung saan ilang mga tao ang may access — magdagdag lamang ng mga SSH-able na mga account sa isang server, at maglagay ng isang payak na repositoryo na kung saan lahat ng mga gumagamit ay mayroong access sa pagbasa at access sa pagsulat. Handa ka ng magsimula — wala ng ibang kailangan.

Sa ilang susunod na mga seksyon, makikita mo kung paano palawakin ang mga setup sa mas sopistikadong paraan. Kasali sa diskusyon na ito ang hindi kinakailangang lumikha ng mga account ng gumagamit, pagdaragdag ng pampublikong access sa pag basa sa mga repositoryo, pag-set up ng mga Web UI at marami pa. Gayunpaman, tandaan upang makapagtulungan kasama ang ilang mga tao sa isang pribadong proyekto, ang kailangan lamang ay isang SSH na server at isang payak na repositoryo.

Maliit na mga Setup

Kung ikaw ay isang maliit na sangkap o sinusubukan lamang ang Git sa iyong organisasyon at mayroon lamang iilang mga developer, maaaring maging simple ang mga bagay para sayo. Ang isa sa pinaka-komplikadong aspeto sa pag-set up ng isang Git na server ay ang pamamahala sa mga gumagamit. Kung nais mong gawing read-only ang ibang repositoryo para sa mga ilang mga gumagamit at pagbasa/pagsulat sa iba, ang access at mga pahintulot ay maaaring maging mahirap isaayos.

Access sa SSH

Kung ikaw ay may server na kung saan lahat na iyong mga developer ay mayroong access sa SSH, sa pangkalahatan ay mas madali i-setup ang iyong unang repositoryo doon, kasi halos wala kang kailangan gawin (na tinalakay natin sa huling seksyon). Kung gusto mo ng mas kumplikadong pahintulot sa mga uri ng kontrol sa access sa iyong mga repositoryo, maaari mong hawakan gamit ang karaniwan na pahintulot ng filesystem ng operating system ng iyong server.

Kung gusto mong ilagay ang iyong mga repositoryo sa isang server na walang mga account para sa lahat ng nasa iyong koponan na gusto mo bigyan ng access sa pagsulat, kailangan mo mag set up ng access sa SSH para sa kanila. Ipinapalagay namin na kung ikaw ay mayroong server na kung saan kayang gawin ito, mayroon ka nang SSH server na naka-install, at ganun ganiyan ang paraan mo sa pag-access sa server.

Mayroong ilang paraan na makapgbibigay ka ng access sa lahat ng nasa iyong koponan. Ang una ay mag set up ng mga account para sa lahat, na kung saan ay diretsahan ngunit ay maaring maging masalimuot. Maaaring hindi mo nais ipatakbo ang adduser at magtakda ng mga pansamantala na password para sa bawat gumgamit.

Ang pangalawang paraan ay paglikha ng isang solong git na user account sa makina, tanungin ang lahat ng gumagamit na dapat magkaroon ng access sa pagsulat na i-send sayo ang pampublikong susi sa SSH, at idagdag ang susi na iyon sa ~/.ssh/authorized_keys na file ng bagong account na iyon. Sa puntong iyon, maaari ng i-access ng lahat ang makina na iyon sa pamamagitan ng git na account. Hindi ito nakakaapekto sa datos ng commit sa anumang paraan — Ang SSH na gumagamit na kumukonekta ka ay hindi nakakaapekto sa mga commit na iyong naitala.

Isa pang paraan ito ay ang pagpapatunay sa iyong SSH na server mula sa isang LDAP na server o sa ibang sentralisadong pagpapatunay na kung saan ay na-set up mo na. Hangga’t ang bawat gumagamit ay makakuha ng access sa shell sa makina, anumang mekanismo sa papapatunay ng SSH na maisip mo ay dapat gumana.