የተከፋፈለው የምንጭ ቁጥጥር ስርዓት Git 2.25

ይገኛል የተከፋፈለ ምንጭ ቁጥጥር ስርዓት መልቀቅ Git 2.25.0. Git በቅርንጫፍ እና በማዋሃድ ላይ ተመስርተው ተለዋዋጭ ያልሆኑ ቀጥተኛ ያልሆኑ የልማት መሳሪያዎችን በማቅረብ በጣም ታዋቂ, አስተማማኝ እና ከፍተኛ አፈፃፀም የስሪት ቁጥጥር ስርዓቶች አንዱ ነው. የታሪኩን ታማኝነት ለማረጋገጥ እና ወደ ኋላ የሚመለሱ ለውጦችን ለመቋቋም ፣በእያንዳንዱ ቁርጠኝነት ውስጥ ያለፈውን ታሪክ ሁሉ ስውር ሃሽንግ ስራ ላይ ይውላል ፣እንዲሁም የግለሰብ መለያዎችን ማረጋገጥ እና በገንቢዎች ዲጂታል ፊርማ ማድረግም ይቻላል።

ከቀዳሚው እትም ጋር ሲነፃፀር አዲሱ እትም በ 583 ገንቢዎች ተሳትፎ የተዘጋጀ 84 ለውጦችን ያካተተ ሲሆን ከእነዚህ ውስጥ 32ቱ ለመጀመሪያ ጊዜ በልማት ውስጥ ተሳትፈዋል። ዋና ፈጠራዎች:

  • ከፊል ክሎኒንግ የመሆን እድሉ ወደ መረጋጋት እና ሙሉ ዝግጁነት እየቀረበ ነው, ይህም የውሂብን የተወሰነ ክፍል ብቻ እንዲያስተላልፍ እና ያልተሟላ የማከማቻ ቅጂ እንዲሰሩ ያስችልዎታል. በለውጥ ታሪክ ውስጥ ያለውን የእያንዳንዱን ፋይል ስሪት ጨምሮ አንድ የተለመደ ክሎን ሁሉንም ውሂብ ከማጠራቀሚያው ይቀዳል። በጣም ትልቅ ለሆኑ ማከማቻዎች መረጃን መቅዳት የትራፊክ እና የዲስክ ቦታ ላይ ከፍተኛ ጭማሪ ያስከትላል፣ ምንም እንኳን ገንቢው የፋይሎቹን ንዑስ ክፍል ብቻ ቢፈልግም። የሥራውን የዛፉን ክፍል ብቻ ለማውጣት ቀላል ለማድረግ አዲሱ ልቀት የሙከራ "ስፓርሴ-ቼክአውት" ትዕዛዝ እና ለ"clone" ትዕዛዝ አዲስ "--sparse" አማራጭን ያስተዋውቃል።

    ከዚህ በፊት የተመረጠ ክሎኒንግ ሂደት የሚከናወነው በተግባሩ ነው ማጣሪያዎች አላስፈላጊ ይዘትን ለማጣራት እና የጎደሉ ፋይሎችን መሙላትን ለማሰናከል "--ምንም-ቼክአውት" አማራጭ. ከዚያ በኋላ የፍተሻ ክዋኔውን ከማከናወንዎ በፊት የcore.sparseCheckout መቼት ማንቃት እና በ.git/info/sparse-checkout ፋይል ውስጥ የተገለሉ የመንገድ ቅጦችን ዝርዝር መግለፅ አስፈላጊ ነበር። ለምሳሌ፣ ያለብሎብ ለመዝጋት እና ፋይሎችን ከጥልቅ 2 ወይም ከዚያ በላይ ንዑስ ማውጫዎች እንዳይወጡ ለመከላከል፣ ማስኬድ ይችላሉ፡-

    git clone --filter=blob: የለም --ምንም-ቼክአውት /የእርስዎ/ማከማቻ/ here repo
    $cd repo
    $ ድመት > .git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git Checkout

    አዲሱ የ"git sparse-checkout" ትእዛዝ ስራውን በእጅጉ ያቃልላል እና ስራን ባልተሟላ ማከማቻ የማደራጀት ሂደትን በሚከተሉት ትዕዛዞች ይቀንሳል።

    git clone --filter=blob: የለም --sparse /የእርስዎ/ማከማቻ/ here repo
    git sparse-ቼክአውት አዘጋጅ /መንገድ/ወደ/ቼክ/ውጣ

    የ sparse-checkout ትዕዛዙ .git/info/sparse-checkoutን እራስዎ ሳያዋቅሩ ለመፈተሽ (ሴቲንግ) ዱካዎች ዝርዝር እንዲያዘጋጁ ይፈቅድልዎታል እንዲሁም የአሁኑን የዱካዎች ዝርዝር (ዝርዝር) ለማሳየት እና ከፊል ፍተሻዎችን ማንቃት ወይም ማሰናከል (ማንቃት ወይም ማሰናከል) / ማሰናከል).

    በጣም ትልቅ በሆኑ ማከማቻዎች እና የአብነት ዝርዝሮች ስራን ለማመቻቸት፣git config core.sparseCheckoutCone"፣ የተፈቀዱ ቅጦችን የሚገድበው (ከዘፈቀደ .gitignore ቅጦች ይልቅ፣ ሁሉም ዱካዎች እና ሁሉም ፋይሎች በአንድ የተወሰነ ንዑስ ማውጫ ውስጥ መፈተሽ አለባቸው ወይ የሚለውን መግለጽ ይችላሉ።) ለምሳሌ አንድ ትልቅ ማከማቻ ማውጫ “A/B/C” ካለው እና ሁሉም ስራው በንኡስ ዳይሬክቶሪ “C” ውስጥ ከተከማቸ፣ sparseCheckoutCone ሁነታን ሲያነቃቁ “git sparse-checkout set A/B/ ሐ” ሙሉውን የ “C” ይዘቶች ያወጣል ፣ ግን ከ “A” እና “B” ከ “C” ጋር ለመስራት አስፈላጊ የሆኑትን ክፍሎች ብቻ ያወጣል።

  • ከሰነዱ ("git rebase -h") የ"--preserve-merges" አማራጭ ሁሉም ማጣቀሻዎች ተወግደዋል፣ እሱም ተቋርጧል እና የፈፀመውን ስብስብ ለመሸጋገር በምትኩ መጠቀም አለበት።git rebase --rebase-merges".
  • ወደ የደብዳቤ ዝርዝሮች ከተላኩ ፕላቶች ጋር የመልእክቶችን ተነባቢነት ለማሻሻል “git format-patch —cover-from-description subject” የሚለው አማራጭ ተጨምሯል፣ ሲገለጽ፣ ከቅርንጫፍ መግለጫው ጽሑፍ የመጀመሪያው አንቀጽ እንደ ርዕሰ ጉዳይ ሆኖ ያገለግላል። የሽፋን ደብዳቤ ለጥፎች ስብስብ.
  • የ "git apply -3way" ትዕዛዝ እና "merge.conflictStyle" መቼት ("git apply" አሁን ከ merge.conflictStyle ያለውን የግጭት መግለጫ ዘይቤ ግምት ውስጥ ያስገባል ከተሞከረ በኋላ ግጭቱን ለመፍታት አስፈላጊ ሆኖ ሲገኝ የ"git apply -XNUMXway" ትዕዛዝን ጥምር አጠቃቀምን የተተገበረ ድጋፍ የ patch ፋይልን ወደ ማከማቻው ለመተግበር)።
  • በቋንቋ ፕሮግራሞች ውስጥ የተግባር ድንበሮችን ለመወሰን እንደ "git diff/grep --show-function/-function-context" ባሉ ስራዎች ላይ ጥቅም ላይ የዋለው የተግባር ፍቺ ኮድ ተዘርግቷል። Elixir.
  • አዲስ አማራጭ ወደ "git add" "git commit", "git reset" እና ሌሎች ትዕዛዞች - "-pathspec-from-file" ታክሏል ይህም ከፋይል ወይም ከግቤት ዥረት ላይ የመንገዶች ዝርዝር ለመጫን ያስችላል. , በትእዛዝ መስመር ላይ ከመዘርዘር ይልቅ.
  • ወንጀሎችን በሚጽፉበት ጊዜ በማውጫው ደረጃ ላይ ያሉ ስሞችን የማግኘት ችግር ተፈትቷል ። የአንድ ንዑስ ማውጫ ይዘቶች ወደ ማከማቻው ሥር ከተዘዋወሩ ትርጉሙ አይሰራም።
  • በድጋሚ የተነደፈው የ"git add -i" ትዕዛዝ የመጀመሪያ ትግበራ ቀርቧል፣ ይህም የተለወጠውን ይዘት በይነተገናኝ እንዲያክሉ የሚያስችልዎት፣ ከፐርል ወደ ሲ በድጋሚ የተፃፈ። የ“git add -p” ትዕዛዝ ተመሳሳይ ዳግም ስራ በመካሄድ ላይ ነው።
  • የ"git log -graph" ትዕዛዝ እንደገና ተሰርቷል፣ የ ASCII ግራፍ ምስል በማመንጨት በማከማቻው ውስጥ የተደረጉ ለውጦች ታሪክ። የድጋሚ ስራው የታሪኩን አወቃቀር ሳይዛባ ውጤቱን በከፍተኛ ሁኔታ ለማሻሻል እና ለማቃለል አስችሏል ፣ ይህም ለምሳሌ ፣ ምስሉ ከተርሚናል መስመር ወርድ በላይ በመዘርጋት ችግሩን ፈታ ።
  • የ"git log --format=.." አማራጭ የውጤት ቅርጸቱን እንዲቀይሩ ያስችልዎታል።
    ለ"l/L" ባንዲራዎች ከ"@" ምልክት በፊት የተመለከተውን የኢሜል አድራሻ ክፍል ብቻ ለማሳየት (ለምሳሌ ሁሉም ገንቢዎች ሁሉም ኢሜይሎች በተመሳሳይ ጎራ ውስጥ ሲኖራቸው ይጠቅማል)።

  • የ"set-url" ንዑስ ትዕዛዝ ወደ "git submodule" ትዕዛዝ ታክሏል።
  • ወደ ሽግግር ለመዘጋጀት የሙከራ ቁሳቁሶች ተዘምነዋል
    ከSHA-2 ይልቅ hashing አልጎሪዝም SHA-1።

ምንጭ: opennet.ru

አስተያየት ያክሉ