CodeGym /Kurslar /C# SELF /Peşəkar alətlər və problemlərin həlli

Peşəkar alətlər və problemlərin həlli

C# SELF
Səviyyə, Dərs
Mövcuddur

İndiyə qədər biz ideal ssenarini nəzərdən keçirmişdik: kod yazırsınız, commit edirsiniz, Pull Request yaradırsınız. Amma real həyatda çox vaxt nələrsə səhv gedir: kodda səhv edə bilərsiniz, commit mesajını düzgün yazmaya bilərsiniz və ya sadəcə fərq edirsiniz ki, yanlış istiqamətdə gedirsiniz. Bu mühazirədə ən geniş yayılmış problemləri necə həll edəcəyimizi nəzərdən keçirəcəyik.

1. Rollback — commit-ə qədər olan dəyişikliklərin geri qaytarılması

Ssenari: faylı dəyişdirdiniz, amma başa düşdünüz ki, bütün düzəlişlər səhvdir və faylı son commit-dən sonra olduğu vəziyyətə tez bir zamanda qaytarmaq istəyirsiniz.

Rollback funksiyasından istifadə edin:

  1. Commit tabını açın.
  2. Geri qaytarmaq istədiyiniz dəyişdirilmiş faylı siyahıda tapın.
  3. Üzərinə sağ klikləyin və Rollback seçin.

IDE sizə dəyişikliklərin itiriləcəyini xəbər verəcək. Razılaşın və fayl dərhal Git-də saxlanmış son versiyasına qayıdacaq. Bu lokal dəyişiklikləri geri qaytarmaq üçün ən sadə və təhlükəsiz yoldur.

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

Ssenari: bir və ya bir neçə commit etmisiniz, amma hələ push etməmisiniz. Başa düşdünüz ki, bu commit-lər səhvdir və onları tamamilə silmək, guya heç olmamış kimi etmək istəyirsiniz.

Reset funksiyasından istifadə edin:

  1. Commit tarixçəsini görmək üçün Git -> Log tabını açın.
  2. Siz olmaq istədiyiniz son "yaxşı" commit-i tapın (səhv commit-lərdən əvvəl olan).
  3. Üzərinə sağ klikləyin və Reset Current Branch to Here... seçin.

Açılan pəncərədə sıfırlama rejimini seçmək təklif olunacaq. Ən radikalı — Hard-dır.

DİQQƏT! Hard rejimi seçilmiş commit-dən sonrakı bütün commit-ləri və həmin commit-lərdə olan kod dəyişikliklərini geri dönməz şəkildə silir. Onu çox ehtiyatla və yalnız hələ heç kim görməyən commit-lər üçün (GitHub-a push edilməyənlər üçün) istifadə edin.

3. Push-dan sonra nə etmək olar?

Ssenari: siz push etmisiniz və sonra səhv olduğunu gördünüz.

Commit uzaq serverə düşdükdən sonra o layihənin ümumi tarixçəsinin bir hissəsinə çevrilir. Bu tarixçəni yenidən yazmağa cəhd etmək həmkarlarınız üçün böyük problemlər yarada bilər. Tutaq ki, onlar artıq sizin dəyişiklikləri çəkiblər və onların üzərində işləməyə başlayıblar.

Doğru və təhlükəsiz həll:

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

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

Biz artıq Git -> Log tabı ilə tanışıq, amma bu sadəcə commit-lərin siyahısı deyil, araşdırmalar üçün güclü alətdir.

  • Commit hash: siz logda hərf və rəqəmlərdən ibarət sətir görmüsünüz, məsələn a1b2c3d. Bu hash unikaldır və layihə tarixində istənilən nöqtəyə dəqiq istinad etməyə imkan verir. Adətən onu əl ilə istifadə etməyə ehtiyac yoxdu, amma onun nə olduğunu bilmək vacibdir.
  • Tarixi branch, müəllif, tarix və hətta commit mesajındakı söz üzrə filtr edə bilərsiniz. Bu müəyyən funksional hissə üzərində kimin və nə vaxt 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ə axtarış sahəsi var, o yalnız mesajlar üzrə deyil, eyni zamanda dəyişikliklərin məzmunu üzrə də axtarır.
  • Redaktorun kənarına sağ klikləyin və Annotate with Git Blame seçin. IDE hər sətrin yanında onu son dəfə kim və hansı commit-də dəyişdiyini göstərəcək. Bu kodun niyə belə yazıldığını anlamaqda inanılmaz faydalıdır.

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

Beləliklə, biz gördük ki, göndərilmiş commit-ləri dəyişdirmək pis ideyadır. Amma əgər siz lokal tarixçənizi (məsələn, Reset ilə) dəyişmisinizsə və indi o serverdəki tarixçə ilə üst-üstə düşmür? Adi push etməyə çalışanda Git xətası verəcək və ümumi tarixçəni yenidən yazmaqdan sizi qoruyacaq.

Belə hallarda force push (məcburi göndərmə) seçimi var. Bu komanda serverə deyir: "Sənin əvvəllər olanların hamısını unut. Mənim lokal tarixçəm doğru tarixçədir. Öz tarixçəni mənimlə əvəzlə".

DİQQƏT! Komanda layihələrində force push istifadə etmək 99% halda fəlakət-dir. Bu, həmkarlarınızın artıq çəkdiyi və onların işinə əsaslanan commit-ləri geri dönməz şəkildə silə bilər. Bu, ümumi kitabxadan səhifələri çıxarıb özlərinizi yapışdırmağa bənzəyir.

Qəti qadağan olunan hallar:

  • Hər hansı ümumi branch-lərdə: main, develop, master. Heç vaxt.
  • Sizinlə yanaşı başqa kimsə işləyən hər hansı branch-ə.

Yeganə qəbul edilən ssenari:

Siz hələ heç kim görməyən və istifadə etməyən öz şəxsi feature-branch-da işləyirsiniz. Bir neçə "çirkli" commit etmisiniz, onları serverə göndərmisiniz, sonra isə Reset ilə onları "tərtib" etmək qərarına gəldiniz. Bu halda, Pull Request yaratmazdan əvvəl öz branch-ınızı 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ədilir. IDE inkişaf etdiriciləri bunu qəsdən eləyiblər ki, təsadüfən basmayasınız.

Əgər 100% əmin deyilsinizsə ki, nə edirsiniz — heç vaxt force push istifadə etməyin. Daha təhlükəsiz yol səhvləri düzəldən yeni commit yaratmaqdır.

6. Layihəni güncəlləmək

Hər zaman yeni tapşırığa başlamazdan əvvəl main branch-ında Update Project düyməsini vurun. Bu sizi gələcək bir çox merge konfliktlərindən qoruyacaq və işə ən aktual kod versiyasından başlamanızı təmin edəcək.

1
Sorğu/viktorina
, səviyyə, dərs
Əlçatan deyil
Git ilə tanışlıq
Versiya nəzarəti: Git və GitHub ilə işləmək
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION