Git
Chapters ▾ 2nd Edition

A1.1 Appendix A: Digər Mühitlərdə Git - Qrafik interfeyslər

Kitabın hamısını oxumusunuzsa, əmr sətrində Git’in necə istifadə ediləcəyi barədə çox şey öyrəndiniz. Lokal fayllarla işləyə, deponuzu bir şəbəkə vasitəsilə başqalarına bağlaya və başqaları ilə səmərəli işləyə bilərsiniz. Ancaq hekayə bununla bitmir; Git ümumiyyətlə daha böyük bir ekosistemin bir hissəsi kimi istifadə olunur və terminal həmişə onunla işləmək üçün ən yaxşı yol deyil. İndi Git’in faydalı ola biləcəyi bəzi digər mühitlərə və digər tətbiqetmələrin (sizin də daxil olmaqla) Git ilə necə işlədiyinə nəzər salacağıq.

Qrafik interfeyslər

Gitin yerli mühiti terminaldadır. Əvvəlcə yeni xüsusiyyətlər ortaya çıxır və yalnız komanda xəttində Gitin tam gücü tamamilə sizin ixtiyarınızdadır. Ancaq düz mətn bütün tapşırıqlar üçün ən yaxşı seçim deyil; bəzən vizual bir nümayəndəlik sizə lazım olan şeydir və bəzi istifadəçilər point-and-click interfeysi ilə daha rahatdırlar.

Fərqli interfeyslərin fərqli iş axınlarına uyğunlaşdırıldığını qeyd etmək vacibdir. Bəzi müştərilər müəllifin effektiv hesab etdiyi xüsusi bir iş üsulunu dəstəkləmək üçün yalnız diqqətlə hazırlanmış Git funksionallığının alt hissəsini ifşa edirlər. Bu işığa baxıldıqda, bu vasitələrin heç birinə digərlərindən “daha yaxşı” olduğu deyilə bilməz, sadəcə məqsədləri üçün daha uyğun olurlar. Bu qrafik müştərilərin əmr sətri müştərisinin edə bilməyəcəyi bir şey olmadığına da diqqət yetirin; əmr sətri, depolarınızla işləyərkən ən çox gücə və nəzarətə sahib olacağınız yerdir.

gitkgit-gui

Git’i quraşdırdığınızda, vizual alətləri, gitkgit-gui-də əldə edirsiniz. gitk qrafik tarixçəsi görüntüləyicisidir. Bunu git loggit grep üzərində güclü bir GUI shell-i kimi düşünün. Keçmişdə baş verən bir şey tapmağa çalışarkən istifadə etdiyiniz və ya layihənizin tarixini görselleştiren bu vasitədir.

Gitk-i əmr sətrindən çağırmaq asandır. Yalnız bir Git deposuna cd yazın:

$ gitk [git log options]

Gitk, bir çox komanda xətti seçimini qəbul edir, bunların əksəriyyəti əsas git log əməliyyatına ötürülür. Bunlardan ən çox faydalı olan flag-larından biri --all-dur, hansı ki gitk-in yalnız HEAD deyil, hər ref-dən əldə edilə bilən işləri göstərməsini söyləyir.. Gitk interfeysi belə görünür:

`gitk` tarixçəsi
Figure 152. gitk tarixçəsi

Yuxarıda bir az git log --graph çıxışına bənzəyən bir şey var; hər nöqtə bir commit-i, sətirlər valideyn münasibətlərini və reflər rəngli qutular şəklində göstərilir.

Sarı nöqtə HEAD-i, qırmızı nöqtə isə commit-ə çevrilməli olan dəyişiklikləri təmsil edir. Aşağıda seçilmiş commit-in görünüşü var; sol tərəfdəki şərhlər və patch, sağdakı summary görünüşü. Arada tarix axtarmaq üçün istifadə edilən nəzarət toplusu var. Digər tərəfdən, git-gui, ilk növbədə commit-lərin hazırlanması üçün bir vasitədir. Əmr sətrindən çağırmaq da asandır:

$ git gui

Və bu belə görünür:

`git-gui` commit tool
Figure 153. git-gui commit tool

Solda indeks var; unstaged dəyişikliklər üstdə, staged dəyişikliklər altındadır. İconlara click edərək iki vəziyyət arasında bütün faylları hərəkət etdirə və ya adını click edərək görüntüləmək üçün bir sənəd seçə bilərsiniz.

Sağ üstdə hazırda seçilmiş fayl üçün dəyişiklikləri göstərən diff görünüşü var. Bu ərazidə sağ click edərək fərdi ovları (və ya fərdi xətləri) səhnələşdirə bilərsiniz.

Sağ altda mesaj və action sahəsi var. Mesajınızı mətn qutusuna yazın və git commit-ə bənzər bir şey etmək üçün “Commit” düyməsini basın. Ayrıca, “Staged Changes” sahəsini son commit-in məzmunu ilə yeniləyəcək olan “Amend” radio düyməsini seçərək son commit-ə düzəliş edə bilərsiniz. Sonra sadəcə bəzi dəyişiklikləri stage və ya unstage, commit mesajını dəyişdirə və köhnə commit-i yenisi ilə əvəz etmək üçün yenidən “Commit” düyməsinə basa bilərsiniz.

gitkgit-gui task-oriented vasitələrin nümunələridir. Hər biri müəyyən bir məqsəd üçün hazırlanmışdır (müvafiq olaraq tarixə baxmaq və commit-lər yaratmaq) və bu tapşırıq üçün lazım olmayan xüsusiyyətləri buraxmaq.

MacOS və Windows üçün GitHub

GitHub, iki iş axını yönümlü Git müştəri yaratdı: biri Windows, digəri macOS üçün. Bu müştərilər iş axını yönümlü alətlərin yaxşı bir nümunəsidir - Git-in işləkliyini ortaya qoymaqdansa, əksinə, birlikdə işləyən, geniş yayılmış istifadə olunan xüsusiyyətlərə diqqət yetirirlər. Bunlar belə görünür:

GitHub macOS üçün
Figure 154. GitHub macOS üçün
GitHub Windows üçün
Figure 155. GitHub Windows üçün

Çox oxşar görünmək və işləmək üçün hazırlanmışdır, buna görə bu hissədə onları bir məhsul kimi nəzərdən keçirəcəyik. Bu alətlər barədə ətraflı bir baxış keçirməyəcəyik (öz sənədləri var), ancaq "dəyişikliklər" görünüşünə (vaxtınızın çox hissəsini sərf edəcəyiniz) sürətli bir tura çıxmağa dəyər.

  • Solda müştərinin izlədiyi depoların siyahısı; bu sahənin yuxarı hissəsindəki “+” iconunu click edərək (yerli olaraq klonlama və ya əlavə etməklə) bir depo əlavə edə bilərsiniz.

  • Mərkəzdə bir commit mesajı daxil etməyə imkan verən və hansı faylların daxil edilməli olduğunu seçən bir commit-input sahəsi var. Windows-da, commit tarixçəsi birbaşa bunun altında göstərilir; macOS-da ayrı bir bölmədə var.

  • Sağda iş qovluğunda nəyin dəyişdirildiyini və ya seçilmiş commit-ə hansı dəyişikliklərin daxil edildiyini göstərən fərqli bir görünüş var.

  • Diqqət yetirən son şey, şəbəkə üzərindəki qarşılıqlı əlaqənin əsas üsulu olan yuxarı sağdakı “Sync” düyməsidir.

Note

Bu alətlərdən istifadə etmək üçün bir GitHub hesabına ehtiyacınız yoxdur. GitHub xidmətini və tövsiyə olunan iş axınını vurğulamaq üçün nəzərdə tutulsa da, hər hansı bir depo ilə məmnuniyyətlə işləyəcək və istənilən Git host ilə şəbəkə əməliyyatları aparacaqlar.

Quraşdırma

Windows üçün GitHub, https://windows.github.com, MacOS üçün GitHub isə https://mac.github.com saytından yüklənə bilər. Tətbiqlər ilk dəfə işə salındıqda adınızı və e-poçt adresinizi konfiqurasiya etmək kimi ilk dəfə Git quraşdırılmasını həyata keçirir və hər ikisi credential caches və CRLF davranışı kimi bir çox ümumi konfiqurasiya variantları üçün ağlabatan standart parametrləri quraşdırırlar.

Hər ikisi də “evergreen”-dır - yeniləmələr yüklənir və tətbiqlər açıq vəziyyətdə arxa planda quraşdırılır. Bu, faydalı şəkildə Git-in paketli bir versiyasını ehtiva edir, yəni manual yeniləməkdən narahat olmayacağınız mənasını verir. Windows-da müştəri PowerShell-i Posh-git ilə işə salmaq üçün bir qısayol daxildir və bu bölmədə daha sonra danışacağıq.

Növbəti addım alətə işləmək üçün bəzi depolar verməkdir. Müştəri sizə GitHub’da girə biləcəyiniz depoların siyahısını göstərir və onları bir addımda klonlaya bilər. Yerli bir deposunuz varsa, yalnız qovluğunu Finder və ya Windows Explorer-dən GitHub müştəri pəncərəsinə sürükləyin və soldakı depolar siyahısına daxil ediləcək.

Quraşdırıldıqdan və konfiqurasiya edildikdən sonra, bir çox ümumi Git tapşırıqları üçün GitHub müştərisini istifadə edə bilərsiniz. Bu alət üçün nəzərdə tutulan iş axını bəzən “GitHub Flow” adlanır. Bunu GitHub Axını-də daha ətraflı şəkildə izah edirik, lakin ümumi fikir budur ki, (a) bir branch-a sadiq qalacaqsınız və (b) bir uzaqdan idarəedici cihazla sinxronizasiya olunacaqsınız.

Branch management iki vasitənin ayrıldığı sahələrdən biridir. MacOS-da, yeni bir branch yaratmaq üçün pəncərənin yuxarı hissəsində bir düymə var:

``Create Branch'' button macOS-da
Figure 156. “Create Branch” button macOS-da

Windows-da, bu branch dəyişən widget-a yeni branch-ın adını yazaraq edilir:

Windows-da bir branch yaratmaq
Figure 157. Windows-da bir branch yaratmaq

Branch-ınız yaradıldıqdan sonra yeni commit-lər götürmək kifayət qədər sadədir. İş qovluğunuzda bəzi dəyişikliklər edin və GitHub müştəri pəncərəsinə keçdiyiniz zaman hansı sənədlərin dəyişdirildiyini sizə göstərəcəkdir. Commit mesajı daxil edin, daxil etmək istədiyiniz sənədləri seçin və “Commit” düyməsini basın (ctrl-enter və ya ⌘-enter).

Şəbəkə üzərindəki digər depolar ilə qarşılıqlı əlaqənizin əsas yolu “Sync” xüsusiyyətidir. Git daxili olaraq pushing, fetching, merging, and rebasing üçün ayrı əməliyyatlara sahibdir, lakin GitHub müştəriləri bunların hamısını çoxpilləli bir xüsusiyyətə çevirir. Sinxronizasiya düyməsini basdıqda nə baş verir:

  1. git pull --rebase. Birləşmə konflikti səbəbindən bu uğursuz olarsa, git pull --no-rebase vəziyyətinə qayıdın.

  2. git push.

Bu üslubda işləyərkən şəbəkə əmrlərinin ən çox yayılmış ardıcıllığıdır, buna görə onları bir əmrdə sıxmaq çox vaxta qənaət edir.

Qısa Məzmun

Bu alətlər, dizayn etdikləri iş axını üçün çox uyğundur. Developers və non-developers bir neçə dəqiqə ərzində bir layihədə əməkdaşlıq edə bilərlər və bu cür iş axını üçün ən yaxşı təcrübələrin çoxu alətlərə bişirilir. Developers and non-developers alike can be collaborating on a project within minutes, and many of the best practices for this kind of workflow are baked into the tools. Bununla birlikdə, iş axınınız fərqlidirsə və ya şəbəkə əməliyyatlarının necə və nə vaxt ediləcəyinə daha çox nəzarət etmək istəyirsinizsə, başqa bir müştəri və ya əmr satırından istifadə etməyinizi məsləhət görürük.

Başqa GUI-lər

Bir sıra başqa qrafik Git müştəriləri var və onlar Gitin edə biləcəyi hər şeyi ortaya qoymağa çalışan tətbiqetmələrə qədər xüsusi, tək məqsədli vasitələrdən istifadə edirlər. Rəsmi Git veb saytında https://git-scm.com/downloads/guis saytında ən populyar müştərilərin seçilmiş siyahısı var. Daha əhatəli bir siyahı Git wiki saytında, https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Graphical_Interfaces saytında mövcuddur.