Kuthunyelwe ngu- ukukhishwa kwesistimu yokuphathwa kwekhodi yomthombo esakazwayo I-Git 2.54I-Git ikhiqiza kakhulu futhi inikeza amakhono okuthuthukisa angalingani ngokusekelwe ekuhlanganiseni nasekuhlanganiseni. Ukuqinisekisa ubuqotho bomlando kanye nokuqina ezinguqukweni ezibuyela emuva, isebenzisa i-hashing engacacile yomlando wonke wangaphambilini ku-commit ngayinye, kanye neziginesha zedijithali zamathegi nama-commit ngamanye. I-Git Code isatshalaliswa ngu ilayisensi ngaphansi kwe-GPLv2+.
Uma kuqhathaniswa nokukhishwa kwangaphambilini, inguqulo entsha ihlanganisa izinguquko ezingu-770 ezilungiselelwe ngokubamba iqhaza kwabathuthukisi abangu-137 (abangu-66 babo ababesanda kuqala ukuthuthukiswa kwe-Git).
-
Umyalo "usetshenzisiwe"umlando we-git", enikeza amakhono okuhlola okubhala kabusha umlando woshintsho, okulula futhi kuphephile Kulula ukuyisebenzisa kune-rebasing commits ngomyalo we-git rebase. Inikeza imisebenzi emibili:
- igama elisha lomlando we-git Ukubhala kabusha umlayezo ku-commit ecacisiwe ngaphandle kokushintsha umuthi osebenzayo noma inkomba (ngaphandle kwenothi, okunye akukathintwa). Isibonelo, ukulungisa iphutha lokuthayipha.
- ukuhlukaniswa komlando we-git ukuhlukanisa ngokubambisana ukuzibophezela okucacisiwe kube yizibopho ezimbili ezihlukene, ukuhambisa izingxenye ezikhethiwe kusuka ekuzibophezeleni kokuqala kuya ekuzibophezeleni okwengeziwe.
Kulindeleke ukuthi kufakwe eminye imiyalo ekukhishweni kwesikhathi esizayo: i-git history fixup ukulungisa i-commit, i-git history drop ukususa i-commit, i-git history reorder ukushintsha i-oda le-commits, kanye ne-git history squash ibe yi-squash commits.
-
Indlela entsha yokuchaza abaphathi isetshenzisiwe (hook) kumafayela okucushwa. Esikhundleni sokubeka izikripthi nabaphathi kufolda ye-.git/hooks kufolda ngayinye, imiyalo yabaphathi ababizayo manje ingacaciswa ngqo kumafayela okucushwa. Izilungiselelo zingaxhunyaniswa nefolda noma zicaciswe kumafayela okucushwa asebenza kuzo zonke izindawo zokugcina (/etc/gitconfig) noma izindawo zokugcina zomsebenzisi (~/.gitconfig). Abaphathi abaningi bangaboshwa emcimbini owodwa. Izikripthi ezivela ku-.git/hooks ziyaqhubeka nokubizwa, kodwa ziqhutshwa ngemuva kwabaphathi abavela kumafayela okucushwa. Ukuze ubuke uhlu lwabaphathi, sebenzisa umyalo wohlu lwe-git hook, futhi ukuze ukhubaze ngokukhetha ukubizwa kwabaphathi, sebenzisa ukulungiselelwa kwe-hook. .enabled = amanga:
[hook "linter"] umcimbi = umyalo wokuzibophezela kusengaphambili = ~/bin/linter --cpp20 [hook "akukho-ukuvuza"] umcimbi = umyalo wokuzibophezela kusengaphambili = ~/bin/leak-detector $ git hook list pre-commit global linter ~/bin/linter --cpp20 local no-leaks ~/bin/leak-detector
- Eqenjini "ukulungiswa kwe-gitIsu le-geometric livulwa ngokuzenzakalelayo (i-git config set maintenance.strategy geometric), okunciphisa isikhathi sokulungisa ama-monorepositories amakhulu. Uma kuqhathaniswa nesu elalisetshenziswa ngaphambilini, elalisebenzisa i-logic efana nomyalo we-git gc, isu elisha ligwema ukuphinda lipakishe zonke izinto futhi liqeda imisebenzi edinga izinsiza eziningi njengokuhlanganisa wonke amafayela ephakethe (lapho kungenzeka khona, ukuhlanganisa kwenziwa ngezingxenye futhi ngaphandle kokususa izinto ezisusiwe).
- I-Object Database (ODB) kanye nama-API ayo ahlobene nayo athuthelwe kusakhiwo esisha esisekelwe kuma-backend axhumekayo. Lokhu kuhlelwa kabusha kufingqa ifomethi yokugcina izinto futhi kuzokwenza kube lula ukusetshenziswa kwezici ezifana nama-backend ahlukile kanye namafomethi ezinto, isibonelo, ukuze kugcinwe amafayela amakhulu e-binary ngendlela ephumelelayo noma ukuze kwenziwe ngcono ukusebenza kwezinsizakalo ezinkulu zokubamba i-Git.
- Eqenjini "isakhiwo se-git repo", ekhombisa ulwazi mayelana nesakhiwo sendawo yokugcina impahla, inikeza ukuboniswa hhayi nje kosayizi ophelele, kodwa futhi nezinto ezinkulu kakhulu zohlobo ngalunye, okukuvumela ukuthi ulinganise usayizi ngaphandle kokusebenzisa insizakalo yomuntu wesithathu. i-git-sizer.
Isakhiwo se-repo se-$git... | * Izinto ezinkulu kakhulu | | | * Ukuzibophezela | | | * Usayizi omkhulu [1] | 17.23 KiB | | * Abazali abakhulu [2] | 10 | | * Izihlahla | | | * Usayizi omkhulu [3] | 58.85 KiB | | * Okufakiwe okuphezulu [4] | 1.18k | | * Ama-Blobs | | | * Usayizi omkhulu [5] | 1019.51 KiB | | * Amathegi | | | * Usayizi omkhulu [6] | 7.13 KiB |
- Eqenjini "ukudlala kabusha kwe-git", esetshenziswe esikhundleni se-git rebase ukuphinda umlando kuseva ngaphandle kwesihlahla esisebenzayo, inike amandla izibuyekezo ze-athomu ref ngokuzenzakalelayo (esikhundleni sokufaka kuhlu imiyalo ye-update-ref ukuze isebenze ngesandla), isebenzise inketho ye--revert yokususa izinguquko ochungechungeni lwemisebenzi, yaqinisekisa ukuthi imisebenzi engenalutho ephumayo iyalahlwa, futhi yenza kwaba nokwenzeka ukuphinda umlando kuze kube yilapho i-root commit ibuya khona.
- KUFAKWE "git rev-uhlu" kanye nemiyalo efanayo, inketho ethi --maximal-only ingeziwe ukuze ibonise kuphela imisebenzi engafinyeleleki ngezinye izibopho.
- Eqenjini "ulwazi lwe-git repo» wengeze inketho ethi --keys ukuze kufakwe ohlwini zonke izinkinobho ezaziwayo.
- Eqenjini "git engeza -pUma uzulazula phakathi kwamabhulokhi ekhodi usebenzisa okhiye be-"J" kanye ne-"K", amabhulokhi asevele evunyiwe futhi eqiwe manje amakiwe. Inketho ye--no-auto-advance ingeziwe ukuze ikhubaze ukuqhubekela phambili okuzenzakalelayo kufayela elilandelayo, okukuvumela ukuthi uphinde uvakashele amafayela angaphambilini ngaphambi kokuzibophezela.
- I-interface yewebhu yenziwe ngcono.i-gitweb» yokusebenza ngamadivayisi eselula.
- Eqenjini "i-git iyasebenza –isiqondisi» iqinisekisa ukuthi izindlela zefayela ezifana ne-./un/../normalized/path ziyalungiswa ngaphambi kokusetshenziswa.
- Ikhono lokwengeza ama-subcommands ngokwezifiso ngokufakwa kwefayela le-git libhaliwe. kufolda enamafayela asebenzisekayo.
- Eqenjini "git send-imeyili» Ukwengezwa kokusekelwa kwezitifiketi zamakhasimende.
- Kweqembu "isib isimo» Ukulungiselelwa kwe-status.compareBranches sekuqalisiwe, okukuvumela ukuthi ucacise amagatsha igatsha lamanje elizoqhathaniswa nawo:
[isimo] qhathanisa amagatsha = @{upstream} @{push}
- KUFAKWE "git rebase» wengeze inketho ethi --trailer ukuze kube lula ukwengeza imethadatha kuzo zonke izibopho:
git rebase --trailer "Ibuyekezwe ngu: Ukuhlolwa "`
- Eqenjini "ukungenisa okusheshayo kwe-git» Kwengezwe ikhono lokufaka esikhundleni amasignesha emisebenzi engasebenzi ngemva kokungenisa.
- Kungezwe ukwesekwa kokuqiniswa kwe-multi-pack index (MIDX), okuhlanganisa izendlalelo ezincane ze-MIDX index eziqukethe ulwazi lokutholakala kwezinto kanye nama-bitmap ahlobene, okunciphisa inani lezendlalelo eziqongelelwe ezindaweni zokugcina ezindala.
- Umyalo we-git backfill manje ukuvumela ukuthi ucacise izibuyekezo (amabanga okuzibophezela) kanye nama-path masks (indlelaspec) ukuze kukhawulelwe izingxenye ezilandiwe zomlando woshintsho:
i-git backfill main~100..main git backfill — '*.c'
- Kungezwe amafomu ahlukile okubiza umyalo wohlu lwe-git config – git config -l kanye ne-git config --list.
- Izinhlamvu ezingezona eze-ASCII zivunyelwe emagameni ezibizo zomyalo ezichazwe kufayela lokucushwa:
[igama elithi "thola"] umyalo = ukulanda
- Ukuboniswa kwamasignesha anama-GPG okhiye aphelelwe yisikhathi kodwa ayesebenza ngesikhathi kusayinwa isivumelwano kushintshiwe. Lawa masignesha manje aboniswa njengasebenzayo kanye nenothi mayelana nokuphelelwa yisikhathi kwama-key (ngaphambilini, ayegqanyiswe ngombala obomvu, okunikeza umbono wokuthi awasebenzi).
- Uma ufinyelela ama-repository nge-HTTP, ikhodi yephutha 429 (Izicelo Eziningi Kakhulu) manje isiphathwa kahle. Izicelo ezihlulekayo ngaleli phutha azisaphathwa njengezibulalayo, kodwa njengamaphutha esikhashana lapho umsebenzi kufanele uphinde uzame khona ngemva kwesikhathi esithile. Ukulibaziseka kokuzama kabusha kucacisiwe kusetshenziswa inketho ethi http.retryAfter, inani lokuzama kabusha lingu-http.maxRetries, kanti isikhathi sokuvala siyi-http.maxRetryTime.
Source: linux.org.ru
