-
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
10.1 Mga Panloob ng GIT - Plumbing and Porcelain
Maaari mong nalaktawan ang kabanatang ito mula sa mas naunang kabanata, o maaari kang nakarating dito pagkatapos mo basahin ng sunod sunod ang aklat hanggang sa puntong ito — sa ano mang kaso, dito tatalakayin ang mga panloob na pagtatrabaho at implementasyon ng Git. Nalaman namin na ang pag-intindi ng impormasyong ito ay mahalaga sa panimula upang mapahalagahan kung gaano kapaki-pakinabang at makapangyarihan ang Git, ngunit ang iba ay nakipagtalo sa amin na ito ay maaaring nakalilito at hindi kinakailangan kumplikado para sa mga nagsisimula. Kaya, ginawa namin ang dikusyong ito bilang huling kabanata sa aklat na ito upang mabasa mo ito nang maaga o huli sa proseso ng iyong pag-aaral. Iniwan na namin sa inyo ang pagpasya.
Ngayon na nandito ka na, simulan na natin. Una, kung hindi pa ito klaro sa iyo, ang Git sa panimula ay isang filesystem na maaaring i-address ang nilalaman at mayroong VCS na interface para sa mga gumagamit. Malalaman mo ang kahulugan nito sa ilang sandali.
Sa mga naunang araw ng Git (halos bago ang 1.5), ang interface ng gumagamit ay mas kumplikado dahil binigyang diin nito ang filesystem sa halip na pakinisin ang VCS. Sa mga nakaraang taon, ang UI ay mas pinainam hanggang sa ito ay maging malinis at madaling gamitin tulad ng anumang mga sistema; subalit, ang gasgas tungkol sa naunang Git UI na kumplikado at mahirap pag-aralan ay nanatili.
Ang nilalaman-tinumbok na filesystem na maaaring i-address ang nilalaman ay nakamamangha, kung kaya’t tatalakayin natin yan ng una sa kabanatang ito; saka, matututuhan mo ang tungkol sa mga mekanismo ng transportasyon at ang mga gawain sa pagpapanatili ng imbakan na maaari mong tingnan.
Plumbing and Porcelain
This book covers primarily how to use Git with 30 or so subcommands such as checkout
, branch
, remote
, and so on.
But because Git was initially a toolkit for a version control system rather than a full user-friendly VCS, it has a number of subcommands that do low-level work and were designed to be chained together UNIX-style or called from scripts.
These commands are generally referred to as Git’s “plumbing” commands, while the more user-friendly commands are called “porcelain” commands.
As you will have noticed by now, this book’s first nine chapters deal almost exclusively with porcelain commands. But in this chapter, you’ll be dealing mostly with the lower-level plumbing commands, because they give you access to the inner workings of Git, and help demonstrate how and why Git does what it does. Many of these commands aren’t meant to be used manually on the command line, but rather to be used as building blocks for new tools and custom scripts.
When you run git init
in a new or existing directory, Git creates the .git
directory, which is where almost everything that Git stores and manipulates is located.
If you want to back up or clone your repository, copying this single directory elsewhere gives you nearly everything you need.
This entire chapter basically deals with what you can see in this directory.
Here’s what a newly-initialized .git
directory typically looks like:
$ ls -F1
config
description
HEAD
hooks/
info/
objects/
refs/
Depending on your version of Git, you may see some additional content there, but this is a fresh git init
repository — it’s what you see by default.
The description
file is used only by the GitWeb program, so don’t worry about it.
The config
file contains your project-specific configuration options, and the info
directory keeps a global exclude file for ignored patterns that you don’t want to track in a .gitignore
file.
The hooks
directory contains your client- or server-side hook scripts, which are discussed in detail in Mga Hook ng Git.
This leaves four important entries: the HEAD
and (yet to be created) index
files, and the objects
and refs
directories.
These are the core parts of Git.
The objects
directory stores all the content for your database, the refs
directory stores pointers into commit objects in that data (branches, tags, remotes and more), the HEAD
file points to the branch you currently have checked out, and the index
file is where Git stores your staging area information.
You’ll now look at each of these sections in detail to see how Git operates.