-
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
A3.4 Appendix C: Mga Kautusan ng Git - Branching at Merging
Branching at Merging
Iilan lamang ang bilang ng mga utos na karamihang nagpapatupad sa pagsasanib at pagsasama sa Git.
git branch
Ang git branch
command ay talagang isang tool na naayon sa pamamahala ng branch.
Maaari nitong ilista ang mga branch na mayroon ka, lumikha ng isang bagong branch, tanggalin ang mga branch at palitan ang pangalan ng mga branch.
Karamihan ng Pag-branch ng Git ay nakatuon sa utos na 'branch` at ginagamit ito sa buong kabanata. Una naming ipinakilala ito sa Paggawa ng isang Bagong Branch at kami ay dumaan sa karamihan ng iba pang mga tampok nito (listahan at pagtanggal) sa Pamamahala ng Branch.
Sa Sumusubaybay na mga Branch ginagamit namin ang git branch -u
na pagpipilian upang mag-set up ng isang branch sa pagsubaybay.
Sa panghuli, tinalakay namin kung ano ang ginagawa nito sa background sa Git References.
git checkout
Ang command na git checkout
ay ginagamit upang lumipat ng mga sanga at suriin ang nilalaman sa iyong gumaganang direktoryo.
Una naming nakatagpo ang command sa Paglilipat ng mga Branch kasama ang command na git branch
.
Nakita namin kung paano gamitin ito upang simulan ang pagsubaybay ng mga sanga gamit ang --track
flag sa Sumusubaybay na mga Branch.
Ginagamit namin ito upang maipakita muli ang mga magkasalungat na file sa --conflict = diff3
sa Sinusuring ang mga Salungat.
Pumunta kami sa mas detalyadong detalye sa kaugnayan nito sa git reset
sa Ang Reset Demystified.
Sa panghuli, pumunta kami sa ilang detalye ng pagpapatupad sa The HEAD.
git merge
Ang tool na git merge
ay ginagamit upang pagsamahin ang isa o higit pang mga branch sa branch na iyong sinuri.
Susubukan nito ang kasalukuyang branch sa resulta ng pagsasama.
Ang git merge
command ay unang ipinakilala sa Batayan sa Pag-branch.
Kahit na ito ay ginagamit sa iba’t ibang mga lugar sa aklat, napakakaunting mga pagkakaiba-iba ng 'merge` command - sa pangkalahatan lamang git pagsamahin <branch>
na may pangalan ng solong branch na nais mong pagsamahin.
Tinalakay namin kung paano gumawa ng isang squashed merge (kung saan ang Git ay nagpahiwatig na gumagana ang merge ngunit nagpapanggap lamang ito na tulad ng isang bagong commit na hindi naitala ang kasaysayan ng branch na pinagsasama mo) sa pinakadulo ng Forked Public Project.
Maramin din kaming tinalakay tungkol sa proseso ng pagsasama at utos, kabilang ang -Xignore-space-change
na ustos at ang` --abort` na flag upang i-abort ang problema sa pag-merge sa Advanced na Pag-merge.
Natutunan namin kung paano i-verify ang mga lagda bago i-merge kung ang iyong proyekto ay gumagamit ng pag-sign na GPG sa Pag-sign ng mga Commit.
Sa panghuli, natutunan namin ang tungkol sa pagsasama ng Subtree sa Subtree na Pag-merge.
git mergetool
Ang git mergetool
utos ay naglulunsad lamang ng isang panlabas na merge helper kung sakaling mayroon kang mga isyu sa isang pagsali sa Git.
Binanggit namin ito nang mabilis sa Mga Pangunahing Salungatan sa Pag-Merge at pumunta sa detalye kung paano ipatupad ang iyong sariling panlabas na tool sa pagsasama sa Panlabas na Merge at mga Kasangkapan ng Diff.
git log
Ang git log
na utos ay ginamit upang mapakita ang mga maabot na nakatalang kasaysayang ng proyekto simula sa pinakabagong commit snapshot na pababa. Sa pangkaraniwan ipinapakita lamang nito ang kasaysayan ng kasalukayang branch, subalit maaring magbigay ng kaibahan o kahit maraming mga head or mga branch kung saan maari mong ma traverse. Ito ay madalas nagpapakita din ng mga kaibahan sa pagitan ng dalawa o maraming pang branch sa antas ng commit.
Ang utos na ito ay ginagamit sa halos lahat ng kabanata ng libro para mapakita ang kasaysayan ng proyekto.
Pinakilala namin ang utos at tinalakay ito ng malalim sa Pagtitingin sa Kasaysayan ng Commit.
Doon tiningnan namin sa -p
at --stat
na opsyon para makuha ang idea kung ano ang pinakilala sa bawat commit at ang --pretty
at --oneline
na mga opsyon para makita ang kasaysayan na mas maikli, kasama ang iilang petsa at mga opsyon sa pagsasalang ng may-akda.
Sa Paggawa ng isang Bagong Branch ginamit namin ito kasama ang --decorate
na opsyon para madaling mailarawan kung saan ang ating mga branch pointer ay nakalagay at ginamit din namin ang --graph
na opsyon para makita kung ano ang hitsura ng mga palayong kasaysayan.
Sa Private Small Team at Mga Lawak ng Commit aming tinalakay ang branchA..branchB
na syntax para gamitin ang git log
na utos para makita kung ano ang kaibahan sa isang katugong branch sa iba pang branch.
Sa Mga Lawak ng Commit malawak naming tinalakay ito.
Sa Pag-merge ng Log at Triple na Dot tinalakay natin ang branchA...branchB
format at ang --left-right
na syntax para makita kung ano ang nasa isang branch o sa ibang branch pero hindi sa dalawa.
Sa Pag-merge ng Log tiningnan din natin kung paano gamitin ang --merge
na opsyon para makatulong sa pag-debug ng merge conflict pati na rin ang --cc
na opsyon para makita ang pag-merge sa mga conflict na commit sa iyong kasaysayan.
Sa Mga Shortname ng RefLog ginamit natin ang -g
na opsyon para makita ang reflog ng Git sa pamamagitan ng tool na ito imbes sa paggawa ng traversal sa branch.
Sa Paghahanap ginamit natin ang -S
at -L
na mga opsyon para gumawa ng mas pinahusay na mga paghahanap para sa mga anumang pangyayari na pangkasaysayan sa code gaya ng pagtanaw sa kasaysayan ng isang function.
Sa Pag-sign ng mga Commit nakita natin kung paano gamitin ang --show-signature
para magdagdag ng pagpapatibay na string sa bawat commit sa output ng git log
nakabase dito kung ito ay wastong pag-sign o hindi.
git stash
Ang git stash
na utos ay ginamit para pansamantalang mag-imbak sa hindi na commit na trabaho upang luminis ang iyong gumaganang direktoryo na hindi kailangang mag-commit sa di tapos na trabaho sa isang branch.
It ay pangkalahatang tinalakay sa Pag-stash at Paglilinis.
git tag
The git tag
command is used to give a permanent bookmark to a specific point in the code history.
Generally this is used for things like releases.
Ang git tag
na utos ay ginamit para magbigay ng permanenteng bookmark para sa tiyak na punto sa kasaysayan ng code.
Ang utos na ito ay pinakilala at tinalakay ang detalye sa Pag-tag at ginamit namin ito sa pagsasanay sa Tagging Your Releases.
Tinalakay din namain kung paano gumawa ng naka tag na sign na GPG sa pamamagitan ng --s
na flag at pinatunayan ang isa sa pamamagitan ng -v
na flag sa Pag-sign sa Iyong Trabaho.