Paano Mag-inspeksyon sa Kasaysayan ng Isang Proyekto Sa Git Log

Paano Mag-inspeksyon sa Kasaysayan ng Isang Proyekto Sa Git Log

Ang isa sa pinakamahalagang serbisyo na ibinigay ng Git ay ang kasaysayan ng proyekto. Dahil sinusubaybayan ng Git ang lahat ng mga pagbabago sa mga file na ginawa sa loob ng isang lalagyan, maaari itong mag-alok ng napakalakas na mga tampok sa pag-log. Maaari kang magtanong sa kasaysayan ng isang proyekto sa maraming iba't ibang paraan at maaari mong makuha at ipakita ang iba't ibang data gamit ang isang nababaluktot na utos.





Ang git log ang utos ay napakalaki, ang pinakamalaki sa anumang regular na utos ng Git. Ang manwal na ito ay higit sa 2,500 mga linya ang haba. Sa kabutihang-palad, git log nagbibigay ng karamihan sa mga pinaka kapaki-pakinabang na pag-uugali mula sa ilang mga pangunahing pagpipilian lamang.





Pangunahing Pag-log Sa Default na Pag-uugali

Bilang default, git log nagpapakita ng isang listahan ng pabaliktad na magkakasunod na mga pangako. Kasama sa bawat gumawa ang hash, may-akda, petsa, at gumawa ng mensahe nito:





Gumagamit ang utos ng isang pager (hal. Mas kaunti, higit pa) upang maipakita ang buong output upang madali mong ma-navigate ang mga resulta. Maaari mong i-configure ang Git upang magamit ang isang programa na iyong pinili, tulad ng pinaka pager.

Narito ang ilang output ng git log mula sa ang lalagyan ng git source code mismo:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

Ang resulta ay nagsisimula sa gumawa hash ( 670 ...) sinundan ng isang listahan ng mga sangay na kasalukuyang tumuturo sa gumawa ( HEAD -> master , atbp.)

kung paano tanggalin ang isang pahina ng break sa salita

Inilalarawan ng susunod na linya ang may-akda ng ito, na nagbibigay ng kanilang pangalan at email address.





Ang buong petsa at oras ng pagsumite ay sundin sa susunod na linya.

Panghuli, lilitaw ang buong nilalaman ng gumawa ng mensahe. Maaari mong kontrolin ang karamihan sa lahat ng iba pa na nag-aalok ng git log gamit ang mga pagpipilian sa linya ng utos. Mayroong dalawang pangunahing uri ng mga pagpipilian:





  • Pag-format, na tumutukoy sa kung paano ipinapakita ng Git ang bawat nakatuon.
  • Pagsala, na tumutukoy sa aling mga gumagawa git log may kasamang

Bilang karagdagan sa mga pagpipilian sa linya ng utos, ang git log ay tumatanggap ng mga argumento na tumutukoy sa mga file, commits, branch, o iba pang mga uri ng sanggunian. Nalalapat ang mga ito sa karagdagang pag-filter.

Pag-format ng Output ng Git Log

Isa sa pinakasimpleng pagsasaayos ay ang --isang linya pagpipilian na gumagawa ng isang napakaikling output:

git log --oneline

Ang bawat linya sa pag-log ay naglalaman lamang ng isang dinaglat na gumawa hash at ang paksa ng mensahe ng gumawa. Ito ay isang mahusay na paraan ng pagkuha ng isang pangkalahatang-ideya ng kamakailang mga pangako sa proyekto:

Sa kasamaang palad, na walang ibang konteksto, ang impormasyong ito ay hindi palaging kapaki-pakinabang. Maaaring bigyan ka nito ng isang hindi malinaw na pakiramdam para sa proyekto, ngunit wala itong mga petsa at iba pang kapaki-pakinabang na impormasyon tungkol sa mga may-akda at mga file.

Pagtingin sa isang Graph ng Sangay

Ang --graph Pinapayagan ka ng opsyon na mailarawan ang mga ugnayan sa pagitan ng mga sangay. Napaka-basic ngunit makakatulong sa pag-aalis ng isang kumplikadong kasaysayan.

git log --oneline --graph

