-
1. Почетак
- 1.1 О контроли верзије
- 1.2 Кратка историја програма Гит
- 1.3 Шта је Гит?
- 1.4 Командна линија
- 1.5 Инсталирање програма Гит
- 1.6 Подешавања за први пут
- 1.7 Тражење помоћи
- 1.8 Резиме
-
2. Основе програма Гит
- 2.1 Прављење Гит репозиторијума
- 2.2 Снимање промена над репозиторијумом
- 2.3 Преглед историје комитова
- 2.4 Опозив
- 2.5 Рад са удаљеним репозиторијумима
- 2.6 Означавање
- 2.7 Гит алијаси
- 2.8 Резиме
-
3. Гранање у програму Гит
- 3.1 Укратко о гранању
- 3.2 Основе гранања и спајања
- 3.3 Управљање гранама
- 3.4 Процеси рада са гранањем
- 3.5 Удаљене гране
- 3.6 Ребазирање
- 3.7 Резиме
-
4. Гит на серверу
- 4.1 Протоколи
- 4.2 Постављање програма Гит на сервер
- 4.3 Генерисање јавног SSH кључа
- 4.4 Подешавање сервера
- 4.5 Гит демон
- 4.6 Паметан HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Опције за хостовање које нуде трећа лица
- 4.10 Резиме
-
5. Дистрибуирани Гит
-
6. GitHub
-
7. Гит алати
- 7.1 Избор ревизија
- 7.2 Интерактивно стејџовање
- 7.3 Скривање и чишћење
- 7.4 Потписивање вашег рада
- 7.5 Претрага
- 7.6 Поновно исписивање историје
- 7.7 Демистификовани ресет
- 7.8 Напредно спајање
- 7.9 Rerere
- 7.10 Отклањање грешака са програмом Git
- 7.11 Подмодули
- 7.12 Паковање
- 7.13 Замена
- 7.14 Складиште акредитива
- 7.15 Резиме
-
8. Прилагођавање програма Гит
- 8.1 Конфигурисање програма Гит
- 8.2 Гит атрибути
- 8.3 Гит куке
- 8.4 Пример полисе коју спроводи програм Гит
- 8.5 Резиме
-
9. Гит и остали системи
- 9.1 Гит као клијент
- 9.2 Мигрирање на Гит
- 9.3 Резиме
-
10. Гит изнутра
- 10.1 Водовод и порцелан
- 10.2 Гит објекти
- 10.3 Гит референце
- 10.4 Pack фајлови
- 10.5 Рефспек
- 10.6 Протоколи за пренос
- 10.7 Одржавање и опоравак податак
- 10.8 Променљиве окружења
- 10.9 Резиме
-
A1. Додатак А: Програм Гит у другим окружењима
- A1.1 Графички интерфејси
- A1.2 Гит у Visual Studio
- A1.3 Гит у Visual Studio Code
- A1.4 Гит у IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Гит у Sublime Text
- A1.6 Гит унутар Bash
- A1.7 Гит у Zsh
- A1.8 Гит у Powershell
- A1.9 Резиме
-
A2. Додатак Б: Уграђивање програма Гит у ваше апликације
- A2.1 Гит из командне линије
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Додатак В: Гит команде
- A3.1 Подешавање и конфигурација
- A3.2 Набављање и креирање пројеката
- A3.3 Основно снимање
- A3.4 Гранање и спајање
- A3.5 Дељење и ажурирање пројеката
- A3.6 Инспекција и поређење
- A3.7 Отклањање грешака
- A3.8 Крпљење
- A3.9 Имејл
- A3.10 Спољни системи
- A3.11 Администрација
- A3.12 Водоводне команде
4.5 Гит на серверу - Гит демон
Гит демон
Сада ћемо подесити демон који сервира репозиторијуме преко „Гит” протокола. Ово је чест избор за брз неаутентификован приступ Гит подацима. Запамтите да ово није аутентификован сервис, и све што сервирате преко овог протокола ће бити јавно на тој мрежи.
Ако покрећете ово на серверу ван свог фајервола, требало би да га користите само за пројекте који су јавно видљиви свету. Ако је сервер који користите унутар фајервола, можете га користити за пројекте којима велики број људи или рачунара (континуална интеграција или сервери за изградњу) има приступ само за читање, а када не желите да додајете SSH кључ за свакога.
У сваком случају, Гит протокол је релативно једноставан за подешавање. У суштини, следећу команду треба да покренете демонизовану:
$ git daemon --reuseaddr --base-path=/opt/git/ /opt/git/
Опција --reuseaddr
дозвољава серверу да се рестартује, без потребе за чекањем да старе конекције прво истекну, опција --base-path
омогућава људима да клонирају пројекат без потребе да наводе комплетну путању, а путања на крају говори Гит демону где да тражи репозиторијуме за извоз.
Ако имате укључен фајервол, мораћете и да отворите порт 9418 на машини на којој ово подешавате.
Овај процес можете демонизовати на неколико начина, зависно од тога који оперативни систем извршавате на машини.
Пошто је systemd
најраспрострањенији систем за иницијализацију у модерним Линукс дистрибуцијама, можете га употребити за ову сврху.
[Unit]
Description=Start Git Daemon
[Service]
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
Restart=always
RestartSec=500ms
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=git-daemon
User=git
Group=git
[Install]
WantedBy=multi-user.target
Можда сте приметили да се овде Гит демон покреће тако да је git
и група и корисник.
Промените име тако да одговара вашим потребама и обезбедите да тај корисник постоји на систему.
Такође, проверите да ли се Гит бинарни фајл заиста налази у /usr/bin/git
, па у случају потребе, промените путању.
На крају, извршићете systemctl enable git-daemon
чиме се сервис аутоматски покреће приликом подизања система, а сервис можете да покренете и зауставите са systemctl start git-daemon
и systemctl stop git-daemon
респективно.
На осталим системима бисте могли да употребите xinetd
, скрипту у sysvinit
систему, или нешто друго — штагод вам омогућава да некако демонизујете комаду и да је надгледате.
Затим, програму Гит морате навести којим репозиторијумима треба да дозволи неаутентификован приступ базиран на Гит серверу.
То можете да урадите у сваком репозиторијуму тако што креирате фајл под именом git-daemon-export-ok
.
$ cd /path/to/project.git
$ touch git-daemon-export-ok
Присуство тог фајла говори програму Гит да је у реду да овај пројекат сервира без аутентификације.