Git ውስጥ ቅርንጫፎች አንድ ስኬታማ ሞዴል

እንዴት መጠቀም እንደሚቻል ማወቅ Git አስፈላጊ ነው, እና ይህ የትብብር ልማት አካባቢ ለመቆጣጠር የሚያስችል ሶፍትዌር ጠብቆ ያካትታል.

ምስጋናዎች

ይህ ልጥፍ የመጀመሪያ የሆነ የፖርቱጋል ስሪት ነው, በእንግሊዝኛ, “አንድ ስኬታማ Git ቅርንጫፎቻቸውን ሞዴል“, ሕጋዊነት ደራሲው ፈቃድ, ቪንሰንት Driessen. አንተ ሰው እናመሰግናለን!

ቴክኒካዊ ጉዳዮች, አንዳንድ ቁልፍ ቃላት ሆን በእንግሊዝኛ ይጠበቅ ነበር. እኔ የጽሑፉ አመንጭቶ ለማረጋገጥ ሞክሮ, ነገር ግን እኔ የእኛን ቋንቋ ግንዛቤ ለማመቻቸት ማስተካከያዎችን ማድረግ ነበረበት ሆነ ይመሰክር (Pt-BR). ትርጉም ውስጥ ለመሻሻል ማንኛውም እርማት ወይም የጥቆማ አቀባበል ነው.

መግቢያ

ይህ አጠቃቀም Git ላይ ሲያስተምር አንድ ልጥፍ አይደለም. ይህ የሚያስፈልገው ነገር ቢኖር, እኔ ላይ ይመልከቱ እንዲወስዱ እንመክራለን በእጅ Git ማድረግ. ወይም ይህ ነው የእኛ ግብ ሶፍትዌር የስሪት ማድረግ እንደሚችሉ ለማሳየት, በዚህ ጉዳይ ላይ, መልክ የፍቺ የስሪት.

እዚህ ላይ ሐሳብ ሶፍትዌር የስሪት ውስጥ ቡድን ትብብር ለማስተዳደር ነው. እርስዎ በርካታ ፕሮግራም አለን ጊዜ ታውቃላችሁ “ቀስቃሽ” በተመሳሳይ ምንጭ ኮድ ውስጥ? ይህ ልማት ለማፋጠን አስፈላጊ ነው, ነገር ግን ትልቅ ራስ ምታት ማመንጨት ይችላል (መጥፋት እና rework) ምንም ቁጥጥር የለም ከሆነ. ሌላ ስራ ደርቦ ከ ገንቢ ለመከላከል እና ተራማጅ ልማት ለማረጋገጥ እና ተደራጅተው ወደ, ሶፍትዌር ስለሚለቀቁ ግጭቶችን ለመቀነስ እና ማቀናበር, እኛ Git እና ሞዴል የምትጠቀሙት ቅርንጫፎች መከተል.

ቅርንጫፎች ሞዴል

በዚህ ልጥፍ ላይ እኔ የእኔን ፕሮጀክቶች መካከል አንዳንዶቹ ውስጥ ጥቅም ላይ የልማት ሞዴል ማቅረብ (ሁለቱም ስራ እና የግል ላይ) ቅርብ 1 ዓመታት በፊት, እና በጣም ስኬታማ ሆኗል. አንዳንድ ጊዜ በፊት እኔ ስለ ለመጻፍ ፈልጎ, ነገር ግን አንድ የሚገኙ ጊዜ አልተገኘም ፈጽሞ, እስካሁን. እኔ ፕሮጀክት በዝርዝር መናገር አይችልም, ብቻ ስልቶች ስለ ቅርንጫፎች እና አስተዳደር የተለቀቁ.

ይህ ሞዴል ብቻ ሳይሆን ማኅተም Git ሁሉ ምንጭ ኮድ የስሪት አንድ መሳሪያ አድርጎ. (ሳይታሰብ, እናንተ Git ላይ ፍላጎት ከሆነ, የእኛ ኩባንያ GitPrime ያቀርባል, በእውነተኛ-ጊዜ, ሶፍትዌር ምህንድስና ማመቻቸት አንዳንድ አስገራሚ ውሂብ ትንተና)

ይህ Git?

የተማከለ ምንጭ ቁጥጥር ስርዓቶች ጋር ሲነጻጸር ጥቅምና Git መካከል ጉዳቱን በተመለከተ ሰፊ ማብራሪያ ለማግኘት, መልክ አንድ የድር. አንድ ትልቅ አለ “ጦርነት” በዚያ ዙሪያ. እንደ ገንቢ, እኔ ዛሬ ሁሉ ሌሎች ነባር መሣሪያዎች ጋር በተያያዘ Git ላይ እመርጣለሁ. Git ጥርጥር ገንቢዎች አንድ ለማድረግ ማሰብ መንገድ ተቀይሯል ሁለቱን ድርጅቶች ተዋሐደ ወይም ፍጠር ቅርንጫፍ. እኔ ክላሲካል ዓለም ይመጣል ማስረጃችሁን / የሚያፈርስ, የት ማዋሃድ / ቅርንጫፍ ይህም ብቻ ለተወሰነ ጊዜ ውስጥ አንድ ጊዜ ማድረግ አንድ ነገር ነው እናም ሁልጊዜ አንድ ትንሽ አስፈሪ ይመስላል (“ግጭቶች ተጠንቀቁ ሁለቱን ድርጅቶች ተዋሐደ, እነሱ መንከስ!”).

አሁን እነዚህን እርምጃዎች Git [ማዋሃድ / ቅርንጫፍ] እነርሱ በጣም ቀላል ናቸው እና የእኛ ሥራ ተዕለት አንድ ዋነኛ ክፍል ይወክላሉ, ማመን. ለምሳሌ, አይ መጽሐፍ CSV / የሚያፈርስ, ቅርንጫፎቻቸውንበማዋሃድ እነሱ ብቻ ከጊዜ በኋላ ምዕራፎች ውስጥ ለመጀመሪያ ጊዜ የተሸፈኑ (የላቁ ተጠቃሚዎች), በማንኛውም ውስጥ ሳለ Git ላይ መጽሐፍ, በዚህ ምዕራፍ ውስጥ ይታያል 3 (መሠረታዊ).

የራሱ ቀላልነት እና ተደጋጋሚ ተፈጥሮ ምክንያት, ቅርንጫፎቻቸውንበማዋሃድ ፈሩ መሆን ከአሁን ነገር ናቸው. በእርግጥ, ወደ ስሪት መቆጣጠሪያ መሳሪያዎች እንዲያደርጉ መርዳት ይገባልሁለቱን ድርጅቶች ተዋሐደ እና ፍጠር ቅርንጫፍ ከምንም በላይ.

በቂ ንግግር, የልማት ሞዴል ይሁን. እኔ እዚህ ማቅረብ ይሆናል የሚለው ሞዴል በመሠረቱ እያንዳንዱ ቡድን አባል አንድ የሚተዳደር ሶፍትዌር ልማት ሂደት ለማግኘት ሲሉ መከተል ያለበት ሂደቶች ስብስብ በላይ ምንም ነገር ነው.

ያልተማከለ, ተጨማሪ የተማከለ

ወደ ማከማቻ ማዋቀር እኛ መጠቀም እና በዚህ ሞዴል ጋር በጣም በደንብ የሚሰራ ቅርንጫፎቻቸውን ይህ ማዕከላዊ ማከማቻ ያካተተ ነው. ይህ ማከማቻ ብቻ መሆኑን ልብ ይበሉ “ግምት” ማዕከላዊ (Git አንድ DVCS ነው ምክንያቱም [የተሰራጩ ስሪት ቁጥጥር ስርዓቶች], በሌላ አባባል ውስጥ, የቴክኒክ ደረጃ ላይ ማዕከላዊ ማከማቻ እንደ ምንም የለም). እኛ ይህንን ማከማቻ እንደ ስንጠቅስ ምንጭ, ይህ ስም ሁሉም ተጠቃሚዎች በ Git ላይ የሚያውቋቸውን ስለሆነ.

እያንዳንዱ ገንቢ ነው የዘሩየሚገፋን ላይ ምንጭ. ነገር ግን ግንኙነት ባሻገር ለመግፋት-መሳብ የተማከለ ለ [ምንጭ], እያንዳንዱ ገንቢ በተጨማሪም ሊይዘው ይችላል [ጐተተ] ሌሎች እኩዮቻቸው ለ ለውጦች Subteams ለማቋቋም. ለምሳሌ, ይህ ዋነኛ አዲስ ተግባር ላይ ሁለት ወይም ከዚያ በላይ ገንቢዎች ጋር መስራት ጠቃሚ ሊሆን ይችላል, ቀደም መላክ [እንዲተገበር] በሂደት ውስጥ ሥራ ለማግኘት ምንጭ. ከላይ ውስጥ, አሊስ እና ቦብ ንዑስ ቡድኖች አሉ, አሊስ ኢ ዳዊት, ሠ Clair ዳዊት.

