Hoʻokuʻu ʻia o ka ʻōnaehana mana kumu i hoʻolaha ʻia ʻo Git 2.22

Waiho ʻia e hoʻokuʻu ʻia o ka ʻōnaehana hoʻomalu kumu hoʻolaha ʻO Git 2.22.0. ʻO Git kekahi o nā ʻōnaehana mana mana kaulana, hilinaʻi a kiʻekiʻe hoʻi, e hāʻawi ana i nā mea hana hoʻomohala non-linear maʻalahi e pili ana i ka lālā a me ka hoʻohui ʻana. No ka hōʻoia ʻana i ka pono o ka mōʻaukala a me ke kūʻē ʻana i nā hoʻololi retroactive, hoʻohana ʻia ka hashing implicit o ka mōʻaukala holoʻokoʻa mua i kēlā me kēia hana, a hiki nō hoʻi ke hōʻoia i nā hōʻailona pākahi a me nā hana me nā pūlima kikohoʻe o nā mea hoʻomohala.

Hoʻohālikelike ʻia me ka hoʻokuʻu mua ʻana, ua hoʻokomo ʻia ka mana hou i nā hoʻololi 745, i hoʻomākaukau ʻia me ke komo ʻana o nā mea hoʻomohala 74, a ʻo 18 i komo i ka hoʻomohala no ka manawa mua. ka papa kuhikuhiE nā mea hou:

  • Loaʻa mai ka hoʻokuʻu ʻana 1.18, ke ʻano hou commit rebase mode "git rebase --rebase-merges" e hoʻololi i ka koho "--preserve-merges" kahiko, i hoʻopau ʻia i kēia manawa. Hoʻohana ʻia ka hana "git rebase" e hoʻololi i kahi ʻano o nā hana me kahi kumu kumu hou, no ka laʻana, e hoʻoneʻe i kahi lālā ʻokoʻa e hoʻomohala ana i kahi hiʻohiʻona hou i ke kūlana o kēia manawa o ka lālā kumu, e komo pū ana nā hoʻoponopono i hoʻohui ʻia ma hope o ka lālā. :

    o - o - o (koʻu hiʻohiʻona)

    /

    o - o - o - o - o (master)

    o - o - o (koʻu hiʻohiʻona)

    /

    o - o - o - o - o (master)

    No ka mālama ʻana i ke ʻano o ka lālā ma kahi lālā i neʻe ʻia, hiki ke hoʻohana mua ʻia ke koho "—preserve-merges", i ka wā e holo ai i ke ʻano pāʻani (git rebase -i -preserve-merges), ʻae ʻia ka hoʻoponopono ʻana i ka mōʻaukala commit, ʻaʻole naʻe. hōʻoia i ka mālama piha ʻana o ka hale waihona. ʻO ke ʻano "--rebase-merges" hou e hiki ai iā ʻoe ke mālama i ke ʻano o nā hoʻololi i ka lālā e neʻe ʻia ana, ʻoiai e hāʻawi ana i kahi ʻano o nā hana pili, me ka holoi ʻana, hui hou, a me ka hoʻololi ʻana i nā hana.

    No ka laʻana, "--rebase-merges" Ua apono Hoʻouka hou i nā hana mai kahi lālā ʻokoʻa i kahi lālā kumu hou, ʻoiai e mālama ana i ke ʻano o ka lālā i ka lālā neʻe, a e hoʻololi i nā memo commit ma ka lele.

  • Hoʻohui i ke kākoʻo no ka hana ʻana i kahi lālā hou e pili ana i ka hopena o ka hoʻoholo ʻana i ke kumu hoʻohui o ʻelua mau lālā ʻē aʻe (hoʻohui i ke kumu, hoʻopaʻa ʻia i kahi kupuna maʻamau) me ka hoʻohana ʻana i nā kūkulu "git branch new A...B" a me "git checkout -b new A...B", kahi o "A ...B" e pili ana i ka wehewehe ʻana i kahi kumu hoʻohui ma waena o ʻelua mau hana i ʻōlelo ʻia, e like me ke ʻano o ka "git checkout A...B" e hoʻololi i ka HEAD i ka base commit a me "diff A. ..B" hōʻike i nā hoʻololi ma waena o commit "B" a me ka like me commit "A" "Ancestor.

    No ka laʻana, i ka hana ʻana i kahi lālā ʻokoʻa o kaʻu hiʻohiʻona, hiki ke hoʻohana ʻia kēia hiʻohiʻona inā makemake ʻoe e hoʻomaka mai kahi lālā ʻē aʻe, no ka laʻana, mai kahi hoʻokahi i ka lālā kumu kahi i nānā ʻia ai ka lālā my-feature. Ma mua, pono kēia i ka nānā lima ʻana i ka log hoʻololi, he mea kūpono ʻole inā loaʻa iā ʻoe kahi mōʻaukala nui o nā loli, a laila e holo ana i ka "git merge-base master my-feature" e helu i ka hash o ka waihona merge ma waena o ka haku a me kaʻu mau lālā. a me ka hana ʻana i lālā hou e pili ana i ka kūpuna maʻamau " git branch my-other-feature hash." Ma Git 2.22, hiki iā ʻoe ke hoʻohana i ka syntax "git branch my-other-feature A...B" e hana i kahi lālā e pili ana i ke kumu hoʻohui o ʻelua mau lālā ʻē aʻe;

  • Hoʻohui ʻia ka "git branch --show-current" koho e hōʻike i ka inoa o ka lālā i loaʻa i ka wā o ka hana ʻana;
  • Hoʻohui ʻia ka koho "git checkout -no-overlay - dir", e hiki ai, i ka wā e hana ana i kahi hana hoʻopaʻa, e lawe i nā mea o ka papa kuhikuhi i kahi ʻano e pili pono ana i ka mokuʻāina o ka lālā kumu. No ka laʻana, inā he faila i loko o ke kope kūloko o ka papa kuhikuhi ʻaʻole i loko o ka lālā kumu, a laila ma ke ʻano maʻamau i ka wā e hoʻokō ai i ka "git checkout master - dir" e waiho ʻia, a inā ʻo "--no-overlay. ” koho ʻia, e holoi ʻia;
  • Ke hoʻohana nei ke kauoha "git diff" i kahi API ākea no nā koho parsing, kahi e hiki ai ke hoʻohui i ka lawelawe ʻana i nā koho me nā pono git ʻē aʻe. No ka laʻana, i ka "git diff", aia nā koho āpau i kēia manawa i ko lākou mau mea kū'ē ("--function-context" a me "--no-function-context");
  • Hoʻohui i ka hiki ke kānana i nā hōʻailona lōʻihi i hoʻopili ʻia i ka commits i ka "git log" output ("trailer" - nā hae ʻike hou, e like me Signed-off-by a me Co-authored-by). Hiki ke kānana i nā lepili ma ke kī a me ka waiwai, no ka laʻana:
    "git log --pretty="%(trailers:key=Nānā-e,valueonly)";

  • Ua hoʻohui ʻia kahi ʻenekini tracing hou, ʻo Trace2, e hāʻawi ana i kahi ʻano hoʻopuka maʻalahi a hoʻonohonoho ʻia. Hiki iā Trace2 ke hōʻiliʻili i ka telemetry e pili ana i nā hana i hoʻokō ʻia a me ka ʻikepili hana no ka ʻike kikoʻī a me ka debugging (ua hāʻawi ʻia ka mea hoʻohana e ka mea hoʻohana, ʻaʻohe ʻikepili i hoʻouna ʻia ma waho);
  • Ua maʻalahi ka heluhelu ʻana i ka hōʻike "git bisect", kahi i hōʻike ʻia ai nā pilikia pilikia a hōʻike ʻia nā helu hōʻuluʻulu no nā loli no kēlā me kēia faila (ma ke kiʻekiʻe o ka helu o nā laina i hoʻololi ʻia);
  • Ua hana hou ʻia nā heuristics no ka hoʻoholo ʻana i ka hoʻololi ʻana o ka papa kuhikuhi no ka hoʻopau ʻana i ka hoʻokomo hewa ʻana i nā lepili inoa. Inā kānalua ʻia, ua hōʻailona ʻia ia mau papa kuhikuhi he paio;
  • Hōʻike ʻia kahi ʻōlelo aʻo ke hoʻāʻo ʻoe e hoʻokomo i kahi hōʻailona ma kahi hōʻailona ʻē aʻe, ka mea maʻamau i hana hewa ʻia a hiki ke alakaʻi i ka hoʻonohonoho ʻana i ka hōʻailona ma ka hana hewa (no ka laʻana, kahi hana e like me "git tag -f -m "updated message" my-tag1 my- tag2″ e hana ʻia kahi hōʻailona ma ka hōʻailona kahiko, ʻoiai ua manaʻo ka mea hoʻomohala e hoʻokomo ʻia ka hōʻailona hou ma ka commit i kuhikuhi ʻia e ka tag kahiko);
  • Hoʻohana ʻia ka hana no nā waihona bitmap (ka hoʻonohonoho "reachability bitmaps" i hoʻokumu ʻia), kahi e mālama ai i nā ʻikepili e pili ana i nā pūʻulu o nā mea i loaʻa no kēlā me kēia hana a hiki iā ʻoe ke hoʻoholo koke i ke ʻano o kahi mea kumu. Hoʻemi nui kēia ʻano i ka manawa hoʻokō o nā hana kiʻi ʻikepili (git fetch).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka