Muaj txij li thaum tso tawm 1.18, qhov kev cog lus tshiab rebase hom "git rebase --rebase-merges" hloov qhov qub "--preserve-merges" kev xaiv, uas tam sim no deprecated. Kev ua haujlwm "git rebase" yog siv los hloov cov kev cog lus nrog lub hauv paus tshiab, piv txwv li, txav ib ceg cais uas tab tom tsim qee yam tshiab rau lub xeev tam sim no ntawm tus tswv ceg, uas suav nrog kev kho ntxiv tom qab ceg. :
o - o - o (kuv-feature)
/
o - o - o - o - o (master)
o - o - o (kuv-feature)
/
o - o - o - o - o (master)
Txhawm rau khaws cov ceg ntoo hauv cov ceg tsiv teb tsaws, qhov kev xaiv "--preserve-merges" yav dhau los siv tau, uas, thaum khiav hauv kev sib tham sib (git rebase -i --preserve-merges), tso cai kho cov ntaub ntawv keeb kwm, tab sis tsis tau lees tias ua tiav kev khaws cia ntawm cov qauv repository. Tus tshiab "--rebase-merges" hom tso cai rau koj khaws cov qauv ntawm cov kev hloov pauv hauv cov ceg uas tau tsiv teb tsaws, thaum muab ntau yam kev sib tham sib ua haujlwm, suav nrog kev tshem tawm, rov ua pawg thiab hloov npe ua haujlwm.
Piv txwv li, "--rebase-merges" nws tso cai rau re-upload commits los ntawm ib tug nyias muaj nyias ib ceg mus rau ib tug tshiab master ceg, thaum tuav lub ceg qauv nyob rau hauv lub migrated ceg, thiab ua ib co kev hloov rau cov lus cog tseg ntawm ya.
Ntxiv kev txhawb nqa rau kev tsim ib ceg tshiab raws li qhov tshwm sim ntawm kev txiav txim siab kev sib koom ua ke ntawm ob ceg ntoo (merge puag, khi rau ib tus poj koob yawm txwv) siv cov kev tsim kho "git ceg tshiab A...B" thiab "git checkout -b tshiab A ...B ", nyob rau hauv uas "A ... ..Bβ qhia txog kev hloov pauv ntawm kev cog lus βBβ thiab tib yam li cog lus βAβ βTxiv Neej.
Piv txwv li, thaum ua hauj lwm nyob rau hauv ib tug cais kuv-feature ceg, qhov no feature yuav siv tau thaum koj xav pib los ntawm ib tug txawv ceg, piv txwv li, los ntawm tib qhov chaw nyob rau hauv lub tswv ceg los ntawm uas kuv-feature ceg raug kuaj tawm. Yav dhau los, qhov no yuav tsum tau manually tshuaj xyuas lub log hloov, uas yog qhov tsis yooj yim yog tias koj muaj keeb kwm loj ntawm kev hloov pauv, ces khiav "git merge-base master my-feature" los xam cov hash ntawm merge puag ntawm tus tswv thiab kuv-feature ceg. thiab tsim ib ceg tshiab txheeb ze rau cov poj koob yawm txwv "git ceg kuv-lwm-feature hash." Hauv Git 2.22, koj tuaj yeem siv cov syntax "git ceg kuv-lwm-feature A...B" los tsim ib ceg txheeb ze rau kev sib koom ua ke ntawm ob ceg;
Ntxiv "git ceg --show-tam sim no" kev xaiv los tso saib lub npe ntawm ceg tau txais thaum lub sijhawm ua haujlwm;
Ntxiv qhov "git checkout - tsis muaj-overlay - dir" kev xaiv, uas tso cai rau, thaum ua haujlwm ntawm lub checkout, coj cov ntsiab lus ntawm dir directory mus rau ib daim ntawv uas sib haum mus rau lub xeev ntawm tus tswv ceg. Piv txwv li, yog tias muaj cov ntaub ntawv nyob rau hauv lub zos daim ntawv luam ntawm dir directory uas tsis yog nyob rau hauv lub tswv ceg, ces los ntawm lub neej ntawd thaum executing "git checkout master - dir" nws yuav tsum sab laug, thiab yog hais tias tus "--tsis muaj-overlay. β kev xaiv tau teev tseg, nws yuav raug muab tshem tawm;
Ntxiv lub peev xwm los lim cov cim txuas ntxiv txuas nrog rau kev cog lus hauv "git log" tso zis ("trailer" - cov ntaub ntawv ntxiv chij, xws li Kos npe-tawm-los ntawm thiab Co-authored-los ntawm). Nws muaj peev xwm lim cov ntawv los ntawm ob qho tseem ceeb thiab tus nqi, piv txwv li:
"git log --pretty="%(trailers:key=Reviewed-by,valueonly)";
Lub cav tracing tshiab, Trace2, tau raug ntxiv, muab cov qauv tso zis ntau dua thiab tsim qauv. Trace2 tso cai rau koj los sau telemetry txog kev ua haujlwm thiab cov ntaub ntawv ua haujlwm kom ntxaws ntxiv thiab kev debugging (tus tuav yog muab los ntawm tus neeg siv, tsis muaj cov ntaub ntawv xa mus rau sab nraud);
Daim ntawv tshaj tawm "git bisect" tau ua kom nyeem tau ntau dua, uas tam sim no cov teeb meem kev cog lus tau qhia meej dua thiab cov ntsiab lus ntawm cov kev hloov pauv rau txhua cov ntaub ntawv tau tshwm sim (nyob rau theem ntawm cov kab hloov pauv);
Lub heuristics rau kev txiav txim cov npe renamings tau rov ua haujlwm kom tshem tawm cov kev teeb tsa cuav ntawm kev hloov npe cov ntawv. Thaum tsis ntseeg, cov ntawv teev npe tam sim no tau cim tias tsis sib haum;
Cov lus ceeb toom tau tshwm sim thaum koj sim nruab ib lub cim rau ntawm lwm lub cim, uas feem ntau ua yuam kev thiab tuaj yeem ua rau teeb tsa lub cim rau ntawm qhov tsis ncaj ncees lawm (piv txwv li, kev tsim kho xws li "git tag -f -m "cov lus hloov tshiab" my-tag1 my-tag2β³ yuav ua rau ib daim ntawv tsim rau ntawm daim ntawv qub, whereas tus tsim tawm xav kom cov ntawv tshiab yuav tsum tau muab tso rau ntawm qhov kev cog lus taw qhia los ntawm daim ntawv qub);
Generation yog enabled rau bitmap repositories (disk-raws li "reachability bitmaps" qauv), uas khaws cov ntaub ntawv hais txog pawg ntawm cov khoom muaj nyob rau txhua qhov kev cog lus thiab tso cai rau koj los txiav txim sai sai ntawm lub xub ntiag ntawm lub hauv paus khoom. Cov qauv no txo ββqis lub sijhawm ua haujlwm ntawm cov ntaub ntawv rov qab ua haujlwm (git fetch).