Git
Chapters ▾ 2nd Edition

A3.3 Appendix C: Mga Kautusan ng Git - Pangunahing Snapshotting

Pangunahing Snapshotting

Para sa mga pangunahing proseso ng trabaho sa pag-aayos ng nilalaman at pag-commit nito sa iyong kasaysayan, mayroon lamang ilang mga pangunahing kautusan.

git add

Ang git add na kautusan ay nagdadagdag ng nilalaman mula sa gumaganang direktoryo patungo sa lugar ng pag-stage (o “index”) para sa susunod na pag-commit. Kapag ang kautusan ng git commit ay gumana, bilang default tinitingnan lamang nito ang lugar ng pag-stage, kaya ang git add ay ginagamit upang gawing eksakto kung ano ang nais mong anyo sa susunod na pag-commit ng snapshot.

Ang kautusan na ito ay sobrang mahalagang utos sa Git at nabanggit o ginamit ng maraming beses sa aklat na ito. Mabilis naming isasali ang mga dipangkaraniwang mga paggamit nito na maaring makita.

Una naming ipinakilala at ipaliwanag ang git add nang detalyado sa Pagsubaybay sa Bagong mga File.

Binabanggit namin kung paano gamitin ito upang malutas ang pagsasalungat sa pagsasama sa Mga Pangunahing Salungatan sa Pag-Merge.

Natalakay din namin ang paggamit nito sa pag-stage lamang ng mga tukoy na bahagi ng isang nabagong file sa << _interactive_staging >>.

Sa panghuli, kokopyahin namin ito sa isang mababang antas sa Tree Objects, kaya makakakuha ka ng ideya kung ano ang ginagawa nito sa likod ng mga eksena.

git status

Sa git status na kautusan ipapakita sa iyo ng ang iba’t ibang mga estado ng mga file sa iyong gumaganang direktoryo at sa lugar ng staging. Alin sa mga file ang binago at unstaged at kung saan ang mga na staged ngunit hindi pa na commit. Sa normal na anyo nito, ipapakita rin nito sa iyo ang ilang mga pangunahing pahiwatig kung paano maglipat ng mga file sa pagitan ng mga stage.

Una nating na pag-usapang ang status sa << _checking_status >>, kapwa ang mga batayan at pinadaling mga form nito. Habang ginagamit namin ito sa buong libro, halos lahat ng iyong magagawa sa git status na utos ay sakop doon.

git diff

Ang kautusang git diff ay ginagamit kapag nais mong makita ang mga pagkakaiba sa pagitan ng dalawang trees. Ito ay maaaring pagkakaiba sa pagitan ng iyong gumaganang environment at ang iyong staging na lugar (git diff mismo), sa pagitan ng iyong staging na lugar at ang iyong huling commit (git diff --staged), o sa pagitan ng dalawang mga commit (`git diff master branchB `).

Una naming natalakay ang mga pangunahing paggamit ng git diff sa << _git_diff_staged >>, kung saan ipinapakita namin kung paano makita kung ano ang mga pagbabago sa staged at kung ano ang hindi pa na staged.

Ginagamit namin ito upang tumingin para sa posibleng mga isyu sa whitespace bago gumawa ng - check na opsyon sa << _commit_guidelines >>.

Nakita namin kung paano masuri ang mga pagkakaiba sa pagitan ng mga branch nang mas epektibo sa git diff A ... B syntax sa << _what_is_introduced >>.

Ginagamit namin ito upang i-filter ang mga pagkakaiba sa whitespace sa -b at kung paano ihambing ang iba’t ibang yugto ng mga magkakasalungat ng mga file gamit ang` --theirs`, --ours at` --base` sa << _advanced_merging >>.

Sa panghuli, ginagamit namin ito upang epektibong ihambing ang mga pagbabago sa submodule sa --submodule sa << _starting_submodules >>.

git difftool

Ang git difftool na kautusan ay naglulunsad lamang ng isang panlabas na kasangkapan upang ipakita sa iyo ang pagkakaiba sa pagitan ng dalawang mga tree kung sakaling gusto mong gumamit ng iba pang bagay kaysa sa built in na git diff na kautusan.

git commit