Kaugnay: Paano Lumikha ng isang Bagong Sangay sa Git

Pasadyang Pretty Output

Maaari mong makamit ang mas kumplikadong pag-format sa pamamagitan ng pagtukoy nito nang detalyado gamit ang --pretty pagpipilian Ang syntax ay napupunta sa napakasimple hanggang sa mas kumplikado, kaya kumunsulta sa isang manu-manong para sa kumpletong mga detalye .

sino ang hindi susunod sa akin pabalik sa instagram online
git log --pretty=short

Mahalaga bang pareho ng git log nang walang petsa o buong mensahe:

git log --pretty=oneline

Ay katumbas ng git log --oneline .

git log --pretty=fuller

May kasamang maraming detalye. Pinaghihiwalay din nito ang may-akda at nagbabahagi na, sa teorya, ay magkakaibang tao:

Kasama ang format: variant, maaari kang magbigay ng isang string na naglalaman ng anumang nilalaman na nais mo, kasama ang mga placeholder na pinalitan ng iba't ibang data. Narito ang ilang halimbawang mga placeholder:

  • % H gumawa ng hash
  • % h dinaglat gumawa hash
  • % sa petsa ng may akda
  • % Sa petsa ng may akda, kamag-anak
  • % s gumawa ng paksa ng mensahe
  • % b gumawa ng mensahe ng katawan
  • % p dinaglat na mga hash ng magulang

Maaari kang magdagdag ng mga nakapirming character sa output at kulayan ito. Nagpapakita rin ang halimbawang ito ng pagkakaiba-iba sa format ng petsa:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Tandaan na ang mga braket ay pumapalibot sa petsa. Anuman ang pipiliin mong pag-format, kung nais mong maging kapaki-pakinabang ang output sa isang pipeline o para sa iba pang mga paraan ng pagproseso ng teksto, dapat mong isaalang-alang kung paano i-demarcate ang bawat bahagi ng output.

Ipinapakita ang mga Diff sa Log

Ang isang mahalagang detalye kapag tinitingnan ang kasaysayan ng isang imbakan ay ang pagkakaiba sa kanilang sarili. Kinakatawan nila kung ano ang talagang binago sa code, pagkatapos ng lahat! Para sa mga nagsisimula, maaari kang makakuha ng isang buod ng mga pagbabago sa tabi ng bawat paggamit ng komit --shortstat :

git log --shortstat

Nagdaragdag ito ng isang linya tulad ng:

1 file changed, 48 insertions(+), 2 deletions(-)

Sa ilalim ng bawat gumawa. Madalas mong makita ang ganitong uri ng buod — sa buong mga pahina sa GitHub, halimbawa — at ito ay isang kapaki-pakinabang na paraan ng mabilis na paghusga sa saklaw ng isang tukoy na pangako. Para sa mas detalyadong impormasyon, maaari mong isama ang buong output ng patch (diffs) gamit ang -p bandila:

git log -p

Pag-filter ng Output ng Git Log

Anumang pag-apply na na-apply mo, makikita mo pa rin ang kumpletong pag-log ng lahat ng mga commits sa kasalukuyang sangay. Kahit na pinaghiwalay sila ng Git sa mga pahina, maaari pa rin itong maraming output. Pinapayagan ka ng mga sumusunod na pagpipilian na ipasadya kung aling mga gumagawa ang kasama ng log.

Paghihigpit sa Halaga

Kung nais mo lamang na gupitin ang mga resulta upang maipakita ang pinakabagong ilang mga pangako, gamitin ang - [numero] syntax:

git log -2

Paghihigpit ayon sa Petsa

Upang paghigpitan ang hanay ng mga paggawa sa isang naibigay na saklaw ng petsa, gamitin ang --mula ( --pagkatapos ) at - hanggang sa ( --sa una pa ) mga pagpipilian. Ang bawat isa ay kumukuha ng petsa sa format na ISO 8601. Maaari mo ring gamitin --mula o - hanggang sa sa kanilang sarili, o pareho na magkasama upang tukuyin ang isang saklaw. Ang mga pagpipilian --pagkatapos at --sa una pa ay mga kasingkahulugan.

git log --since='2021-01-01' --until='2021-05-01'

