-
1. Pagsisimula
-
2. Mga Pangunahing Kaalaman sa Git
-
3. Pag-branch ng Git
-
4. Git sa Server
- 4.1 Ang Mga Protokol
- 4.2 Pagkuha ng Git sa isang Server
- 4.3 Ang paglikha ng iyong Pampublikong Susi ng SSH
- 4.4 Pag-Setup ng Server
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Mga Opsyon ng Naka-host sa Third Party
- 4.10 Buod
-
5. Distributed Git
- 5.1 Distributed Workflows
- 5.2 Contributing to a Project
- 5.3 Maintaining a Project
- 5.4 Summary
-
6. GitHub
-
7. Mga Git na Kasangkapan
- 7.1 Pagpipili ng Rebisyon
- 7.2 Staging na Interactive
- 7.3 Pag-stash at Paglilinis
- 7.4 Pag-sign sa Iyong Trabaho
- 7.5 Paghahanap
- 7.6 Pagsulat muli ng Kasaysayan
- 7.7 Ang Reset Demystified
- 7.8 Advanced na Pag-merge
- 7.9 Ang Rerere
- 7.10 Pagdebug gamit ang Git
- 7.11 Mga Submodule
- 7.12 Pagbibigkis
- 7.13 Pagpapalit
- 7.14 Kredensyal na ImbakanCredential Storage
- 7.15 Buod
-
8. Pag-aangkop sa Sariling Pangangailagan ng Git
- 8.1 Kompigurasyon ng Git
- 8.2 Mga Katangian ng Git
- 8.3 Mga Hook ng Git
- 8.4 An Example Git-Enforced Policy
- 8.5 Buod
-
9. Ang Git at iba pang mga Sistema
- 9.1 Git bilang isang Kliyente
- 9.2 Paglilipat sa Git
- 9.3 Buod
-
10. Mga Panloob ng GIT
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 Ang Refspec
- 10.6 Transfer Protocols
- 10.7 Pagpapanatili At Pagbalik ng Datos
- 10.8 Mga Variable sa Kapaligiran
- 10.9 Buod
-
A1. Appendix A: Git in Other Environments
- A1.1 Grapikal Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git sa Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git sa Powershell
- A1.7 Summary
-
A2. Appendix B: Pag-embed ng Git sa iyong Mga Aplikasyon
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
-
A3. Appendix C: Mga Kautusan ng Git
- A3.1 Setup at Config
- A3.2 Pagkuha at Paglikha ng Mga Proyekto
- A3.3 Pangunahing Snapshotting
- A3.4 Branching at Merging
- A3.5 Pagbabahagi at Pagbabago ng mga Proyekto
- A3.6 Pagsisiyasat at Paghahambing
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Pagtutuberong mga Utos
4.5 Git sa Server - Git Daemon
Git Daemon
Susunod ay magse-set up tayo ng isang naglilingkod na repositoryo ng daemon gamit ang protokol ng “Git”. Ito ay isang karaniwang pagpili para sa mabilis, unauthenticated na access sa iyong datos sa Git. Tandaan na dahil ito ay isang unauthenticated na serbisyo, anumang bagay na ihahatid mo sa protokol na ito ay pampubliko sa network nito.
Kapag pinapatakbo mo ito sa isang server sa labas ng iyong firewall, ito ay dapat ginagamit lamang sa mga proyekto na makikita ng publiko sa mundo. Kapag ang server na pinapatakbo mo ay sa loob ng iyong firewall, maaari mo itong gamitin sa mga proyekto na mayroong malaking bilang ng tao o mga kompyuter (tuloy-tuloy na pagsasama o mga build server) ay mayroong read-only na access, kapag ayaw mong magdagdag ng SSH key para sa bawat isa.
Sa anumang kaso, ang protokol ng Git ay medyo madaling gamitin. Kailangan mo patakbuhin ang utos na ito sa isang daemonized na paraan:
$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
Ang --reuseaddr
na opsyon ay nagpapahintulot sa server na mag-restart nang hindi naghihintay na mag-timeout ang mga lumang mga koneksyon na mag time out, habang ang --base-path
na opsyon ay nagpapahintulot sa mga tao na mag-clone ng mga proyekto na hindi tinutukoy ang buong landas, at ang landas sa dulo ay sinasabihan ang Git daemon kung saan tumingin para sa mga repositoryo na i-export.
Kapag ikaw ay nagpapatakbo ng isang firewall, kakailanganin mo ring butasan ito sa port 9418 sa kahon kung asan ka nagse-set up.
Maaari mong i-daemonize ang prosesong ito sa iilang paraan, depende sa operating system na pinapatakbo mo.
Dahil ang systemd
ang pinakakaraniwan na init na sistema sa mga modernong distribusyon ng Linux, maaari mong gamitin ito para sa layunin na iyon.
Maglagay lamang ng isang file sa /etc/systemd/system/git-daemon.service
na may ganitong nilalaman:
[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
Maaaring napansin mo na ang Git daemon ay nagsimula dito kasama ang git
bilang parehong grupo at user.
Baguhin ito upang magkasya sa iyong pangangailangan at siguraduhin ang ibinigay na user ay umiiral sa sistema.
Gayundin, tiyakin na ang Git binary ay matatagpuan sa /usr/bin/git
at baguhin ang landas kung kailangan man.
Sa wakas, ipatakbo ang systemctl enable git-daemon
para awtomatikong simulan ang serbisyo sa pag-boot, at maaaring simulan o itigil ang serbisyo gamit ang, ayon sa pagkakabanggit systemctl start git-daemon
at systemctl stop git-daemon
.
Hanggang LTS 14.04, ginamit ng Ubuntu ang kompigurasyon ng upstart na unit ng serbisyo. Sa gayon, sa Ubuntu ⇐ 14.04 magagamit mo ang Upstart na iskrip. Kaya, sa mga sumusunod na file
/etc/init/local-git-daemon.conf
Ilagay mo ang iskrip na ito:
start on startup
stop on shutdown
exec /usr/bin/git daemon \
--user=git --group=git \
--reuseaddr \
--base-path=/srv/git/ \
/srv/git/
respawn
Para sa dahilan ng seguridad, malakas na hinihikayat na ipatakbo ang daemon na ito bilang isang user na mayroong read-only na mga pahintulot sa mga repositoryo — madali mo itong magagawa sa pamamagitan ng paglikha ng isang bagong user git-ro at pagpapatakbo ng daemon bilang sila.
Para sa kapanan ng pagiging simple, ipapatakbo lang natin ito pareho sa git
na user na pinapatakbo ng git-shell
.
Kapag na-restart mo na iyong makina, ang iyong Git daemon ay awtomatikong magsisimula at mag-respawn kapag bumaba ito. Upang mapatakbo ito na hindi kailangan mag-reboot, maaari mong ipatakbo ito:
$ initctl start local-git-daemon
Sa mga ibang sistema, maaaring nais mong gamitin ang xinetd
, isang iskrip sa iyong sysvinit
na sistema, o ibang bagay — hangga’t makahanap ka ng paraan na makakuha ng utos na daemonized at pinapanood.
Sunod, dapat mong sabihan ang Git kung anong repository ang papayagan na magkaroon ng unauthenticated na pagpasok ayon sa server.
Maaari mo itong gawin sa bawat repositoryo sa pamamagitan ng paglikha ng isang file na may pangalang git-daemon-export-ok
.
$ cd /path/to/project.git
$ touch git-daemon-export-ok
Ang presensya ng file na iyon ay nagsasabi sa Git na OK na paglingkuran ang proyektong ito na walang pagpapatunay.