Ang git commit na kautusan ay kumukuha sa lahat ng mga nilalaman ng file na itinanghal sa git add at nagtatala ng isang bagong permanenteng snapshot sa database at pagkatapos ay inililipat ang branch pointer hanggang sa kasalukuyang branch nito.

Unang tinalakay natin ang mga pangunahing kaalaman sa pag-commit sa Pag-commit ng iyong mga Binago. Ipinakita din namin kung paano gamitin ang isang -a na flag upang laktawan ang git add na hakbang sa pang-araw-araw na daloy ng trabaho at kung paano gamitin ang -m na flag upang pumasa ng isang mensaheng commit sa command line sa halip ng pagpapatakbo nito sa editor.

Sa _git_basics_chapter.asc tinalakay namin ang paggamit ng --amend na opsyon upang gawing muli ang pinakabagong commit.

Sa _git_branching.asc, pumunta kami sa mas maraming detalye tungkol sa kung ano ang ginagawa ng git at kung bakit ganito niya ginagawa.

Tiningnan namin kung paano mag-sign ng mga commit na cryptographically kasama ang -S na flag sa Pag-sign ng mga Commit.

Panghuli, tinitingnan natin kung ano ang ginagawa ng git commit sa background at kung paano nito aktwal na ipinatupad sa Commit Objects.

git reset

Ang utos na git reset ay pangunahing ginagamit upang i-undo ang mga bagay, parang maaari mong sabihin sa pamamagitan ng pandiwa. Ito ay gumagalaw sa paligid ng HEAD pointer at opsyonal na nagbabago sa index o sa lugar ng staging at maaari ring opsyonal na baguhin ang gumaganang direktoryo kung gagamitin mo ang --hard. Ang pangwakas na opsyon ay posibleng magbura sa iyong tinatrabaho kung ginamit nang hindi tama, kaya tiyaking maunawaan mo ito bago gamitin.

Una naming epektibong tinalakay ang pinakasimpleng paggamit ng git reset sa Hindi pagyuyugto ng isang Yugtong File, kung saan ginagamit namin ito upang ma unstage isang file na pinatakbo ang git add.

Pagkatapos ay tinalakay natin ito ng lubos ang detalye sa Ang Reset Demystified, na nakalaan sa pagpapaliwanag sa utos na ito.

Ginagamit namin ang git reset --hard upang i-abort ang pagsanib sa Pag-abort ng Merge, kung saan ginagamit din namin ang git merge --abort, na kung saan ay isang kaunting pagbabalut para sa git reset command.

git rm

Ang git rm command ay ginagamit upang tanggalin ang mga file mula sa lugar ng staging at gumaganang direktoryo para sa Git. Ito ay katulad ng git add subalit ito ay magtatanggal ng isang file para sa susunod na commit.

Tinalakay namin ang utos na git rm ng iilang detalye sa << _removing_files >>, kabilang ang paulit-ulit na pag-alis ng mga file at pag-aalis lamang ng mga file mula sa lugar ng staging ngunit iniiwan ang mga ito sa gumaganang direktoryo na may --cached.

Ang tanging iba pang magkakaibang paggamit ng git rm sa aklat ay nasa << _removing_objects >> kung saan ginagamit namin ng maikli at ipinaliwanag ang --ignore-unmatch kapag nagpapatakbo ng git filter-branch, na kung saan ay pasimpleng hindi nito mag-error-out kapag ang file na sinusubukan naming i-stage ay hindi umiiral. Maaari itong maging kapaki-pakinabang para sa mga layunin ng pag-script.

git mv

Ang utos na git mv ay isang manipis na kaginhawahan na utos upang maglipat ng isang file at pagkatapos ay patakbuhin ang` git add` sa bagong file at git rm sa lumang file.

Binanggit lamang namin nang maikli ang utos na ito sa << _ git_mv >>.

git clean

Ang git clean na utos ay ginagamit upang tanggalin ang mga hindi gustong file mula sa iyong gumaganang direktoryo. Maaaring kabilang dito ang pag-alis ng pansamantalang mga artifact build o pagsamahin ang mga conflict na file.

Tinalakay namin ang karamihang mga pagpipilian at sitwasyon kung saan maaari mong gamitin ang git clean na utos sa << _ git_clean >>.