Git
Chapters ▾ 2nd Edition

4.2 Git на Сервер - Добивање на Git на сервер

Добивање на Git на сервер

Сега ние ќе покриеме поставување на Git услуга која ги извршува овие протоколи на вашиот сопствен сервер.

Note

Овде ќе ги демонстрираме командите и чекорите потребни за извршување на основни, поедноставени инсталации на сервер базиран на Линукс, иако е можно да се извршуваат овие услуги на Mac или Windows сервери. Всушност, поставувањето на производствен сервер во вашата инфраструктура сигурно ќе повлече разлики во безбедносните мерки или алатки на оперативниот систем, но се надевам дека ова ќе ви даде општа идеја за тоа што е вклучено.

Со цел првично да го поставите секој Git сервер, мора да извезувате постоечки репозиториум во ново голи репозиториум - складиште кое не содржи работен директориум. Ова е генерално едноставно да се направи. За да го клонирате вашето складиште за да создадете ново голи репозитори, ја извршувате командата за клонови со опцијата --bare. Со конвенција, имињата на голиот репозиториум завршуваат со суфиксот .git, така да:

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

Сега треба да имате копија од податоците од директориумот Git во директориумот my_project.git.

Ова е приближно еднакво на нешто како

$ cp -Rf my_project/.git my_project.git

Има неколку мали разлики во конфигурациската датотека, но, за ваша цел, ова е близу до истото. Ги зема складиштето Git самостојно, без работен директориум, и создава директориум специфично само за тоа.

Putting the Bare Repository on a Server

Сега кога имате голи копии од вашето складиште, се што треба да направите е да го ставите на сервер и да ги поставите вашите протоколи. Да речеме дека сте поставиле сервер наречен git.example.com на кој имате SSH пристап и сакате да ги зачувате сите ваши репозиториуми на Git под директориумот` / srv / git`. Под претпоставка дека / srv / git постои на тој сервер, можете да го поставите новото складиште преку копирање на голиот репозиториум:

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

Во овој момент, други корисници кои имаат пристап до читање на SSH на директориумот / srv / git на тој сервер може да клонираат вашето складиште со трчање

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

Ако корисник SSHs во сервер и има пристап за запишување во директориумот / srv / git / my_project.git, тие исто така автоматски ќе имаат пристап до притискање.

Git автоматски ќе додаде дозволи за групен запис во складиштето ако ја извршите командата git init со опцијата` --shared`.

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

Гледате колку е лесно да преземете Git складиште, да создадете голи верзија и да го поставите на сервер на кој вие и вашите соработници имате SSH пристап. Сега сте подготвени да соработувате на истиот проект.

Важно е да се напомене дека ова е буквално се што треба да направите за да го направите корисниот Git сервер на кој неколку луѓе имаат пристап - едноставно додадете SSH-сметки на сервер и ставете го готовиот репозиториум некаде на кој сите тие корисници имаат прочитано и запишете пристап до. Подготвен да одиш - ништо друго не е потребно.

Во следните неколку одделенија, ќе видите како да се прошири кон пософистицирани поставувања. Оваа дискусија ќе вклучува нема да креирате кориснички сметки за секој корисник, додавајќи јавен пристап за читање до складиштата, поставување на веб интерфејси и повеќе. Сепак, имајте на ум дека за да соработувате со неколку луѓе на приватен проект, сите што need е SSH сервер и голиот складиште.

Мали поставувања

Ако сте мала облека или едноставно го испробате Git во вашата организација и имате само неколку програмери, работите може да бидат едноставни за вас. Еден од најкомплицираните аспекти на поставување на Git серверот е управување со корисници. Ако сакате некои складишта да се читаат само за одредени корисници и да читаат / пишуваат за други, пристапот и дозволите може да бидат потешко да се организираат.

SSH пристап

Ако имате сервер на кој сите ваши програмери веќе имаат пристап до SSH, обично е најлесно да го поставите вашето прво складиште таму, затоа што морате да направите речиси никаква работа (како што е наведено во последниот дел). Ако сакате повеќе комплексни дозволи за контрола на пристап на вашите складишта, можете да ги справи со нормалните дозволи на датотечниот систем на оперативниот систем на вашиот сервер.

Ако сакате да ги ставите вашите складишта на сервер кој нема сметки за сите во вашиот тим за кого сакате да му дадете пристап за запишување, тогаш мора да поставите SSH пристап за нив. Претпоставуваме дека ако имате сервер со кој ќе го направите ова, веќе имате инсталирано SSH сервер, и така пристапувате до серверот.

Постојат неколку начини на кои можете да им дадете пристап на сите во вашиот тим. Првиот е да поставите сметки за сите, што е јасно, но може да биде незгодно. Можеби не сакате да стартувате adduser и да поставите привремени лозинки за секој корисник.

Вториот метод е да се создаде единствена git корисничка сметка на машината, да се побара од секој корисник кој треба да има пристап за запишување да ви испрати јавен клуч SSH и да го додаде тој клуч во датотеката "~ / .ssh / authorized_keys" на таа нова сметка. Во тој момент, секој ќе може да пристапи до таа машина преку git сметката. Ова не влијае на податоците за извршување на било кој начин - корисникот на SSH што го поврзувате како што не влијае на обврските што сте ги снимиле.

Друг начин да го направите тоа е вашиот SSH сервер да биде автентичен од LDAP-сервер или некој друг централизиран извор за автентикација кој можеби веќе сте го поставиле. Додека секој корисник може да добие школка пристап на машината, било кој SSH автентикација механизам може да се мисли на треба да работи.