Git
Chapters ▾ 2nd Edition

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.