CodeGym /Kurslar /JAVA 25 SELF /Peşəkarın alətləri və problemlərin həlli

Peşəkarın alətləri və problemlərin həlli

JAVA 25 SELF
Səviyyə , Dərs
Mövcuddur

İndiyədək biz ideal ssenarini nəzərdən keçirirdik: siz kod yazırsınız, commit-lər edirsiniz, Pull Request yaradırsınız. Amma real həyatda tez-tez nəsə qaydasında getmir: kodda səhv edə, yanlış mesajla commit edə və ya sadəcə düzgün istiqamətdə getmədiyinizi anlaya bilərsiniz. Bu mühazirədə ən çox rast gəlinən problemləri necə həll etməyi müzakirə edəcəyik.

1. Rollback — commit-dən əvvəlki dəyişikliklərin ləğvi

Ssenari: faylı dəyişdirdiniz, amma bütün düzəlişlərin yanlış olduğunu başa düşdünüz və faylı son commitdən sonrakı vəziyyətinə tez qaytarmaq istəyirsiniz.

Rollback funksiyasından istifadə edin:

  1. Commit tabını açın.
  2. Siyahıda “geri qaytarmaq” istədiyiniz dəyişdirilmiş faylı tapın.
  3. Onun üzərində siçanın sağ düyməsi ilə klikləyin və Rollback seçin.

IDE sizi xəbərdar edəcək ki, dəyişikliklər itəcək. Razılaşın, və fayl dərhal Git-də son saxlanmış versiyasına qayıdacaq. Bu, lokal dəyişiklikləri ləğv etməyin ən sadə və təhlükəsiz yoludur.

2. Reset — lokal commit-lərin silinməsi

Ssenari: bir və ya bir neçə commit etmisiniz, amma hələ push etməmisiniz. Bu commit-lərin səhv olduğunu anlayıb onları sanki olmamış kimi tamamilə silmək istəyirsiniz.

Reset funksiyasından istifadə edin:

  1. Commit tarixçəsini görmək üçün Git -> Log tabını açın.
  2. Olmaq istədiyiniz (səhv commit-lərdən əvvəl olan) son “yaxşı” commit-i tapın.
  3. Onun üzərində siçanın sağ düyməsi ilə klikləyin və Reset Current Branch to Here... seçin.

Açılan pəncərədə sizə reset rejimini seçmək təklif olunacaq. Ən radikalı — Hard.

Diqqət! Hard rejimi seçilmiş commitdən sonrakı bütün commit-ləri, eləcə də həmin commit-lərdə olan bütün kod dəyişikliklərini geri dönüşü olmayan şəkildə silir. Onu çox diqqətlə və yalnız hələ heç kimin görmədiyi (GitHub-a göndərilməmiş) commit-lər üçün istifadə edin.

3. Push-dan sonra nə etməli?

Ssenari: siz push etdiniz və yalnız sonra onda səhv olduğunu gördünüz.

Commit uzaq serverə düşən kimi o, layihənin ümumi tarixinin bir hissəsinə çevrilir. Bu tarixi yenidən yazmağa cəhd etmək həmkarlarınız üçün böyük problemlər yarada bilər. Təsəvvür edin ki, onlar artıq sizin dəyişiklikləri yükləyib onun əsasında öz işlərinə başlayıblar.

Düzgün və təhlükəsiz həll:

Sadəcə səhvi düzəldən yeni commit edin və onu göndərin. Bu, tamamilə normal praktikadır. Beləcə, tarix hamı üçün dürüst və anlaşılan qalır.

4. Keçmişə baxış: log ilə qabaqcıl iş

Artıq Git -> Log tabı ilə tanışıq, amma bu təkcə commit-lərin siyahısı deyil, araşdırmalar üçün güclü bir alətdir.

  • Commit həşi (Commit Hash): yəqin ki, loqda hərflər və rəqəmlərdən ibarət sətir görmüsünüz, məsələn a1b2c3d. Bu hash unikal olduğuna görə layihə tarixində istənilən nöqtəyə dəqiq istinad etməyə imkan verir. Onu əllə istifadə etməyiniz nadir hallarda lazım olacaq, amma bilmək vacibdir ki, bu, kodunuzun hər bir “snapshot”-unun unikal identifikatorudur.
  • Tarixi budaqa, müəllifə, tarixə və ya hətta commit mesajındakı sözə görə filtrləyə bilərsiniz. Bu, müəyyən funksionallıq hissəsi üzərində kimin və nə zaman işlədiyini tez tapmağa kömək edir.
  • Müəyyən bir kod sətrinin əlavə edildiyi və ya silindiyi commit-i tapmaq istəyirsiniz? Log pəncərəsində yalnız mesajlara görə deyil, dəyişikliklərin məzmununa görə də axtaran bir axtarış sahəsi var.
  • Kod redaktorunun sahələrində siçanın sağ düyməsi ilə klikləyin və Annotate with Git Blame seçin. IDE hər sətrin qarşısında onun son dəfə kim tərəfindən və hansı commit-də dəyişdirildiyini göstərəcək. Bu, kodun niyə məhz belə yazıldığını anlamaq üçün son dərəcə faydalıdır.

5. Təhlükəli zona: Force Push

Beləliklə, göndərilmiş commit-ləri dəyişdirməyin pis fikir olduğunu müəyyənləşdirdik. Bəs əgər siz yerli tarixçənizi (məsələn, Reset vasitəsilə) dəyişdirdiniz və o, indi serverdəki tarixlə ziddiyyət təşkil edir? Adi push etməyə cəhd etdikdə Git ümumi tarixi yenidən yazmaqdan qorumaq üçün xəta verəcək.

Belə hallar üçün bir seçim var — force push (məcburi göndəriş). Bu komanda serverə belə deyir: “Səndə olan hər şeyi unut. Mənim lokal tarix versiyam yeganə doğrudur. Öz tarixini mənimkilə əvəz et.”

DİQQƏT! Halların 99 %‑ində komanda layihələrində force push istifadə etmək — fəlakətdir. Bu, həmkarlarınızın artıq yüklədiyi və onun əsasında işlədiyi commit-ləri geri dönüşü olmayan şəkildə silə bilər. Bu, ümumi kitabxana kitabından səhifələri qoparıb öz səhifələrinizi yapışdırmağa bənzəyir.

force push-u qətiyyən istifadə ETMƏK olmaz:

  • İstənilən ümumi branch-a: main, develop, master. Heç vaxt.
  • Sizdən başqa kimsənin işlədiyi istənilən brancha.

Yeganə məqbul ssenari:

Siz öz şəxsi feature-branchınızda işləyirsiniz, onu hələ heç kim görməyib və istifadə etməyib. Bir neçə “çirkli” commit etmisiniz, onları serverə göndərmisiniz, sonra isə Reset ilə onları “təmizləmək” qərarına gəlmisiniz. Bu halda Pull Request yaratmazdan əvvəl branchnizi serverdə yeniləmək üçün force push edə bilərsiniz.

IDE-də bu seçim adətən Push düyməsinin altında gizlədilib. IDE tərtibatçıları bunu qəsdən ediblər ki, onu təsadüfən basmayasınız.

Etdiyinizə 100 % əmin deyilsinizsə — heç vaxt force push istifadə etməyin. Düzəlişlərlə yeni commit yaratmaq daha təhlükəsizdir.

6. Layihənin yenilənməsi

Həmişə yeni tapşırığa başlamazdan əvvəl main branch-ında Update Project düyməsini basın. Bu, sizi gələcəkdə çoxsaylı merge konfliktlərindən qoruyacaq və işə kodun ən aktual versiyası ilə başladığınıza zəmanət verəcək.

1
Sorğu/viktorina
, səviyyə, dərs
Əlçatan deyil
Versiyalara nəzarət
Git-ə giriş
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION