Ես ներկայումս աշխատում եմ git-ի օգտագործման ուղեցույցների կիրառման վրա՝ բավականին բարդ զարգացման միջավայրում, և թեև կարծում եմ, որ հիմունքները բավականին լավ են կարգավորվել, կա մի հարց, որի մասին ես կցանկանայի որոշակի ներդրում ունենալ, եթե դա ընդհանրապես հնարավոր է: Սա այնքան էլ զուտ տեխնիկական հարց չէ, քանի որ այն ավելի շատ այն մասին է, թե առկա տարբերակներից որն է առավել նպատակահարմար:
Հիմնականում ես հակված եմ մի համակարգի, որը սերտորեն արտացոլում է ընդհանուր «git flow» կառուցվածքը (http://nvie.com/posts/a-successful-git-branching-model/), որոշ բացառություններով այն հարմարեցնելու մեր զարգացման միջավայրին: Կարճ ասած:
- Նախագիծը կունենա առնվազն «զարգացող» և «վարպետ» մասնաճյուղ
- «վարպետը» կպարունակի արտադրության պատրաստի վերջին կոդը
- «զարգացնելը» կպարունակի վերջին միավորված կոդը
- Ցանկացած այլ բան կլինի «feature/ticket{number}» կամ «hotfix/ticket{number}» մասնաճյուղում
- Գործառույթների ճյուղերը կստեղծվեն «զարգացումից», թեժ շտկման ճյուղերը՝ «վարպետից»
- Մասնաճյուղի անվանման համարը միշտ կհամապատասխանի տոմսի համարին մեր սեփական փոփոխության/վրիպակների համակարգում
- Առանձնահատկությունները կարող են փորձարկվել առանձին, բայց նաև համակցված՝ կառուցելով համապատասխան մասնաճյուղ կամ միաձուլելով այն՝ նախ «զարգացնելու» համար:
Մինչ այժմ դա իսկապես օգնել է մեզ պարզեցնել մեր զարգացումը և կանխել նախագծերի միջև հակասությունները: Մի մանրուք, որն այստեղ որոշակի բանավեճ է առաջացրել. Արդյո՞ք մենք պետք է միավորենք առանձնահատկությունների/տոմսերի ճյուղերը իրենց համապատասխան ծագման մեջ «--squash» տարբերակով: Ես որոշ չափով սրա երկրպագու եմ, և ինչն ինձ դուր է գալիս դրա մեջ.
- Զարգացման համար git log-ը մնում է մաքուր և ընթեռնելի, բոլոր commit-ները պարզապես կնշեն ճյուղի սկզբնական անունը (որը մեզ ասում է, թե արդյոք դա թեժ ուղղում էր, թե հատկանիշ, և տոմսի համարը)
- Նույնիսկ սկզբնական հատկանիշը կամ թեժ շտկման ճյուղը ջնջելուց հետո, միաձուլումը չի կարող հետագայում որևէ շփոթություն առաջացնել
Հնարավոր է, որ այս պատճառները բավարար չափով լավ չլինեն, և գուցե լավ պատճառներ կան այս սցենարում «--squash» չօգտագործելու համար: Մտքեր կա՞ն:
git rebase -i HEAD~N
(տես այստեղ): 27.11.2020