በቴክኒካዊ, ይህ ቦብ የሚባል አንድ የሩቅ Git ላይ ይገለጻል አድርጓል አሊስ የበለጠ ምንም ነገር ማለት, ቦብ ማከማቻንምን የሚጠቁመውን, ኢ ምክትል-በተገላቢጦሽ.

ዋና ቅርንጫፎች

ወደ ኋላ ላይ, ይህ የልማት ሞዴል በጣም በዚያ ሞዴሎች ውጭ ያለውን አነሳሽነት ነው. ማዕከላዊ ማከማቻ ሁለት ቅርንጫፎች አሉት [ቅርንጫፎች] ማለቂያ የሌለው ሕይወት እየመራ:

  • ባለቤት
  • ማዳበር

ቅርንጫፍ ዋና ውስጥ ምንጭ እያንዳንዱ ተጠቃሚ Git የሚያውቋቸውን መሆን አለበት. ጋር ትይዩ ቅርንጫፍ ዋና, ሌላ የለም ቅርንጫፍ ተብሎ ማዳበር.

እኛ ከግምት ምንጭ / ዋና ዋና ቅርንጫፍ እንደ የት ምንጭ ኮድ ራስ ሁልጊዜ አንድ ሁኔታ ያንፀባርቃል የምርት-ዝግጁ [ምርት ዝግጁ].

እኛ ከግምት ምንጭ / መገንባት እንደ ቅርንጫፍ የት ዋነኛ ምንጭ ራስ ሁልጊዜ የሚቀጥለው መለቀቅ ላይ ሊደርስ ወደ የቅርብ ጊዜ የልማት ለውጦች ጋር አንድ ሁኔታ ያንፀባርቃል. አንዳንዶች እንጠራዋለን ነበር “ቅርንጫፍ ማስተባበር”. በጣም አጋንንታዊ ግንባታዎች ሊከሰት የት ይህ ነው.

መቼ ውስጥ ምንጭ ኮድ ቅርንጫፍ ማዳበር የተረጋጋ ነጥብ ላይ ከደረሰ ይለቀቃሉ ዝግጁ ነው [የተለቀቁ], ሁሉም ለውጦች ይዋሃዳሉ አለበት [አልተዋሃደም] ወደ ኋላ ቅርንጫፍ ዋና ከዚያም አንድ ስሪት ቁጥር ጋር ምልክት [መልቀቅ]. በዚህ ዝርዝር ውስጥ የሚደረገው እንዴት ነው?, ለተጨማሪ ማብራሪያ ነው.

እንግዲህ, ለውጦቹ የተካተቱ ናቸው በእያንዳንዱ ጊዜ [አልተዋሃደም] ተመልሰው ወደ ባለቤት, ይህ አዲስ ስሪት የመነጨ ነው [የተለቀቁ], ትርጉም በ. እኛ ስለ በጣም ጥብቅ ለመሆን ጥረት, እንግዲህ, በንድፈ, እንዲያውም አንድ ስክሪፕት መጠቀም ይችላል ሜንጦ አንድ በሚኖርበት ጊዜ በራስ መፍጠር እና ምርት አገልጋዩ ጋር ያለንን ማመልከቻ ለመላክ Git አደራ አይ ባለቤት.

ረዳት ቅርንጫፎች

ጎን ለጎን የ ቅርንጫፎች ዋና, ባለቤትማዳበር, የእኛን የልማት ሞዴል የተለያዩ ይጠቀማል ቅርንጫፎች ድጋፍ ቡድን አባላት መካከል A ንድ ላይ ልማት ለመርዳት, ምን 1) አዳዲስ ባህሪያት የመከታተያ የሚያመቻች [ዋና መለያ ጸባያት], 2) አዲስ ስሪት አሰጣጥ ሲዘጋጅ [መልቀቅ] ሠ 3) ይህ በፍጥነት ምርት ውስጥ ጉድለቶች ለማስተካከል ይረዳል [hotfix]. በተለየ ቅርንጫፎች ዋና, estes ቅርንጫፎች ይህ አጭር የሕይወት ዘመን አለው, ይህም ውሎ አድሮ ይወገዳል ጀምሮ.

የተለያዩ አይነት ቅርንጫፎች [ረዳት] እኛ መጠቀም ይችላሉ, እነሱ ናቸው:

  • የባህሪ ቅርንጫፎች
  • ልቀቅ ቅርንጫፎች
  • Hotfix ቅርንጫፎች

እነዚህ እያንዳንዱ ቅርንጫፎች አንድ የተወሰነ ዓላማ ያለው ሲሆን ጥብቅ ደንቦች ለመገዛት ነው, ስለዚህም, ቅርንጫፎች አቅሙ ቅርንጫፍቅርንጫፎች እነዚህ ይዋሃዳሉ አለበት [አልተዋሃደም] ያላቸውን ዒላማዎች. እኛም እያንዳንዳችን ያያሉ [ቅርንጫፎች] ለጊዜው ውስጥ.

የቴክኒክ አተያይ, እነዚያ ቅርንጫፎች እነሱ እንደሆኑ አይቆጠሩም “ልዩ”. እያንዳንዱ አይነት ቅርንጫፍ እኛ የሚጠቀሙበት መንገድ መመደብ ነው. በመጨረሻ, እነሱ ብቻ ቀላል ናቸው ቅርንጫፎች የድሮ Git ለ.

የባህሪ ቅርንጫፎች

[ገጽታዎች = ባህሪያትን / ተግባር]

– አንተ ከቅርንጫፍ ይችላሉ [ቅርንጫፍ] ከ:
ማዳበር
– ይህ ይቀላቅላሉ [ሁለቱን ድርጅቶች ተዋሐደ] እንደገና:
ማዳበር
– ስለ የአውራጃ አሰያየም ቅርንጫፍ:
ምንም, በስተቀር ባለቤት, ማዳበር, release- *, ወይም hotfix- *

ባህሪ ቅርንጫፎች (ወይም አንዳንድ ጊዜ ተብሎ ርዕስ ቅርንጫፎች) እነዚህ የወደፊት የተለቀቀ ወይም በሚቀጥለው አዳዲስ ባህሪያት / ተግባር ለማሳደግ ጥቅም ላይ ናቸው. አንድ የልማት ጀምሮ ጊዜ ባህሪ, ይህን ባህሪ መካተት ያለበትን ዒላማ መለቀቅ ጥሩ በዚህ ነጥብ ላይ ያልታወቀ ሊሆን ይችላል.

አንድ ማንነት ባህሪ ቅርንጫፎች ይህም ሳለ አለ ባህሪ በማደግ ላይ ናቸው, ነገር ግን ውሎ አድሮ መካተት ይሆናል [አልተዋሃደም] ተመልሰው ወደ ማዳበር (እስከመጨረሻው ወደ አዲስ ለማከል ባህሪ ቀጣዩ መልቀቅ) ወይም ተጥሏል (አንድ ያልተሳካ ልምድ ሁኔታ ውስጥ).

የባህሪ ቅርንጫፎች በተለምዶ በ ማከማቻ ውስጥ ብቻ መኖር ማዳበር, አይደለም ውስጥ ምንጭ.

አንድ ባህሪ ቅርንጫፎች መፍጠር

$ Git ተመዝግበው -ለ ማዳበር myfeature
# Switched to a new branch "myfeature"

ይገንቡ ላይ የተጠናቀቀ ባህሪ ያካተተ

ዋና መለያ ጸባያት ይዋሃዳሉ ይችላል ይጠናቀቃል[አልተዋሃደም] ጋር ቅርንጫፍ ማዳበር ወደ ቀጣዩ በቋሚነት እነሱን ለማከል መልቀቅ.

$ Git ተመዝግበው ማዳበር
# ቅርንጫፍ ወደ ተቀይሯል 'ለማዳበር'
$ Git እየተጓዙ --አይ-FF myfeature
# ea1b82a..05e9557 በማዘመን ላይ
# (ለውጦች ማጠቃለያ)
# $ Git ቅርንጫፍ -d myfeature
# የተሰረዘ ቅርንጫፍ myfeature (05e9557 ነበር).
$ Git የግፋ ምንጭ ለማዳበር

አንድ ባንዲራ –ምንም-FF ይህ ውህደት ያስከትላል [ሁለቱን ድርጅቶች ተዋሐደ] ሁልጊዜ አዲስ ነገር መፍጠር አደራ, ውህዱን የ ጋር ሊከናወን ይችላል እንኳ በፍጥነት ወደፊት [FF]. ይህ ሕልውና ታሪክ በተመለከተ መረጃ ማጣት መጸጸታችንን ባህሪ ቅርንጫፍ, የመልክ ሁሉ ያመነዝራል እነዚህ ታክሏል ነበር ባህሪ. አወዳድር:

ምንም የኋለኛው ሁኔታ [ከላይ እንዳልደረሰበት], ይህም Git ታሪክ ማየት የማይቻል ነው መካከል ያመነዝራል እነዚህ ውስጥ ተግባራዊ ነበር ባህሪ; እራስዎ ሁሉ ምዝግብ መልዕክቶችን እንዲያነብ ነበር. እንዲቀለበስ አንድ ባህሪ ሙሉ (በሌላ አባባል ውስጥ, አንድ ቡድን ያመነዝራል), ይህም በኋለኛው ሁኔታ ውስጥ እውነተኛ ራስ ምታት ነው, ይህም በቀላሉ ባንዲራ ከሆነ የሚደረገው ሳለ –ምንም-FF እሱም ጥቅም ላይ ውሏል.

ሲም, ይሄ ጥቂት ተጨማሪ ነገሮችን ይፈጥራል ያመነዝራል (ባዶ), ነገር ግን ትርፍ ወጪ እጅግ የላቀ ነው.

ልቀቅ ቅርንጫፎች

[ልቀቅ = ልቀት / ማድረስ / መለቀቅ]

– አንተ ከቅርንጫፍ ይችላሉ [ቅርንጫፍ] ከ:
ማዳበር
– ይህ ይቀላቅላሉ [ሁለቱን ድርጅቶች ተዋሐደ] እንደገና:
ማዳበርባለቤት
– ስለ የአውራጃ አሰያየም ቅርንጫፍ:
release- *

የተለቀቁ ቅርንጫፎች አዲስ የምርት ስሪት በማዘጋጀት ረገድ እርዳታ [የምርት መለቀቅ]. እነዚህ እርስዎ i የመጨረሻ ደቂቃ ነጥብ ማስቀመጥ ፍቀድ. ከዚህም በላይ, እነርሱ ትንሽ እርማቶች ፍቀድ ሳንካዎች እና ትርጉም ሜታ-ውሂብ ሀ ለ መልቀቅ (ስሪት ቁጥር, ማጠናቀር ቀኖች, ወዘተ). በአንድ ሁሉ ይህን ሥራ በማድረግ መለቀቅ ቅርንጫፍ, የ ቅርንጫፍ ማዳበር ለመቀበል ጸድቷል ነው ዋና መለያ ጸባያት ቀጣዩ ትልቅ መልቀቅ [ትርጉም].

ቁልፉ አፍታ አዲስ ለመፍጠር መለቀቅ ቅርንጫፍ ስለ ቅርንጫፎቻቸውን ማዳበር ነው ጊዜ ማዳበር አስቀድሞ ነው (ማለት ይቻላል) አዲስ መካከል የተፈለገውን ሁኔታ የሚያንጸባርቁ መልቀቅ [ትርጉም]. ሁሉ ዋና መለያ ጸባያት ለ ዕጩዎች መልቀቅ መካተት አለበት የተገነባው ዘንድ [ሁለቱን ድርጅቶች ተዋሐደ] ao ማዳበር አሁን. ገና ዋና መለያ ጸባያት ትይዩ የተለቀቁ ወደፊት ቀጥሎ መጠበቅ አለባቸው መልቀቅ [ትርጉም].

አንድ ብቻ መጀመሪያ ነው መለቀቅ ቅርንጫፍ ቀጣዩ መልቀቅ ስሪት ቁጥር ይቀበላል – አይደለም በፊት. እስከዛ ድረስ, የ ቅርንጫፍ ማዳበር ወደ ላይ ተንጸባርቋል ለውጦች “ቀጣዩ ልቀት” [ቀጣዩ ስሪት], ነገር ግን ይህ እንደሆነ ግልጽ ያልሆነ ነው “ቀጣዩ ስሪት” በመጨረሻም ይሆናል 0.3 ወይም 1.0, ድረስ መለቀቅ ቅርንጫፍ ይጀምራል. ይህ ውሳኔ መጀመሪያ ላይ ይወሰዳል መለቀቅ ቅርንጫፍ እንዲሁም የስሪት ላይ የፕሮጀክቱ ደንቦች የተያዘ ነው [እኔ ስለ ማየት እንመክራለን “የፍቺ የስሪት“].

አንድ መለቀቅ ቅርንጫፍ መፍጠር

የተለቀቁ ቅርንጫፎች እነዚህ የተፈጠረ ነው ቅርንጫፍ ማዳበር. ለምሳሌ, ስሪት ይላሉ 1.1.5 ይህ የአሁኑ የምርት ስሪት ነው እና ታላቅ አለን መልቀቅ መምጣት. ሁኔታ ማዳበር ዝግጁ ነው “ቀጣዩ ስሪት” [ቀጣዩ ልቀት] እኛም ይህ ስሪት እንዲሆን ወሰኑ 1.2 (ምትክ ውስጥ 1.1.6 ወይም 2.0). እንግዲህ, እኛን ramificamos እና እኛም መውሰድ መለቀቅ ቅርንጫፍ አዲሱ ስሪት ቁጥር የሚያንጸባርቅ ስም:

$ Git ተመዝግበው -ለ መለቀቅ-1.2 ማዳበር
# Switched to a new branch "release-1.2"
$ ./እብጠት-ትርጉም.SH 1.2
# ፋይሎች በተሳካ ሁኔታ የተቀየረ, ስሪት bumped 1.2.
$ Git አደራ -አንድ -ሜትር "Bumped version number to 1.2"
# [ለመልቀቅ-1.2 74d9424] ወደ Bumped ስሪት ቁጥር 1.2
# 1 ፋይሎች ተለውጧል, 1 ተሰኪዎች(+), 1 ስረዛዎች(-)

አዲስ መፍጠር በኋላ ቅርንጫፍ እና መድረስ, እኛ ስሪት ቁጥር bumped. እዚህ, bump-version.sh ይህ አዲሱ ስሪት ለማንጸባረቅ ጥቂት የስራ ቅጂ ፋይሎች የሚቀይር አንድ ሼል ስክሪፕት ነው. (ይህንን ማድረግ ይችላል, ግልጽ, በእጅ ለውጥ ይሆናል – ነጥብ አንዳንድ ፋይሎች መለወጥ መሆኑን ነው.) እንግዲህ, ይህ ነው አደራ የተቀየረውን ስሪት ቁጥር.

ይህን አዲስ ቅርንጫፍ ለተወሰነ ጊዜ ሊኖር ይችላል, ድረስ መልቀቅ በመጨረሻም ከእስር ነው. በዚህ ጊዜ ውስጥ, የሳንካ ጥገናዎች በዚህ ውስጥ ሊተገበር ይችላል ቅርንጫፍ (ይልቅ ቅርንጫፍ ማዳበር). ትልቅ አዲስ ያለው በተጨማሪ ዋና መለያ ጸባያት እዚህ ላይ በጥብቅ የተከለከለ ነው. እነዚህ ይዋሃዳሉ አለበት [አልተዋሃደም] ውስጥ ማዳበር ሠ, እንደዚህ, ቀጣዩን ይጠብቁ መልቀቅ.

አንድ መለቀቅ ቅርንጫፍ በመጨረስ

ጊዜ መለቀቅ ቅርንጫፍ ይህም አንድ እውነተኛ ስሪት ለመሆን ዝግጁ ነው, አንዳንድ እርምጃዎች ሊከናወን ያስፈልጋቸዋል. የመጀመሪያ, የ መለቀቅ ቅርንጫፍ ይህም ወደ አልተዋሃደም ነው ባለቤት (እያንዳንዱ ጀምሮ አደራ አይ ባለቤት ይህ ትርጉም በ አዲስ ስሪት ነው, ማስታወስ). እንግዲህ, ያ አደራ አይ ባለቤት በዚህ ስሪት ታሪክ ቀላል ለወደፊት ማጣቀሻ ምልክት አለበት. በመጨረሻ, ላይ የተደረጉ ለውጦች መለቀቅ ቅርንጫፍ እነዚህ ይዋሃዳሉ ያስፈልጋቸዋል [አልተዋሃደም] እንደገና ወደ ማዳበር, ስለዚህም የተለቀቁ ወደፊት ደግሞ እነዚህ የሳንካ ጥገናዎች ይዘዋል.

Git ውስጥ የመጀመሪያዎቹን ሁለት ደረጃዎች:

$ Git ተመዝግበው ዋና
# «ዋና» ከቅርንጫፍ ተቀይሯል
$ Git እየተጓዙ --አይ-FF መለቀቅ-1.2
# recursive የተደረጉ አዋህድ.
# (ለውጦች ማጠቃለያ)
$ Git መለያ -አንድ 1.2

መልቀቅ አሁን ሙሉ እና ለወደፊት ማጣቀሻ መርሐግብር ነው.

ማስተዋል: እናንተ ደግሞ ባንዲራዎች መጠቀም ይችላሉ -s ወይም -u cryptographically የእርስዎን መለያ ለመግባት.

ላይ የተደረገውን ለውጥ መጠበቅ መለቀቅ ቅርንጫፍ, ተመልሰን ወደ እነሱን እንዲመለስ ማድረግ ይኖርብናል ማዳበር. ምንም Git:

