1. İşə başlama: layihənin klonlanması
Keçən mühazirədə dayandığımız yerdən başlayırıq. GitHub-da yaradılmış bir repozitoriyanız var və indi işə başlamaq üçün onun lokal nüsxəsini kompüterinizə əldə etməyiniz lazımdır. Bu proses klonlama adlanır.
Addım 1. IDE-nizi işə salın. Hər hansı bir layihə açıqdırsa, onu File -> Close Project vasitəsilə bağlayın. Başlanğıc pəncərəsində Clone Repository və ya Get from VCS seçin.
Addım 2. Açılan pəncərədə repozitoriyanızın URL-ini daxil edin. Bu üsul başqasının repozitoriyasını klonlayanda faydalıdır. URL-i GitHub-da repozitoriyanın səhifəsindən köçürmək olar.
Əgər öz repozitoriyanızı klonlayırsınızsa (bizim variant), ən asanı IDE-dən birbaşa GitHub hesabınıza daxil olmaqdır. Bunun üçün Log in to GitHub seçin. IDE brauzeri avtorizasiya üçün açacaq.
Açılan səhifədə yaşıl Authorize JetBrains düyməsini arxayınlıqla basın. Bundan sonra repozitoriyalarınızı birbaşa IDE-dəki siyahıdan seçə biləcəksiniz. Lazım olan layihəni seçin və Clone basın.
Addım 3. IDE sizdən bu layihəyə etibar edib-etmədiyinizi soruşacaq. Bu sizin öz repozitoriyanız olduğuna görə, Trust Project basın.
Addım 4. Antivirusun tənzimlənməsi (Windows istifadəçiləri üçün)
Windows antivirusu IDE-nin ona naməlum hərəkətlər etməyə çalışdığını xəbərdar edə bilər. Biz proqramlar yaradıb işə salacağımız üçün IDE-nin məhdudiyyətsiz işləməsinə icazə vermək lazımdır. “Automatically” düyməsini basın ki, IDE lazımi qovluqları antivirusun istisnalarına özü əlavə etsin.
2. Dəyişikliklərin saxlanması: Commit
commit — layihənizin müəyyən anındakı “şəkli”, yəni saxlanmış vəziyyətidir. Onu oyundakı yadda saxlanma nöqtəsi kimi düşünün: nəsə səhv getsə, həmişə həmin nöqtəyə qayıda bilərsiniz. Hər bir commit-in unikal identifikatoru və edilmiş dəyişiklikləri təsvir edən mesajı var.
gitGraph
commit id: "Initial commit"
commit id: "Add user authentication"
commit id: "Fix login button bug"
commit id: "Refactor database connection"
Commitlər tarixi. Hər yeni commit əvvəlkindən qurularaq layihənin inkişafının xronologiyasını yaradır.
Addım 1. Dəyişiklik edin.
Əgər yenicə yaradılmış repozitoriyanı klonlamısınızsa, o, yalnız bir fayl — README.md faylını ehtiva edəcək.
README.md faylını açın və layihənizin təsvirini əlavə edin. Faylı redaktə etməyə başlayan kimi IDE layihə panelində fayl adını mavi rənglə vurğulayacaq. Bu o deməkdir ki, fayl dəyişdirilib, amma dəyişikliklər hələ Git-ə yazılmayıb. IDE dəyişiklik etdiyiniz yerlərdə yaşıl xətt əlavə edəcək.
Addım 2. Commit pəncərəsini açın.
IDE-nin sol tərəfində Commit vərəqi var. Onu açanda saxlanmağa hazır bütün dəyişiklikləri görəcəksiniz. İlk commit üçün bu pəncərəyə xüsusi diqqət yetirmək lazımdır.
Gəlin gördüklərimizi qısa izah edək:
- Changes: burada Git tərəfindən artıq izlənən, lakin dəyişdirilmiş fayllar olur. Bizim halda bu, layihə planını əlavə etdiyimiz
README.md-dir. - Unversioned Files: bunlar Git-in layihə qovluğunda gördüyü, lakin hələ izləmədiyi yeni fayllardır.
Sual yarana bilər: bu xidmət fayllarının hamısını repozitoriyaya əlavə etmək lazımdırmı?
Yaxşı xəbər odur ki, repozitoriyanı GitHub-da yaradanda .gitignore şablonunu seçmişdik. Bu faylda artıq Git-ə hansı qovluqları və faylları görməməzliyə vurmağı bildirən qaydalar var. Amma bunun barədə daha ətraflı mühazirənin sonunda danışacağıq.
Hələlik ilk commit üçün vəzifəmiz — layihənin əsas fayllarını tarixçəyə əlavə etmək və commit mesajını yazmaqdır.
Addım 3. Commit edin.
Commit düyməsini basın. Hazırdır! Layihənizin “şəklini” lokal repozitoriyada saxladınız. Fayl yenidən adi rəngə qayıdacaq.
3. Dəyişikliklərin GitHub-a göndərilməsi: Push
Commit-ləriniz hələlik yalnız kompüterinizdə saxlanılır. Onları komanda ilə bölüşmək və ya etibarlı yerdə saxlamaq üçün uzaq GitHub repozitoriyasına göndərmək lazımdır.
sequenceDiagram
participant Lokal repozitoriya (Sizin kompüteriniz)
participant Uzaq repozitoriya (GitHub)
note over Lokal repozitoriya (Sizin kompüteriniz): Siz bir və ya bir neçə commit etmisiniz.
Onlar yalnız burada mövcuddur.
Lokal repozitoriya (Sizin kompüteriniz) ->> Uzaq repozitoriya (GitHub): git push (commit-ləri göndərmək)
note over Uzaq repozitoriya (GitHub): Commit-ləriniz köçürüldü
və serverdə etibarlı şəkildə saxlanıldı.
Addım 1. Push düyməsini basın.
IDE-nin sağ yuxarı küncündə yuxarıya yönəlmiş yaşıl ox var — bu, Push düyməsidir. Onu basın.
Addım 2. Yoxlayın və təsdiqləyin.
Açılacaq pəncərədə göndərilməyə hazır bütün commit-ləri görəcəksiniz. Bu, məhz lazım olanları göndərdiyinizə əmin olmaq üçün son şansınızdır. Push basın.
Hər şey uğurla başa çatdısa, bu mesajları görəcəksiniz: Pushed commits to origin/main. Create pull request
Addım 3. Nəticəni GitHub-da yoxlayın.
Uğurlu göndərmədən sonra GitHub-da repozitoriyanızın səhifəsini açın. Dəyişikliklərinizin orada göründüyünü görəcəksiniz.
4. Git idarəetmə paneli
IDE-nizdə yuxarı paneldə tapılan xüsusi Git menyusu var. Bu, versiya nəzarətinizin mərkəzidir. Gəlin onun əsas bəndləri ilə qısaca tanış olaq.
Commit: dəyişiklikləri saxlamaq üçün artıq tanış olduğumuz pəncərəni açır.Push: commit-lərinizi GitHub-a göndərmək üçün pəncərəni açır.Update Project: çox vacib funksiyadır. Komandadakı digər iştirakçıların yeni dəyişikliklərini endirir (git pullicra edir). İşə başlamazdan əvvəl hər səhər onu basın!Branches: budaqların idarə olunması üçün pəncərəni açır. Bunu növbəti mühazirədə ətraflı öyrənəcəyik.Show Git Log: layihənizin bütün commit tarixçəsini göstərir. Sizin şəxsi zaman maşınınız.
5. .gitignore fayllarından istifadə
Əgər layihənizə bəzi xidmət (xidmətçi) fayllar əlavə etmisinizsə və onların təsadüfən repozitoriyaya düşməsini istəmirsinizsə, onları istisnalara əlavə edə bilərsiniz. Bunun üçün .gitignore adlı fayl var. Bu, sistemdə saxlanmalı olmayan (məsələn, müvəqqəti fayllar, loglar, parollar) fayllar olduqda çox rahatdır.
Addım 1. Əvvəlcə layihədə görməməzliyə vurmaq istədiyiniz faylı yaradın. Məsələn, notes.txt. Faylı yaratdıqdan sonra IDE onu Git-ə əlavə etməyi təklif edərsə, Cancel basın.
Addım 2. “Project” pəncərəsində yaratdığınız faylın üzərinə sağ düymə ilə klikləyin. Git --> Add to .gitignore --> Add to .gitignore yolunu izləyin. Bu seçim seçilmiş faylı layihənizin kökündəki .gitignore faylına əlavə edir.
Əgər hələ .gitignore faylınız yox idisə, IDE onu yaratmağı təklif edəcək. Razılaşın.
Addım 3. IDE fayl adını avtomatik olaraq .gitignore-a əlavə edəcək.
.gitignore-a əlavə etdikdən sonra görməməzliyə vurulan fayllar boz və ya qəhvəyi rənglə göstəriləcək. Dəyişiklikləri commit etməyə çalışanda bu fayllar nəzərə alınmayacaq. .idea qovluğunu da ignora əlavə etmək olar.
.gitignore faylının özünü repozitoriyaya commit etməyi və dəyişiklikləri GitHub-a göndərməyi unutmayın ki, layihənin bütün iştirakçıları eyni ignor qaydalarından istifadə etsin.
Yerli faylların istisna edilməsi: .git/info/exclude
.gitignore faylından əlavə, hansı ki layihənin bütün istifadəçiləri üçün faylları istisna etməkdə istifadə olunur, Git lokal qaydaları .git/info/exclude faylında yaratmağa imkan verir. Onlar repozitoriyaya commit edilməyəcək və yalnız layihənizin lokal nüsxəsi üçün qüvvədə olacaq.
Bu, məsələn, IDE-niz tərəfindən yaradılan və versiya nəzarətinə düşməməli, yalnız sizə məxsus olan faylları görməməzliyə vurmaq üçün faydalı ola bilər.
Vacibdir! Lokal ignor qaydaları yalnız repozitoriyanın sizin lokal nüsxəniz üçün keçərlidir.
Bəs artıq commit etmişəmsə?
.gitignore yalnız yeni, hələ izlənməyən faylları görməməzliyə vurur. Əgər faylı artıq commit etmisinizsə, o, repozitoriyanın tarixçəsindədir və siz onu .gitignore-a əlavə etsəniz belə, Git onu izləməyə davam edəcək. Belə hallar üçün terminal komandası var: git rm --cached <file>. Amma bunun barədə ayrıca oxumaq lazımdır.
.gitignore üçün qaydalar
.gitignore faylında Git-in görməməzliyə vurmalı olduğu fayl və qovluq adları üçün şablonlar göstərilir.
Boş sətirlər nəzərə alınmır. Şərh əlavə etmək üçün sətri # simvolu ilə başlayın.
Şablonlar:
*— istənilən sayda istənilən simvolu əvəz edir. Məsələn,*.logbütün.loguzantılı faylları görməməzliyə vurur./— şablonun sonunda qovluğu bildirir. Məsələn,logs/logsqovluğunun bütün məzmununu görməməzliyə vurur.!— sətirin əvvəlində qaydanı tərsinə çevirir. Məsələn, əgər*.logqaydanız var, ammaimportant.log-u izləmək istəyirsinizsə,!important.logsətrini əlavə edin.**— istənilən sayda iç-içə qovluqlara uyğun gəlir. Məsələn,**/tempistənilən səviyyədəkitempqovluqlarını görməməzliyə vurur.
.gitignore faylı nümunəsi
# Kompilyasiya olunmuş kod
/bin/
/obj/
# Müvəqqəti fayllar
*.tmp
*.swp
# Loglar
*.log
# IDE tərəfindən yaradılan qovluqlar
.idea/
*.user
*.suo
# Virtual mühitlər və asılılıqlar
/venv/
/node_modules/
Hazır şablonlar
Bu faylları sıfırdan yazmağınıza ehtiyac yoxdur. İcma tərəfindən sınaqdan keçirilmiş hazır şablonlar mövcuddur:
- Müxtəlif dillər və freymvörklər üçün GitHub-un
.gitignorekolleksiyası: https://github.com/github/gitignore. - gitignore.io — texnologiyalarınıza uyğun
.gitignorefaylı yaradan rahat veb xidməti.
GO TO FULL VERSION