CodeGym /Kurslar /C# SELF /İnkişafçının gündəlik dövrü: Commit, Push və .gitignore

İnkişafçının gündəlik dövrü: Commit, Push və .gitignore

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

1. İşə başlama: layihəni clone etmək

Ötən mühazirədə dayandığımız yerdən başlayaq. Sizin GitHub-da yaradılmış repository-niz var və indi onu yerli nüsxəsini kompüterinizə götürməlisiniz ki, işləməyə başlayasınız. Bu prosesə clone deməkdir.

Addım 1. IDE-nizi işə salın. Əgər hansısa layihə açıqdırsa, onu File -> Close Project vasitəsilə bağlayın. Başlanğıc pəncərədə Clone Repository və ya Get from VCS seçin.

Addım 2. Açılan pəncərədə repository-nizin URL-ini yapışdırın. Bu üsul başqasının repository-sini clone edərkən rahatdır. URL-i GitHub-dakı repository səhifəsindən kopyalaya bilərsiniz.

Əgər öz repository-nizi clone edirsinizsə (bizim halda belədir), ən asan yol IDE-dən birbaşa GitHub hesabınıza daxil olmaqdır. Bunun üçün Log in to GitHub seçin. IDE brauzeri açaraq sizdən avtorizasiya tələb edəcək.

JetBrains IDE-nin GitHub üçün avtorizasiya pəncərəsi

Açılan səhifədə rahatlıqla yaşıl Authorize JetBrains düyməsini basın. Bundan sonra IDE içindən repository-lərinizi siyahıdan seçə biləcəksiniz. Lazım olan layihəni seçin və Clone düyməsini bəyən.

Addım 3. IDE sizdən bu layihəyə etibar edib-etmədiyinizi soruşacaq. Çünki bu sizin şəxsi repository-nizdir, Trust Project düyməsini basın.

Addım 4. Antivirus tənzimləməsi (Windows istifadəçiləri üçün)

Windows antivirusu IDE-nin bəzi əməliyyatlarını şübhəli sayıb xəbərdarlıq verə bilər. Biz proqramlar yaradıb işlədəcəyik, ona görə IDE-nin məhdudiyyətsiz işləməsinə icazə vermək lazımdır. IDE-nin lazımi qovluqları antivirusdan istisna etməsi üçün «Automatically» düyməsini basın.

2. Dəyişiklikləri yadda saxlamaq: Commit

commit — layihənizin müəyyən bir vaxtdakı "şəkli" və ya yadda saxlanmış vəziyyətidir. Ona oyunlardakı save nöqtəsi kimi baxın: nəsə səhv olarsa, ora geri dönə bilərsiniz. Hər commit-in unikal identifikatoru və edilən dəyişiklikləri izah edən mesajı olur.

        gitGraph
        commit id: "Initial commit"
        commit id: "Add user authentication"
        commit id: "Fix login button bug"
        commit id: "Refactor database connection"
    
Layihənin commit tarixi. Hər yeni commit əvvəlkindən yaranır və layihənin xronologiyasını yaradır.

Addım 1. Dəyişiklik edin.

Əgər siz yeni yaradılmış repository-ni clone etmisinizsə, orada adətən yalnız bir fayl olacaq — README.md

README.md faylını açın və layihənizin təsvirini əlavə edin. Faylı redaktə etməyə başlayanda IDE layihə panelində faylın adını mavi rənglə işıqlandıracaq. Bu Git-ə dəyişiklik edildiyini, amma hələ yaddaşa yazılmadığını göstərir. IDE dəyişiklik etdiyiniz yerdə yaşıl xətt göstərəcək.

Addım 2. Commit pəncərəsini açın.

IDE-də solda Commit sekmesi var. Onu açanda yaddaşa yazılmağa hazır bütün dəyişiklikləri görəcəksiniz. İlk commit üçün bu pəncərə xüsusi diqqət tələb edir.

Gəlin görək nə görürük:

  • Changes: burada Git tərəfindən artıq izlənilən, amma dəyişdirilmiş fayllar var. Bizim halda bu README.md faylıdır, ora layihə planını əlavə etdik.
  • Unversioned Files: bu, layihə qovluğunda Git-in gördüyü, amma hələ izləmədiyi yeni fayllardır.

Sual yarana bilər: bütün bu xidmət fayllarını repository-yə əlavə etmək lazımdırmı?

Yaxşı xəbər odur ki, GitHub-da repository yaradan zaman biz .gitignore şablonunu seçmişik. Bu fayl artıq Git-ə hansı qovluq və faylları ignor etməyi söyləyən qaydaları ehtiva edir. Bu haqda mühazirənin sonunda daha ətraflı danışacağıq.

İlk commit üçün bizim məqsədimiz — əsas layihə fayllarını tarixə əlavə etmək və commit mesajını yazmaqdır.

Addım 3. Commit edin.

Commit düyməsini basın. Hazır! Layihənizin "şəkilini" yerli repository-yə yadda saxladınız. Fayl yenidən adi rəngə dönəcək.

3. Dəyişiklikləri GitHub-a göndərmək: Push

Commit-ləriniz hələlik yalnız kompüterinizdə saxlanılıb. Onları komandaya paylaşmaq və ya etibarlı yerdə saxlamaq üçün remote repository-yə — GitHub-a göndərmək lazımdır.

        sequenceDiagram
        participant Lokal repository (Sizin kompüter)
        participant Uzaq repository (GitHub)

        note over Lokal repository (Sizin kompüter): Siz bir və ya bir neçə commit etmisiniz.
Onlar yalnız burada mövcuddur. Lokal repository (Sizin kompüter) ->> Uzaq repository (GitHub): git push (commit-ləri göndər) note over Uzaq repository (GitHub): Sizin commit-lər kopyalanır
və serverdə etibarlı şəkildə saxlanılır.
Lokal commit-ləriniz uzaq serverə göndərilir və layihə tarixçəsi sinxronlaşdırılır.

Addım 1. Push düyməsini basın.

IDE-nin sağ yuxarı küncündə yaşıl yuxarı ox var — bu Push düyməsidir. Onu basın.

Addım 2. Yoxlayın və təsdiq edin.

Açılan pəncərədə göndərilməyə hazır bütün commit-ləri görəcəksiniz. Bu göndərdiyinizə əmin olmaq üçün son şansınızdır. Push düyməsini basın.

Əgər hər şey uğurla keçdisə, belə 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-dakı repository səhifəsini açın. Dəyişikliklərin orada göründüyünü təsdiqləyəcəksiniz.

4. Git idarəetmə paneli

IDE-də yuxarı paneldə xüsusi Git menyusu var. Bu sizin version control mərkəzinizdir. Gəlin onun əsas maddələri ilə qısa tanış olaq.

  • Commit: yadda saxlama üçün tanış pəncərəni açır.
  • Push: commit-lərinizi GitHub-a göndərmək üçün pəncərə açır.
  • Update Project: çox vacib funksiyadır. Bu, komanda yoldaşlarınızın etdiyi son dəyişiklikləri yükləyir (git pull işləyir). Hər səhər işə başlamazdan əvvəl bunu basın!
  • Branches: branch-lərlə işləmək üçün pəncərə açır. Buna növbəti mühazirədə dərindən baxacağıq.
  • Show Git Log: layihənizin bütün commit tarixçəsini göstərir. Sizin şəxsi zaman maşınınızdır.

5. .gitignore fayllarından istifadə

Əgər layihənizə bəzi xidmət faylları əlavə etmisinizsə və onların təsadüfən repository-yə düşməsini istəmirsinizsə, onları istisnalara əlavə edə bilərsiniz. Bunun üçün .gitignore adlı fayl var. Bu fayl layihədə version control-da saxlamaq istəmədiyiniz fayllar üçün çox faydalıdır (məsələn, müvəqqəti fayllar, loglar, parollar).

Addım 1. İstisna etmək istədiyiniz faylı layihə kataloqunda yaradın. Məsələn, notes.txt. Faylı yaratdıqdan sonra IDE sizdən Git-ə əlavə etməyi təklif edərsə, Cancel düyməsini basın.

Addım 2. "Project" pəncərəsində yaradılmış fayl üzərində sağ klik edin. Git --> Add to .gitignore --> Add to .gitignore seçin. Bu seçim seçilmiş faylı layihənizin kökündəki .gitignore faylına əlavə edəcək.

Əgər hələ .gitignore faylı yoxdursa, IDE onu yaratmağı təklif edəcək. Razılaşın.

Addım 3. IDE avtomatik olaraq fayl adını .gitignore-ə əlavə edəcək.

.gitignore-ə əlavə etdikdən sonra ignor edilən fayllar boz və ya qəhvəyi rəngdə görünəcək. Commit etməyə çalışdıqda bu fayllar nəzərə alınmayacaq. .idea qovluğunu da ignore-a əlavə etmək olar.

.gitignore faylını da commit etməyi və dəyişiklikləri GitHub-a push etməyi unutmayın ki, layihədəki bütün iştirakçılar eyni ignor qaydalarından istifadə etsinlər.

Local faylların istisnası: .git/info/exclude

.gitignore faylından başqa, bütün istifadəçilər üçün deyil, yalnız sizin lokal nüsxəniz üçün ignore qaydaları yarada biləcəyiniz .git/info/exclude faylı da var. Bu fayl repository-yə commit olunmayacaq və yalnız sizin lokal nüsxənizdə təsirli olacaq.

Bu, məsələn, yalnız sizin IDE-niz tərəfindən yaradılan və ümumi repository-yə düşməməli olan faylları ignor etmək üçün faydalıdır.

Vacib! Lokal ignore qaydaları yalnız sizin lokal nüsxəniz üçün işləyir.

Amma əgər artıq commit etmisəmsə nə olacaq?

.gitignore yalnız yeni, hələ izlənilməyən faylları ignor edir. Əgər faylı artıq commit etmisinizsə, o repository tarixçəsində var və Git onun arxasınca baxmağa davam edəcək, hətta onu .gitignore-ə əlavə etsəniz də. Belə hallarda terminal üçün istifadə olunan komanda var: git rm --cached <file>. Bu barədə ayrıca oxumaq lazım olacaq.

.gitignore üçün qaydalar

.gitignore faylında Git-in ignor etməli olduğu fayl və qovluq adları üçün şablonlar göstərilir.

Boş sətrlər nəzərə alınmır. Şərh əlavə etmək üçün sətrin əvvəlində # simvolundan istifadə edin.

Şablonlar:

  • * — istənilən sayda hər hansı simvolları əvəz edir. Məsələn, *.log bütün .log uzantılı faylları ignor edəcək.
  • / — şablonun sonunda qovluğu göstərir. Məsələn, logs/ logs qovluğunun məzmununu ignor edəcək.
  • ! — sətrin əvvəlində qaydanı invert edir. Məsələn, əgər *.log varsa və siz important.log-u izləmək istəyirsinizsə, !important.log sətrini əlavə edin.
  • ** — istənilən sayda daxili qovluğa uyğun gəlir. Məsələn, **/temp hər səviyyədəki temp qovluqlarını ignor edəcək.

.gitignore faylı nümunəsi


# Tərtib 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

Bunları sıfırdan yazmağa ehtiyac yoxdur. İcma tərəfindən yoxlanmış hazırlıqlı şablonlar mövcuddur:

  1. Fərqli dillər və framework-lər üçün GitHub-un .gitignore kolleksiyası: https://github.com/github/gitignore.
  2. gitignore.io — sizin texnologiyalarınıza uyğun .gitignore yaradan rahat veb-servis.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION