-
1. Почеток
- 1.1 За верзиска контрола
- 1.2 Кратка историја на Git
- 1.3 Основи на Гит
- 1.4 Командната линија
- 1.5 Инсталирање на Git
- 1.6 First-Time Git Setup
- 1.7 Getting Help
- 1.8 Заклучок
-
2. Основите на Git
-
3. Гранење во Git
- 3.1 Гранење објаснето
- 3.2 Основно разгранување и спојување
- 3.3 Branch Management
- 3.4 Работни процеси
- 3.5 Далечински гранки
- 3.6 Ребаза
- 3.7 Заклучок
-
4. Git на Сервер
- 4.1 Протоколите
- 4.2 Добивање на Git на сервер
- 4.3 Генерирање на вашиот SSH јавен клуч
- 4.4 Поставување на серверот
- 4.5 Гит демон
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Опции за домаќини на трети лица
- 4.10 Заклучок
-
5. Дистрибуиран Git
- 5.1 Дистрибуирани работни процеси
- 5.2 Придонес кон проект
- 5.3 Приватен мал тим
- 5.4 Одржување на проект
- 5.5 Заклучок
-
6. GitHub
-
7. Git Алатки
- 7.1 Revision Selection
- 7.2 Интерактивно стажирање
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Напредно спојување
- 7.9 Rerere
- 7.10 Дебагирање со Git
- 7.11 Submodules
- 7.12 Збивање
- 7.13 Заменување
- 7.14 Складирање на ингеренции
- 7.15 Заклучок
-
8. Персонализација на Git
- 8.1 Git Configuration
- 8.2 Git Атрибути
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Заклучок
-
9. Git и други системи
- 9.1 Git како Клиент
- 9.2 Мигрирање кон Git
- 9.3 Заклучок
-
10. Внатрешноста на Git
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Заклучок
-
A1. Appendix A: Git во други околини
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in Powershell
- A1.7 Заклучок
-
A2. Appendix B: Вметнување на Git во вашите апликации
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
-
A3. Appendix C: Git команди
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
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 автентикација механизам може да се мисли на треба да работи.