{"id":231717,"date":"2023-01-11T10:05:00","date_gmt":"2023-01-11T07:05:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231717"},"modified":"2022-12-25T18:54:14","modified_gmt":"2022-12-25T15:54:14","slug":"kuidas-kasutada-git-konksu-lukufaili-muudatuste-tuvastamiseks-ja-sonumi-kuvamiseks","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/kuidas-kasutada-git-konksu-lukufaili-muudatuste-tuvastamiseks-ja-sonumi-kuvamiseks\/","title":{"rendered":"Kuidas kasutada Git konksu lukufaili muudatuste tuvastamiseks ja s\u00f5numi kuvamiseks"},"content":{"rendered":"\n<p>Kui t\u00f6\u00f6tame koost\u00f6\u00f6tiimi kallal, peab arendaja aeg-ajalt harusse lisama uue paketi, mis seej\u00e4rel liidetakse p\u00f5hipaketiks. Keegi ei pruugi sellest teadlik olla ja t\u00f5mbab lihtsalt kapteni ja k\u00e4ivitab rakenduse, et see puuduva paketi t\u00f5ttu kokku jookseb. Vaatame, kuidas saame Git konksude abil tuvastada a <code>package.json<\/code>v\u00f5i a muudatusi <code>yarn.lock<\/code>ja kuvada s\u00f5numi, mis palub kasutajal puuduvad s\u00f5ltuvused installida.<\/p>\n<h2>Mis on Giti konksud?<\/h2>\n<p>Git konksud vallandatakse, kui toimub m\u00f5ni Git s\u00fcndmus, n\u00e4iteks uus sissemaksmine, kohustuste edastamine v\u00f5rguharusse, kohustuste t\u00f5mbamine, haru kontrollimine v\u00f5i haru \u00fchendamine. Need protsessid l\u00f5pevad 0-ga, kui nad l\u00f5pevad \u00f5igesti, v\u00f5i m\u00f5ne muu v\u00e4\u00e4rtusega, kui nad l\u00f5ppevad valesti.<\/p>\n<p>Kui haagitud protsess l\u00f5peb 0-ga, j\u00e4tkub Git-toiming. Vastasel juhul on Giti toiming blokeeritud. N\u00e4iteks kui konfigureerite oma koodi lintimiseks kinnistamise eelse Giti konksu, k\u00e4ivitab Git selle, kui teete <code>git commit<\/code>. Kui lint eba\u00f5nnestub, ei l\u00e4he kohustus l\u00e4bi.<\/p>\n<p>Giti konksud on midagi Giti integreeritud ja konksude loend on v\u00e4ga ulatuslik. N\u00e4iteks on teil <a href=\"https:\/\/www.git-scm.com\/docs\/githooks#_pre_push\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00f5uke-eelsed<\/a>, <a href=\"https:\/\/www.git-scm.com\/docs\/githooks#_post_merge\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kinnistamisj\u00e4rgsed<\/a>, <a href=\"https:\/\/www.git-scm.com\/docs\/githooks#_post_checkout\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">v\u00e4ljamaksej\u00e4rgsed<\/a>, <a href=\"https:\/\/www.git-scm.com\/docs\/githooks#_post_commit\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">liitmisj\u00e4rgsed<\/a> ja paljud muud <a href=\"https:\/\/www.git-scm.com\/docs\/githooks\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Giti konksud<\/a>.<a href=\"https:\/\/www.git-scm.com\/docs\/githooks#_post_checkout\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/www.git-scm.com\/docs\/githooks#_post_merge\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/www.git-scm.com\/docs\/githooks\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><\/p>\n<h2>K\u00e4ivitage Huskyga Git konksud<\/h2>\n<p>M\u00f5ningate toimingute k\u00e4ivitamiseks Giti konksude k\u00e4ivitamisel saame kasutada <a href=\"https:\/\/startfunction.com\/tag\/node-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node.js<\/a> -i jaoks <a href=\"https:\/\/github.com\/typicode\/husky\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Husky paketti<\/a>. Husky v\u00f5imaldab meil failis m\u00e4\u00e4rata, milliseid skripte Giti konksude k\u00e4ivitamisel k\u00e4ivitada. Installige Husky pakett NPM-iga:<a href=\"https:\/\/startfunction.com\/tag\/node-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><code>package.json<\/code><\/p>\n<pre><code>npm i -D husky<\/code><\/pre>\n<p>v\u00f5i l\u00f5ng:<\/p>\n<pre><code>yarn add -D husky<\/code><\/pre>\n<p>N\u00fc\u00fcd peate Husky Git konksude jaoks l\u00e4htestama. Kui kasutate NPM-i:<\/p>\n<pre><code>npx husky install<\/code><\/pre>\n<p>ja kui kasutate l\u00f5nga<\/p>\n<pre><code>yarn husky install<\/code><\/pre>\n<p>ja k\u00f5ik, olete n\u00fc\u00fcd installinud ja konfigureerinud Husky Git konksude k\u00e4itamiseks. L\u00f5puks on k\u00e4es aeg konks m\u00e4\u00e4ratleda!<\/p>\n<h2>Lukustusfaili muudatuste kontrollimiseks lisage postituste liitmise Git konks<\/h2>\n<p>Tahame k\u00e4ivitada koodi, mis hoiataks meid, kui failid <code>package-lock.json<\/code>v\u00f5i <code>yarn.lock<\/code>on muutunud. See juhtub tavaliselt siis, kui t\u00f5mbame <code>master<\/code>ja need failid on muutunud. Saame seadistada konksu jooksma, kui \u00fchendame haru.<\/p>\n<p>Giti konksude t\u00e4psustamiseks Huskyga m\u00e4\u00e4ratleme need <code>package.json<\/code>failis. Lisage see tipptaseme v\u00f5tmena:<\/p>\n<pre><code>\"husky\": {\n    \"hooks\": {\n      \"post-merge\": \".\/githooks\/post-merge-hook.sh\"\n    }\n}<\/code><\/pre>\n<p>See \u00fctleb, et p\u00e4rast haru \u00fchendamist k\u00e4ivitame selle skripti. N\u00fc\u00fcd peame selle looma. Looge kaust, lisage sellele fail ja m\u00e4\u00e4rake see k\u00e4ivitatavaks:<\/p>\n<pre><code>mkdir githooks &amp;&amp; cd githooks &amp;&amp; touch post-merge-hook.sh &amp;&amp; chmod +x post-merge-hook.sh<\/code><\/pre>\n<p>Kui te ei m\u00e4\u00e4ra seda k\u00e4ivitatavaks, kuvatakse Husky Giti konksu k\u00e4ivitamisel t\u00f5rge &quot;Luba keelatud&quot;. N\u00fc\u00fcd redigeerige faili Vimi v\u00f5i oma lemmikredaktoriga ja kleepige see:<\/p>\n<pre><code>\nchangedFiles=\"$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)\"\n\nrunOnChange() {\n    echo \"$changedFiles\" | grep -q \"$1\" &amp;&amp; echo -e \"$2\"\n}\n\nrunOnChange package-lock.json \"033[35m*******************************************************************************n* 033[33mpackage-lock.json033[35m has changed. Run033[33m npm install033[35m to update your dependencies. *n*******************************************************************************\"\n\nexit 0\n<\/code><\/pre>\n<p>See prindib s\u00f5numi lilla, s\u00f5nadega <code>package-lock.json<\/code>ja <code>npm install<\/code>oran\u017eiga. See skript kontrollib, kas <code>package-lock.json<\/code>seda v\u00e4rskendati, ja kui soovite selle <code>yarn.lock<\/code>asemel testida, peate lihtsalt failinime asendama.<\/p>\n<h2>Testige lukustusfaili muutmise kontrolli<\/h2>\n<p>Selle testimine ei ole liiga keeruline. P\u00f5him\u00f5tteliselt peate lihtsalt looma uue haru, installima m\u00f5ne paketi, et <code>package-lock.json<\/code>seda muudetaks, kinnitama selle ja l\u00fclituma eelmisele harule. K\u00f5ik, mida saab teha selle k\u00e4suga:<\/p>\n<pre><code>git checkout -b testbranch &amp;&amp; npm i -D lint-staged &amp;&amp; git add. &amp;&amp; git commit -m \"test\" &amp;&amp; git checkout - <\/code><\/pre>\n<p>N\u00fc\u00fcd peate selle selle haruga liitma<\/p>\n<pre><code>git merge testbranch<\/code><\/pre>\n<p>See k\u00e4ivitab liitmisj\u00e4rgse konksu ja k\u00e4ivitab meie skripti. Seej\u00e4rel n\u00e4ete k\u00e4sureal seda teadet, kuna <code>package-lock.json<\/code>\u00fchendamise ajal on seda muudetud:<\/p>\n<h2>Lukustusfaili muudatuse tuvastamine VS-koodis<\/h2>\n<p>See oli ainult \u00fcks kasutuskord. Git hooke saab kasutada mitmel viisil, n\u00e4iteks populaarse paketi Prettier k\u00e4ivitamiseks enne, kui midagi koodi vormindate.<\/p>\n<p>Selle konkreetse juhtumi jaoks on alternatiive, et kontrollida, kas <code>package-lock.json<\/code>seda v\u00e4rskendati. N\u00e4iteks VS Code jaoks on olemas vahva pakett <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=matteopieroni.refresh-npm-packages\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Refresh NPM Packages<\/a>, mis muudatuse tuvastamisel palub teil pakette v\u00e4rskendada. See t\u00f6\u00f6tab olenemata sellest, kas olete Giti konksud seadistanud v\u00f5i mitte. Veel \u00fcks tore asi on see, et see toimib harude vahetamisel isegi ilma \u00fchte neist teise \u00fchendamata.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-157772-61e6c09a98d0e.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-157772-61e6c09a98d0e.png\" alt=\"Kuidas kasutada Git konksu lukufaili muudatuste tuvastamiseks ja s\u00f5numi kuvamiseks\" ><\/a><\/p>\n<p>Kuid selle eeliseks, mida oleme siin rakendanud, on see, et see t\u00f6\u00f6tab k\u00e4sureal ja see ei s\u00f5ltu konkreetsest koodiredaktorist. Kui t\u00f6\u00f6tate n\u00e4iteks avatud l\u00e4htekoodiga projektiga, v\u00f5ite soovida seadistada siin kirjeldatut, nii et k\u00f5igil kaasatud arendajatel oleks \u00fchine alus, olenemata nende seadistustest.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/startfunction.com\" class=\"external external_icon\">startfunction.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Siit saate teada, kuidas tuvastada muudatusi failis package-lock.json v\u00f5i failis yarn.lock ja n\u00e4idata s\u00f5numit Git hooksi ja Husky abil<\/p>\n","protected":false},"author":1,"featured_media":157773,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[770,718,749,781,833,894,842],"tags":[1165],"class_list":["post-231717","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allika-juhtimine","category-arendaja","category-avatud-laehtekoodiga","category-avatud-laehtekoodiga-tarkvara","category-juhend-algajatele","category-kood","category-opetused","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/231717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=231717"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/231717\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/157773"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=231717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=231717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=231717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}