$ Git ተመዝግበው ማዳበር
# ቅርንጫፍ ወደ ተቀይሯል 'ለማዳበር'
$ Git እየተጓዙ --አይ-FF መለቀቅ-1.2
# recursive የተደረጉ አዋህድ.
# (ለውጦች ማጠቃለያ)

ይህ ደረጃ መቀላቀልን ግጭት ሊያስከትል ይችላል (ምናልባት ይሄዳሉ, እኛ ስሪት ቁጥር መቀየር አንዴ). ከሆነ እንዲህ, መጠገን እና ማድረግ አደራ.

አሁን, በእርግጥ እኛ አብቅቷል, የ መለቀቅ ቅርንጫፍ ይህ ሊወገድ ይችላል, እኛ ከእንግዲህ ወዲህ በሚፈልጉት ጀምሮ:

$ Git ቅርንጫፍ -መ መለቀቅ-1.2
# የተሰረዘ ቅርንጫፍ መለቀቅ-1.2 (ነበር ff452fe).

Hotfix ቅርንጫፎች

– አንተ ከቅርንጫፍ ይችላሉ [ቅርንጫፍ] ከ:
ባለቤት
– ይህ ይቀላቅላሉ [ሁለቱን ድርጅቶች ተዋሐደ] እንደገና:
ማዳበርባለቤት
– ስለ የአውራጃ አሰያየም ቅርንጫፍ:
hotfix- *

Hotfix ቅርንጫፎች እነዚህ በጣም ተመሳሳይ ናቸው መለቀቅ ቅርንጫፎች, እነርሱ ደግሞ አዲስ የምርት ስሪት ለማዘጋጀት ታስቦ ነው, ያልታቀደ ቢሆንም. እነዚህ የምርት ስሪት ያልተፈለገ ሁኔታ በኋላ ወዲያውኑ እርምጃ አስፈላጊነት ሊነሱ [ጥቅም ላይ]. ወሳኝ ስህተት የምርት ስሪት ውስጥ በሚሆንበት ጊዜ, ወዲያውኑ አድራሻ መሆን አለበት, ከዚያም አንድ hotfix ቅርንጫፍ በውስጡ ያለውን የምርት ስሪት የሚሾመውም ያለውን መለያ የተወሰደ ይቻላል ዋና ቅርንጫፍ.

የእምነታቸው መገለጫ መሆኑን ቡድን አባላት ሥራ (አይ ቅርንጫፍ ማዳበር) መቀጠል ይችላሉ, ሌላ ሰው ምርት ውስጥ ውድቀት የሆነ ፈጣን ማስተካከያ ማዘጋጀት ሳለ.

የ hotfix ቅርንጫፍ መፍጠር

hotfix ቅርንጫፎች እነዚህ የተፈጠረ ነው ዋና ቅርንጫፍ. ለምሳሌ, ስሪት በማሰብ 1.2 ይህም የምርት ሩጫ መለቀቅ የአሁኑ ስሪት ነው እና ዋና ስህተት ምክንያት ችግሮች ያቀርባል. ውስጥ ለውጦች ማዳበር የ አሁንም ያልተረጋጋ ትቶ. ከዚያም ቅርንጫፍ ይችላሉ hotfix ቅርንጫፍ እና ችግሩን ለመፍታት ይጀምራሉ:

$ Git ተመዝግበው -ለ hotfix-1.2.1 ባለቤት
# Switched to a new branch "hotfix-1.2.1"
$ ./እብጠት-ትርጉም.SH 1.2.1
# ፋይሎች በተሳካ ሁኔታ የተቀየረ, ስሪት bumped 1.2.1.
$ Git አደራ -አንድ -ሜትር "Bumped version number to 1.2.1"
# [hotfix-1.2.1 41e61bb] ወደ Bumped ስሪት ቁጥር 1.2.1
# 1 ፋይሎች ተለውጧል, 1 ተሰኪዎች(+), 1 ስረዛዎች(-)

ቅርንጫፎቻቸውን በኋላ ስሪት ቁጥር ለመለወጥ አይርሱ!

እንግዲህ, ስህተት ለማረም እና ማድረግ አደራ አንድ ወይም ተጨማሪ ውስጥ እርማት አደራ የተለዩ.

$ Git አደራ -ሜትር "Fixed severe production problem"
# [hotfix-1.2.1 abbe5d6] የቋሚ ከባድ የምርት ችግር
# 5 ፋይሎች ተለውጧል, 32 ተሰኪዎች(+), 17 ስረዛዎች(-)

አንድ hotfix ቅርንጫፍ በማጠናቀቅ ላይ

ተጠናቅቋል ጊዜ, የ bugfix ወደ አንተ መልሼ ይዋሃዳሉ ያስፈልጋቸዋል ባለቤት, ነገር ግን ደግሞ ወደ ኋላ መካተት አለባቸው ማዳበር, ለማረጋገጥ መሆኑን bugfix በተጨማሪም በቀጣዩ መለቀቅ ውስጥ የተካተተ ነው. ይህ መንገድ ጋር በጣም ተመሳሳይ ነው መለቀቅ ቅርንጫፎች እነርሱ መጠናቀቁን ነው.

የመጀመሪያ, ዝማኔ ባለቤት እና መለያ መልቀቅ [በበጋ ይመልከቱ]:

$ Git ተመዝግበው ዋና
# «ዋና» ከቅርንጫፍ ተቀይሯል
$ Git እየተጓዙ --አይ-FF hotfix-1.2.1
# recursive የተደረጉ አዋህድ.
# (ለውጦች ማጠቃለያ)
$ Git መለያ -አንድ 1.2.1

ማስተዋል: እናንተ ደግሞ ባንዲራዎች መጠቀም ይችላሉ -s ወይም -u cryptographically የእርስዎን መለያ ለመግባት.

እንግዲህ, ያካትታሉ bugfix አይ ማዳበር ደግሞ:

$ Git ተመዝግበው ማዳበር
# ቅርንጫፍ ወደ ተቀይሯል 'ለማዳበር'
$ Git እየተጓዙ --አይ-FF hotfix-1.2.1
# recursive የተደረጉ አዋህድ.
# (ለውጦች ማጠቃለያ)

እዚህ አገዛዝ ብቸኛው ልዩ ነው, በዚያ ጊዜ አንድ መለቀቅ ቅርንጫፍ እየተካሄደ ነው, ለውጦች hotfix እነዚህ ለዚህ ተቀላቅለው ያስፈልጋቸዋል መለቀቅ ቅርንጫፍ, ይልቅ ማዳበር. ሁለቱን ድርጅቶች ተዋሐደ bugfix አይ መለቀቅ ቅርንጫፍ የ ያደርጋል bugfix ውስጥ ተቀላቅለው ማዳበር ደግሞ, ጊዜ መለቀቅ ቅርንጫፍ ሲጨርስ. (ሥራ ላይ ከሆነ ማዳበር ወዲያውኑ ይህ ይጠይቃል bugfix እንዲሁም ድረስ መጠበቅ አይችሉም መለቀቅ ቅርንጫፍ ተጠናቅቋል, በደህና ማዋሃድ ይችላሉ bugfixdeveolp በጣም.)

በመጨረሻ, ለማስወገድ ቅርንጫፍ ጊዜያዊ:

$ Git ቅርንጫፍ -መ hotfix-1.2.1
# የተሰረዘ ቅርንጫፍ hotfix-1.2.1 (abbe5d6 ነበር).

ማጠቃለያ

በዚህ ቅርንጫፍ ሞዴል ውስጥ በእርግጥ ልዩ ምንም ነገር የለም ቢሆንም, ወደ ልጥፍ መጀመሪያ ላይ አምሳሉ በእኛ ፕሮጀክቶች ውስጥ በጣም ጠቃሚ ሊሆን ይችላል. ይህም ሂደቶች የሆነ የጋራ ግንዛቤ ለማዳበር ቡድን አባላት ለመረዳት ቀላል የሆነ የአእምሮ ሞዴል ያሳያል ያስችላቸዋል ቅርንጫፎቻቸውንመልቀቅ.

ከፍተኛ ጥራት ያለው ምስል አንድ የፒዲኤፍ ስሪት የመጀመሪያውን ጦማር ልጥፍ ውስጥ ነው የሚቀርበው: http://nvie.com/posts/a-successful-git-branching-model/ [ወይም ከዚህ በታች ያለውን አውርድ አገናኝ ላይ]. ወደፊት ሂድ እና በማንኛውም ጊዜ ፈጣን ማጣቀሻ ለ ግድግዳ ላይ አኖረው.

አዶ

Git-ቅርንጫፍ-ሞዴል-20170825.pdf
3.89 ሜባ 122 ውርዶች

ደራሲ: ቪንሰንት Driessen
የመጀመሪያው ጦማር: http://nvie.com/
ፈቃድ: CC BY-SA

ጠቅላላ የመጠቀሚያ ጊዜ: 2371

አንድ መልስ ውጣ

የእርስዎ ኢሜይል አድራሻ ሊታተም አይችልም. የሚያስፈልጉ መስኮች ጋር ምልክት ነው *