Paghihigpit sa pamamagitan ng File

Ang git log ay maaaring tumuon sa isang tukoy na file kaysa sa bawat file sa iyong lalagyan. Mahusay ito para matulungan kang malaman kung paano nagbago ang isang partikular na file sa paglipas ng panahon. Idagdag lamang ang filename sa dulo ng iyong git command:

git log filename

Makikita mo lang ang mga commits na nakakaapekto filename .

Mga Pagkakaiba sa Pagitan ng Mga Sangay

Maaari kang magkaroon ng ilang natatanging mga kinakailangan kapag tumitingin sa log ng isang sangay. Halimbawa, sa halip na makita ang buong kasaysayan, baka gusto mo lamang makita kung ano ang nagbago sa tukoy na sangay na iyon. Ang Git log ay makakatulong sa pamamagitan ng ref1..ref2 syntax Mayroong tatlong bahagyang magkakaibang mga diskarte na maaari mong gamitin:

  1. Tingnan ang mga pangako na pangunahing, ngunit hindi sangay: git log --oneline origin/branch..origin/main
  2. Tingnan ang mga pangako na nasa sangay, ngunit hindi pangunahing: git log --oneline origin/ main ..origin/ branch
  3. Tingnan ang mga komiteng mayroon lamang sa sangay o pangunahing: git log --oneline origin/branch ... origin/main

Mga Pagkakaiba sa Pagitan ng Dalawang Tag

Tulad ng maaari mong tingnan ang kasaysayan sa pagitan ng mga sangay gamit ang ref1..ref2 syntax, maaari mo ring tingnan ang kasaysayan sa pagitan ng mga tag sa parehong paraan. Pagkatapos ng lahat, ang parehong mga tag at sangay ay uri ng sanggunian.

git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0

Kung naghahanda ka ng mga tala ng paglabas para sa isang mas malaking proyekto, git shortlog dapat ay ang iyong unang port ng tawag. Gumagawa ito ng isang listahan ng mga may-akda na may mga paksa na nakatuon sa tabi nila. Maaari mong ipasa ito sa isang saklaw ng sanggunian upang limitahan ang kasaysayan sa isang katulad na paraan sa git log:

git shortlog v2.32.0-rc3..v2.32.0

Ang git show utos ay mas maraming nalalaman kaysa sa git log . Maaari itong gumana sa mga tag at iba pang mga uri ng mga git na bagay na lampas sa kasaysayan ng gumawa. Nagbabahagi ito ng maraming mga pagpipilian sa git log , ngunit kakailanganin mo lamang ito kung kailangan mong maghukay sa mga detalyeng mas mababang antas.

Suriin ang Nakaraan Sa Git Log

Ang log ng Git ay isang kumplikadong utos, ngunit maaari kang makakuha ng maraming paggamit mula sa mga pinaka pangunahing pagpipilian. Ang pagba-browse sa kasaysayan ng isang repository ay isang mahusay na paraan upang maunawaan kung gaano kadalas nangyayari ang mga pagbabago at kung gaano karaming mga tao ang gumagawa ng mga ito. Kapag mayroon kang mahusay na pag-unawa sa kasaysayan ng isang proyekto, magiging mahusay ka sa posisyon na mag-ambag dito mismo.

hindi natanggap ang email ng pag-reset ng password ng playstation
Magbahagi Magbahagi Mag-tweet Email Sumali sa Trend ng Social Coding at Mag-ambag sa GitHub Repositories

Nais mong gamitin ang iyong mga kalamnan sa pag-coding at tulungan ang mga bukas na proyekto ng mapagkukunan? Narito kung paano mag-ambag sa GitHub.

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • GitHub
  • Mga Tip sa Coding
Tungkol sa May-akda Bobby Jack(58 Mga Artikulo Na-publish)

Si Bobby ay isang mahilig sa teknolohiya na nagtrabaho bilang isang developer ng software sa loob ng halos dalawang dekada. Masigasig siya sa paglalaro, nagtatrabaho bilang Review Editor sa Switch Player Magazine, at nahuhulog sa lahat ng aspeto ng online na pag-publish at pag-unlad sa web.

Higit pa Mula kay Bobby Jack

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe