ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¯á¶ážáá¡ááŒá¬ááœááºááŒáá·áºáá±áá¬ážáá±á¬á¡áááºážá¡ááŒá áºááááºážáá»á¯ááºááŸá¯á áá ẠGit 2.41 ááá¯áá¯ááºáá±áá²á·áááºá Git ááẠá¡ááá¯ááºážá¡áááºááœá²ááŒááºážááŸáá·áº áá±á«ááºážá ááºážááŒááºážááá¯á·ááᯠá¡ááŒá±áá¶á ááŒá±á¬ááºážááœááºááŒááºááœááºááá¯ááºáá±á¬ ááá¯ááºážááá¯ááºáá±á¬ ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáááááá¬áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááá·áº áá°ááŒáá¯ááºá¡áá»á¬ážáá¯á¶ážá áá¯á¶ááŒááºá áááºáá»áááŒá®áž á áœááºážáá±á¬ááºáááºááŒáá·áº áá¬ážááŸááºážááááºážáá»á¯ááºááŸá¯á áá áºáá»á¬ážáá²ááŸáá áºáá¯ááŒá áºáááºá áááá¯ááºážáááá¯ááºáá¬ááŸá¯ááŸáá·áº "backdating" á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá¶ááá¯ááºáááºááŸáá á±áááºá commit áá áºáá¯á á®ááŸá ááááºáááá¯ááºážáá áºáá¯áá¯á¶ážááᯠááœááºááá¯ááºáá±á¬áááºážááŒáá·áº ááœá²áá¯ááºááŒááºážááᯠá¡áá¯á¶ážááŒá¯áá¬ážááŒá®ážá áááºáá áºáá¯áá»ááºážá á®ááᯠá¡áááºááŒá¯ááá¯ááºááŒá®áž developer áá»á¬ážá áá áºáá»á áºáááºáááºááŸááºáá»á¬ážááŒáá·áº áááááŒá¯ááá¯ááºáááºá
ááááºááœááºááŸááá¬ážááá·áº áá¬ážááŸááºážááŸáá·áº ááŸáá¯ááºážááŸááºáá«á áá¬ážááŸááºážá¡áá áºááœáẠá¡ááŒá±á¬ááºážá¡áá² ááá áá¯ááᯠáááºáá¶áá²á·ááŒá®áž developer 542 áŠážá áá«áááºááŸá¯ááŒáá·áº ááŒááºáááºáá¬ážááŒá®áž 95 ááẠáááá¡ááŒááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááœáẠáá«áááºáá²á·áááºá á¡ááá áá®ááœááºáááºážáá áºááŸá¯áá»á¬áž-
- ááá¯ááŸá±á¬ááºááŸá¯ááœáẠáááºááœáŸááºážááŒááºážáááŸááá±á¬ áááºááŸááºážááá®áá±á¬ á¡áá¬áá»á¬ážááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠááá¯ááºááœááºááŒááºáž (á¡ááá¯ááºážá¡áááºáá»á¬áž ááá¯á·ááá¯áẠáááºáá»á¬ážááᯠáááºááœáŸááºážááŒááºážáááŸááá«)á áááºááŸááºážááá®ááá¯ááºáá±á¬ á¡áá¬áá»á¬ážááᯠá¡ááŸáá¯ááºá
á¯áá±á¬ááºážáá°á០áááºááŸá¬ážááá¯ááºáá±á¬áºáááºáž ááŒáá¯ááºááœá²á¡ááŒá±á¡áá±áá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááẠáááºááŸá¬ážááŒááºážáááŒá¯áá® á¡áá»áááºá¡ááá¯ááºážá¡áá¬áá
áºáá¯á¡áá ááá¯ááŸá±á¬ááºáá¯á¶ááœáẠááŸááá±áá«áááºá áááºááŸááºážááá®ááá¯ááºáá±á¬ á¡áá¬ááá¹áá¯áá»á¬ážá áá¬áááᯠááŒá±áá¬áá¶ááá¯ááºáááºá á¡áá¬ááá¹áá¯á¡á¬ážáá¯á¶ážááẠáá¯á¶ááŒá±á¬ááºážáá²ááŸá¯á¡áá»áááºááŸáááá·áº pack-file áá
áºáá¯ááœáẠáááºážááá¯á·á¡á¬áž ááááºážáááºážááœáá·áºáááŒá¯ááá·áº á¡áá¬ážáá°á¡áá¬áá»á¬ážá ááŒá±á¬ááºážáá²áá»áááºááŒáá·áº áááºážááá¯á·ááŸáá·áº á¡ááœáŸááºážáá»á¬ážááᯠáá»áááºáá¬ážááẠááá¯á¡ááºáá«áááºá ááááºáá áááºááŸááºážááá®ááá¯ááºáá±á¬ á¡áá¬áá
áºáá¯á
á®ááᯠáá®ážááŒá¬ážááá¯ááºáá
áºáá¯ááœáẠááááºážáááºážáá¬ážáá²á·ááŒá®áž áááºážááẠáá»ááºááá¯á·áááá±ážááá·áº áááºáááºáá±á¬ á¡áá¬ááá¹áá¯áá»á¬ážá
áœá¬ááŸááá»áŸáẠááŒá¿áá¬áá»á¬ážááŒá
áºá
á±áááºá áá¯ááºáá±ááŸá¯á¡áá
áºááœáẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áºá áááºááŸááºážááá®ááá¯ááºáá±á¬ á¡áá¬ááá¹áá¯áá»á¬ážááᯠáá¯ááºááá¯ážáááºá¡ááœáẠ"cruft packs" ááá¹ááá¬ážá¡á¬áž á¡áá¯á¶ážááŒá¯áá¬ážááŒá®ážá áá¯ááºááá¯ážááá¯ááºáá
áºáá¯ááœáẠáá»áááºáááºááááá±á¬ á¡áá¬á¡á¬ážáá¯á¶ážááᯠááááºážáááºážáááºááŸáá·áº áá®ážááŒá¬ážááá¬ážáá
áºáá¯á¡ááœááºážááŸá á¡áá¬ááá¹áá¯áá
áºáá¯á
á®ááŸá á¡áá¬ááá¹áá¯áá
áºáá¯á
á®á ááŒá¯ááŒááºááœááºážáá¶áá»áááºá¡áá±á«áº áá±áá¬ááᯠáááºáááºá
á±áááºá â.mtimesâ ááá¯ážáá»á²á·ááŸá¯ááŸáá·áºá¡áá° ááá¯ááºááᯠâ.idxâ ááá¯ážáá»á²á·ááŸá¯ááŒáá·áº á¡ááœáŸááºážááá¯ááºááᯠá¡áá¯á¶ážááŒá¯á áá»áááºáááºáá¬ážáááºá
- áá¯á¶áá±á¡á¬ážááŒáá·áºá á¡áá¯ááºááá¯ááºáá»á¬ážá¡ááœáẠáá
áºáá±á«áºááœáẠááŒá±á¬ááºážááŒááºá¡ááœáŸááºáž (revindex) ááᯠááááºážááááºážááŒááºážááᯠááœáá·áºáá¬ážáááºá torvalds/linux repositories ááœáẠá
ááºážáááºáá±á¬á¡áá«á ááŒá±á¬ááºážááŒááºá¡ááœáŸááºážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠá¡áááºážá¡ááŒá
áº-á¡áá»á¬ážáá¯á¶áž "git push" áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠ1.49 ááŒááẠá¡ááŸáááºááŒáŸáá·áºááá¯ááºá
á±áᬠ"git cat- ááᯠá¡áá¯á¶ážááŒá¯á á¡áá¬ááá¹áá¯áá
áºáá¯áá¡ááœááºá¡á
á¬ážááᯠááœááºáá»ááºááŒááºážáá²á·ááá¯á·áá±á¬ ááá¯ážááŸááºážáá±á¬áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá ááá¯áẠ--batch='%(objectsize:disk)' » 77 ááŒáááºá ááŒá±á¬ááºážááŒááºá¡ááœáŸááºážáá
áºáá¯áá«ááŸááá±á¬ ááá¯ááºáá»á¬áž (.rev") ááᯠ".git/objects/pack" áááºážááœáŸááºááœáẠááááºážáááºážáá¬ážáááºááŒá
áºáááºá
Git ááẠáá®ážááŒá¬ážááá¯ááºáá»á¬ážááœáẠááá·áºáá¬ážááá·áº á¡áá¬ááá¹áá¯áá¯á¶á á¶ááŒáá·áº áá±áá¬á¡á¬ážáá¯á¶ážááᯠááááºážáááºážáá¬ážááŒá±á¬ááºáž áááááá«á repository ááŸáá·áº á¡áá¯ááºáá¯ááºááŒááºážá á áœááºážáá±á¬ááºáááºááᯠááá¯ážááŒáŸáá·áºáááºá¡ááœáẠá¡áá¬ááá¹áá¯áá»á¬ážááᯠpack files áá»á¬ážááœáẠáááºáá±á¬ááºážááá·áºááœááºážáá¬ážáá«áááºá áááºážááœáẠá¡áá»ááºá¡áááºáá»á¬ážááᯠáá áºáá¯ááŒá®ážáá áºáᯠááá¯ááºááŒáá·áºáá±ááá·áº á¡áá¬ááá¹áá¯áá»á¬ážá á á®ážááŒá±á¬ááºážáá¯á¶á á¶ááŒáá·áº áááºááŒááẠ(git fetch ááŸáá·áº git ááŒáá·áº á¡áá¬ááá¹áá¯áá»á¬ážááᯠááœáŸá²ááŒá±á¬ááºážááá·áºá¡áá« á¡áá¬ážáá°áá±á¬áºáááºááᯠá¡áá¯á¶ážááŒá¯áááºá push commands)á á¡ááœáŸááºážááá¯áẠ(.idx) ááᯠpack file áá áºáá¯á á®á¡ááœáẠáááºáá®ážáá¬ážááŒá®ážá áááºážááẠáá±ážáá¬ážááá·áºá¡áá¬ááá¹áá¯á¡á¬áž á¡áá¬ááá¹áá¯á¡ááŸááºá¡áá¬ážááŒáá·áº ááááºážáááºážáá¬ážááá·áº á¡áá¯ááºááá¯ááºááŸá á¡á±á¬á·ááºáááºááᯠá¡áá»ááºá¡ááŒáẠáá¯á¶ážááŒááºááá¯ááºá á±áá«áááºá
á¡áá áºááœááºááŸáááŸá¯ááœááºáá«áááºáá±á¬ ááŒá±á¬ááºážááŒááºá¡ááœáŸááºážááẠpack file ááŸá á¡áá¬ááá¹áá¯ááááºáá±áá¬á¡áá»ááºá¡áááºá០á¡áá¬ááá¹áᯠID ááᯠáá¯á¶ážááŒááºááá·áºáá¯ááºáááºážá ááºááᯠáá»á±á¬ááœá±á·á á±ááẠáááºááœááºáááºá ááááºáá á¡áá¯ááºááá¯ááºááᯠááœá²ááŒááºážá áááºááŒá¬á ááºá¡ááœááºáž ááá¯ááá¯á·áá±á¬ááŒá±á¬ááºážáá²ááŒááºážá¡á¬áž áá»ááºááŒááºá áœá¬áá¯ááºáá±á¬ááºáá²á·ááŒá®áž áááºážá¡ááœáŸááºážáá»á¬ážááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯ááŒááºážá¡á¬áž ááœáá·áºáááŒá¯áá² á¡ááŒáááºááá¯ááºáž á¡ááœáŸááºážááááºážááᯠáá¯ááºáá±ážááẠááœááºážá¡á¬ážáá±ážáá²á·ááá·áº ááŸááºáá¬ááºááœááºáᬠááááºážáááºážáá²á·áááºá á¡ááœáŸááºážáá áºáá¯áááºáá±á¬ááºááŒááºážááá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¬ááá¹áá¯-áááºáá±áá¬á¡ááœá²áá»á¬ážáááºáá±á¬ááºááŒááºážááŸáá·áº á¡á á¯á¡áá±ážááŒá®ážáá»á¬ážá¡ááœáẠá¡áá»áááºááŒá¬ááŒáá·áºááá¯ááºáá±á¬ááŒá±á¬áá·áº áááºážááᯠáá¬áá°ážá¡ááá¯ááºá á®ááŒááºážááá¯á· áá»áŸá±á¬á·áá»áááºá
á¥ááá¬á¡á¬ážááŒáá·áºá ááá¯ááºááá¯ááºá¡ááœáŸááºážááᯠá¡áá¯á¶ážááŒá¯ááá·áº á¡áá¬ááá¹áá¯áá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠááŒáááá·áº áá¯ááºáá±á¬ááºáá»ááºááẠá¡áá¬ááá¹áá¯áá»á¬ážá á¡ááœááºá¡á á¬ážááᯠááŒáááá·áº áá¯ááºáá±á¬ááºáá»ááºááẠ62 á ááá¯ááŒááºááŒá®áž áááºáá±áá¬á០á¡áá¬ááá¹áá¯ááá¯ááºáᬠáááºáá¶áá±ážáá±áá¬ááᯠá¡ááœáŸááºážááááºááá¯ááºáá«á ááŒá±á¬ááºážááŒááºá¡ááœáŸááºážááᯠá¡áá¯á¶ážááŒá¯ááŒá®ážáá±á¬ááºá á€áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááẠááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº áá°áá®áá±á¬á¡áá»áááºááᯠá áááºáá²á·áááºá á¡áááºááá·áºáá¯ááºáá¬ážáá±á¬áá±áá¬ááᯠdisk ááŸááá¯ááºááá¯ááºááœáŸá²ááŒá±á¬ááºážááŒááºážááŒáá·áº fetch ááŸáá·áº push commands áá»á¬ážááá¯áá¯ááºáá±á¬ááºáá±á¬á¡áá«ááœáẠReverse indexes áá»á¬ážááẠá¡áá¬ááá¹áá¯áá»á¬ážáá±ážááá¯á·ááŒááºážáá¯ááºáááºážááᯠá¡ááŸáááºááŒáŸáá·áºááá¯ááºá á±áá«áááºá
- ááá·áºáááºááááºážáááºážáá¬ážáá¬áá»á¬ážááá¯áááºáá±á¬ááºááŒáá·áºááŸá¯ááá·áºá¡áá« á¡áá±á¬ááºá¡áá¬ážáá»á¬ážááŒááºáááºážáááºá¡áá¯á¶ážááŒá¯ááá·áº "á¡áá±á¬ááºá¡áá¬ážáá»á¬ážá¡áá°á¡áá®áá±ážáá°" áááá¯ááá¯áá±á¬ááá¯á· á¡áá±á¬ááºá¡áá¬ážááá¯ááºááœááºáá°ááŸáá·áº á¡áá±á¬ááºá¡áá¬ážá áá á áºááŒááºážáááºáá±á¬ááºááŸá¯ááŒá¬ážááŸá WWW-Authenticate áá±á«ááºážá á®ážáá»á¬ážááᯠááŒááºááœá¬ážááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážááá·áºááœááºážáá¬ážáá«áááºá WWW-Authenticate áá±á«ááºážá á®ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á០ááá·áºá¡á¬áž ááá¯ááŸá±á¬ááºáá¯á¶áá»á¬ážááá¯á· á¡áá¯á¶ážááŒá¯áá°áááºáá±á¬ááºááœáá·áºááᯠááá¯ááá¯á¡áá±ážá áááºááœá²ááŒá¬ážáᬠOAuth áááºáááºáá±á¬ááºááá·áºáááºáá»ááºáá»á¬ážááᯠáá»á±á¬áºááŒááºááá¯ááºá á±áá«áááºá
- áá±á¬áºáááºááœá±ážáá»ááºá áᬠ"%(ááŸá±á·-áá±á¬ááº- )" á á¡áá»áá¯á·áá±á¬áá¬áááœá²áá áºáá¯ááŸá áááááááºáá»á¬áž ááá¯á·ááá¯áẠáá»ááºááœááºááŸá¯ á¡áá±á¡ááœááºááŸáá·áºáááºáááºááŒá®áž á¡ááŒá¬ážáá¬áááœá²áá áºáá¯ááŸáá·áº áááºááá¯ááºááẠ(áá¬áááœá²áá áºáá¯ááẠáááááŒá¯ááŸá¯á¡ááá·áºááœáẠáááºáá»áŸáá±á¬ááºáá»áá±ááẠááá¯á·ááá¯áẠá¡ááŒá¬ážáá¬áááœá²áá áºáá¯áááŸá±á·ááœáẠááŸááá±áááº) ááŸáá·áºáááºáááºááá·áº á¡áá»ááºá¡áááºáá»á¬ážááᯠáá»ááºáá»ááºážáááá¯ááºá á±áá«áááºá ááááºá á€á¡áá»ááºá¡áááºáá»á¬ážááá¯ááá°ááẠáá®ážááŒá¬áž command ááŸá áºáᯠááá¯á¡ááºáááº- "git rev-list --count main..my-feature" ááŸáá·áº "git rev-list --count my-feature.. main" áá»á±á¬ááºáá±áá±á¬ commits á¡áá±á¡ááœááºááᯠááá°áááºá ááá¯ááœáẠááá¯áá²á·ááá¯á·áá±á¬ ááœááºáá»ááºááŸá¯áá»á¬ážááᯠá á¬áá±ážáááááá¬áá»á¬ážááᯠááá¯ážááŸááºážá á±ááŒá®áž áá¯ááºáá±á¬ááºáá»áááºááᯠáá»áŸá±á¬á·áá»áá±ážááá·áº ááœáŸááºááŒá¬ážáá»ááºáá áºáá¯áááºážááá¯á· áá»áŸá±á¬á·áá»ááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá±á«ááºážá ááºážááá¬ážáá±á¬á¡ááá¯ááºážá¡áááºáá»á¬ážááá¯ááŒáááŒá®áž áááºážááá¯á·ááẠáááºáá¡ááá¯ááºážá¡áááºááá±á¬ááºááœááºááŸááááŸáááᯠá¡áá²ááŒááºáááºá áááºááẠone-liner ááá¯áá¯á¶ážááá¯ááºáááº- $git for-each-ref --no-merged=origin/HEAD \ --format=' %(refname:short) %(ahead-behind :origin/HEAD)' \ refs/heads/tb/ | áá±á¬áºáᶠ-t tb/cruft-extra-tips 2 96 tb/for-each-refâ16 96 tb/roaring-bitmaps 47 3 tb/roaring-bitmaps ááá¯áááºáá¯ááºáá« 17 2 ááááºáá¡áá¯á¶ážááŒá¯áá²á·ááá·áº script á¡á á¬áž 96 áááá¯ááŸá±ážáááº- $ git for-each-ref â format='%(refname:short)' --no-merged=origin/HEAD \refs/heads/tb | áááºáá±á áẠref do ahead="$(git rev-list --count origin/HEAD..$ref)" behind="$(git rev-list --count $ref..origin/HEAD)" printf "%s %d %d\n" "$ref" "$ahead" "$behind" ááŒá®ážááŒá® | áá±á¬áºáᶠ-t tb/cruft-extra-tips 16 96 tb/for-each-refâ47 3 tb/roaring-bitmap XNUMX XNUMX ááá¯áááºáá¯ááºáá«
- "--porcelain" option ááᯠ"git fetch" command ááœáẠááá·áºááœááºážáá¬ážááŒá®ážá áá±á¬áºáááºááœáẠoutput ááᯠ"áá¯ááºáá±ážáááº" âá áááºááŸá¯ááá¯ááºááŸá¯áááºážáá±á¬áºáááºáž áá¬ááºááœáŸááºážáá»á¬ážááœáẠááœá²ááŒááºážá áááºááŒá¬ááẠááá¯áá¡áááºááŒá±áááºá
- áá¬áá¬á០á¡áá¬ááá¹áá¯á¡á á¯á¶á¡áááºááᯠáá¬áá¬áá»á¬ážááá¯áᬠá á áºáá±ážááá·áºáááºááŒááºážááŒáá·áº á¡áá»áááºáá¯ááºáááºáá¬á á±ááá·áº á¡áá¬ááá¹áá¯á¡á á¯á¶á¡áááºááᯠáá¬áá¬á០áá±ážááá¯á·áá¬ážááŒá±á¬ááºáž á¡áááºááŒá¯ááá·áºá¡ááá·áºááœáẠáá±áááœááºážááá¯ááŸá±á¬ááºááŸá¯ááœáẠááá·áºááºáá»á¬ážááŸááºáá¬ážááŒááºážááŒáá·áº "fetch.hideRefs" áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡ááŸáááºááŒáŸáá·áºááẠ"fetch.hideRefs" áááºáááºááᯠááá·áºááœááºážáá²á·áááºá áááºááá·áºáá±áá¬á០ááá¯ááºááá¯ááºááá°áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááŒá±áá¬áá¶áá¬ážáá±á¬ ááŒááºáááá·áºááºáá»á¬ážá áœá¬áá«ááŸááá±á¬ ááá¯ááŸá±á¬ááºáá¯á¶áá»á¬ážááŸááá±á¬ á áá áºááœáẠá ááºážáááºááá·áºá¡áá« $remote áá áºááŸááºáá¬áá¬áᶠáá±ážááá¯á·áá¬ážáá±á¬ ááá·áºááºáá»á¬ážá¡á¬ážáá¯á¶ážááŸááœá²á áá»ááºááá·áºáá»á¬ážá¡á¬ážáá¯á¶ážááŸááœá²á "git fetch" áá¯ááºáá±á¬ááºáá»ááºááᯠáááá Ạ20 á០30 á áá¹ááá·áºá¡áá áá»áŸá±á¬á·áá»áá±ážáá«áááºá $git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remote/$remote \ fetch $remote
- "git fsck" á¡áááá·áºááẠá¡áá»áá·áºáá»ááºááŒá á¬ážááŸá¯á checksum ááá¯ááºáá®ááŸá¯ááŸáá·áº áááºáá±á¬ááºááá¯ááºááŸá¯ áá áºááŒá±áá¯á¶áá»á¬ážááŸáá·áº ááŒá±á¬ááºážááŒááºá¡ááœáŸááºážáá»á¬ážááœáẠáááºááá¯ážáá»á¬ážá ááŸááºáááºááŸá¯ááᯠá á áºáá±ážááá¯ááºá áœááºážááᯠáá±á¬áºáá±á¬ááºáá±ážáááºá
- "git clone --local" ááœááºáááºážááẠááᯠ$GIT_DIR á¡ááœááºážááŸá áááºá¹áá±áááá·áºááºáá»á¬ážáá«ááŸááá±á¬ ááá¯ááŸá±á¬ááºáá¯á¶á០áá°ážáá°ááẠááŒáá¯ážáááºážáá±á¬á¡áá«ááœáẠá¡ááŸá¬ážá¡ááœááºážáá áºáᯠááŒááááºá
source: opennet.ru