Skip to content

Latest commit

 

History

History
575 lines (328 loc) · 38.3 KB

C-git-commands.asc

File metadata and controls

575 lines (328 loc) · 38.3 KB

Appendix A: Git Əmrləri

Kitab boyunca onlarla Git əmrini təqdim etdik və hekayəyə yavaş-yavaş daha çox əmr əlavə edərək bir hekayə daxilində tətbiq etmək üçün çox çalışdıq. Lakin əmrlərin istifadəsi nümunələri bu kitabda bir qədər səpələnmiş formadadır.

Bu əlavədə kitab boyunca müraciət etdiyimiz bütün Git əmrlərini istifadə etdikləri şeylərə görə qruplaşdıraraq nəzərdən keçirəcəyik. Hər bir əmrin ümumiyyətlə nələr etdiyindən danışacağıq və sonra kitabın harasında istifadə etdiyimizi göstərəcəyik.

Quraşdırma və Konfiqurasiya

Çox istifadə olunan iki əmr var, Gitin ilk çağırışlarından adi gündəlik danışıqlara və istinadlara There are two commands that are used quite a lot, from the first invocations of Git to common every day tweaking and referencing, the config and help commands.

git config

Git-in yüzlərlə şey etmək üçün standart bir yolu var. Bunların çoxu üçün Git-ə default olaraq fərqli bir şəkildə etməsini söyləyə və ya seçimlərinizi təyin edə bilərsiniz. Bu, Git-ə adınızın nə olduğunu izah etməkdən, xüsusi terminal rəng seçimlərinə və ya hansı redaktordan istifadə etdiyinizə qədər hər şeyi əhatə edir. Bu əmrin oxuduğu və yazacağı bir neçə sənəd var, beləcə dəyərləri global olaraq və ya müəyyən depolara təyin edə bilərsiniz.

git config əmri demək olar ki, kitabın hər fəslində istifadə edilmişdir.

ch01-getting-started.asc-də Git istifadə etməyə başlamadan əvvəl adımız, e-poçt adresimiz və redaktor seçimimizi göstərmək üçün istifadə etdik.

ch02-git-basics-chapter.asc-də hər dəfə onları yazmaq məcburiyyətində qalmamağınız üçün uzun seçim ardıcıllığına qədər genişlənən shorthand əmrləri yaratmaq üçün ondan necə istifadə edə biləcəyinizi göstərdik.

ch03-git-branching.asc -də git pull əmrini işə saldığınızda --rebase-i varsayılan etmək üçün istifadə etdik.

ch07-git-tools.asc-də HTTP parollarınız üçün standart bir mağaza qurmaq üçün istifadə etdik.

ch08-customizing-git.asc-də Git-ə daxil olan və çıxan məzmun üzərində smudge və təmiz filtrlərin necə qurulacağını göstərdik.

Son olaraq, əsasən ch08-customizing-git.asc-nin tamamı əmrə həsr edilmişdir.

git config core.editor əmrləri

ch01-getting-started.asc-un içindəki konfiqurasiya təlimatlarını müşayiət edən bir çox redaktor aşağıdakı kimi qurula bilər:

Table 1. Exhaustive list of core.editor configuration commands
Editor Configuration command

Atom

git config --global core.editor "atom --wait"

BBEdit (Mac, with command line tools)

git config --global core.editor "bbedit -w"

Emacs

git config --global core.editor emacs

Gedit (Linux)

git config --global core.editor "gedit --wait --new-window"

Gvim (Windows 64-bit)

git config --global core.editor "'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'" (Also see note below)

Kate (Linux)

git config --global core.editor "kate"

nano

git config --global core.editor "nano -w"

Notepad (Windows 64-bit)

git config core.editor notepad

Notepad++ (Windows 64-bit)

git config --global core.editor "'C:/Program Files/Notepad/notepad.exe' -multiInst -notabbar -nosession -noPlugin" (Also see note below)

Scratch (Linux)

git config --global core.editor "scratch-text-editor"

Sublime Text (macOS)

git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl --new-window --wait"

Sublime Text (Windows 64-bit)

git config --global core.editor "'C:/Program Files/Sublime Text 3/sublime_text.exe' -w" (Also see note below)

Textmate

git config --global core.editor "mate -w"

Textpad (Windows 64-bit)

git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m (Also see note below)

Vim

git config --global core.editor "vim"

VS Code

git config --global core.editor "code --wait"

WordPad

git config --global core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'"

Xi

git config --global core.editor "xi --wait"

Note

Windows 64 bit sistemində 32 bitlik bir redaktorunuz varsa, proqram yuxarıdakı cədvəldəki kimi C:\Program Files (x86)\ rather than C:\Program Files\ quraşdırılacaqdır.

git help

git help əmri hər hansı bir əmr haqqında Git ilə göndərilən bütün sənədləri göstərmək üçün istifadə olunur. Bu əlavədəki daha90i8 v populyar olanların əksəriyyəti haqqında ümumi bir məlumat verərkən, hər bir əmr üçün mümkün olan bütün seçimlərin və flag-ların tam siyahısı üçün hər zaman git help <command> əmrini işə sala bilərsiniz.

ch01-getting-started.asc-də git help əmrini təqdim etdik və sizə ch04-git-on-the-server.asc-də git shell haqqında daha çox məlumat tapmaq üçün necə istifadə edəcəyinizi göstərdik.

Layihələrin Alınması və Yaradılması

Git deposu əldə etməyin iki yolu var. Biri onu şəbəkədəki və ya başqa bir yerdəki mövcud depodan kopyalamaq, digəri isə mövcud bir qovluqda yenisini yaratmaqdır.

git init

Bir qovluğu götürüb yeni bir Git deposuna çevirmək üçün git init əmrini işə salaraq versiyanı idarə etməyə başlaya bilərsiniz.

Bunu əvvəlcə ch02-git-basics-chapter.asc-də təqdim edirik və burada işləməyə başlamaq üçün yeni bir depo yaratdığımızı göstəririk.

ch03-git-branching.asc içərisində varsayılan branch-ı ``master''-dən necə dəyişdirə biləcəyiniz barədə qısa danışırıq.

Bu əmri ch04-git-on-the-server.asc içindəki bir server üçün boş bir deponu yaratmaq üçün istifadə edirik.

Nəhayət, ch10-git-internals.asc-də əslində səhnə arxasında gördüyü işlərin bəzi detallarına nəzər salırıq.

git clone

git clone əmri əslində digər bir neçə əmrin ətrafındakı bir şeydir. Yeni bir qovluq yaradır, içərisinə girir və boş bir Git deposu halına gətirmək üçün git init işlədir, ötürdüyünüz URL-ə bir remote olaraq (git remote add) əlavə edir (varsayılan olaraq origin adlanır), o remote depodan bir get fetchgit checkout ilə sonra işləmə qovluğunuzdakı son commit-i yoxlayır.

git clone əmri kitab boyu onlarla yerdə istifadə olunur, ancaq sadəcə bir neçə maraqlı yeri sadalayacağıq.

Bu əsasən bir neçə nümunədən keçdiyimiz ch02-git-basics-chapter.asc-də təqdim olunur və izah olunur.

ch04-git-on-the-server.asc-də işləyən qovluğu olmayan Git deposunun bir kopyasını yaratmaq üçün --bare seçimindən istifadə edirik.

ch07-git-tools.asc-də paketlənmiş Git deposunu açmaq üçün istifadə edirik.

Nəhayət, ch07-git-tools.asc-də submodullarla deponun klonlaşdırılmasını bir az daha asanlaşdırmaq üçün --recurse-submodules seçimini öyrənirik.

Kitab vasitəsilə başqa bir çox yerdə istifadə olunsa da, bunlar bir qədər bənzərsiz və ya bir az fərqli şəkildə istifadə olunduğu yerlərdir.

Sadə Snapshotting

Məzmunun qurulması və tarixinizə committingetməsi üçün əsas iş axını üçün yalnız bir neçə əsas əmr var.

git add

git add əmri işləmə qovluğundan növbəti commit üçün səhnələşdirmə sahəsinə (və ya `index'') məzmun əlavə edir. `git commit əmri işlədildikdə varsayılan olaraq yalnız bu quruluş sahəsinə baxır, buna görə də git add növbəti commit snapshot-nun tam olaraq necə görünməsini istədiyinizi hazırlamaq üçün istifadə olunur.

Bu əmr Git-də inanılmaz dərəcədə vacib bir əmrdir və bu kitabda onlarla dəfə qeyd edilir və ya istifadə olunur. Tapıla bilən bəzi unikal istifadəni tez bir zamanda əhatə edəcəyik.

Əvvəlcə git addch02-git-basics-chapter.asc-də ətraflı şəkildə təqdim edirik və izah edirik.

ch03-git-branching.asc-də birləşmə konfliktlərini həll etmək üçün bundan necə istifadə edəcəyimizi qeyd edirik.

ch07-git-tools.asc içərisində dəyişdirilmiş bir sənədin yalnız müəyyən hissələrini interaktiv şəkildə səhnələşdirmək üçün istifadə edirik.

Nəhayət, onu ch10-git-internals.asc-də aşağı səviyyədə təqlid edirik, beləliklə pərdə arxasında nə işlə məşğul olduğuna dair bir fikir əldə edə bilərsiniz.

git status

git status əmri iş qovluğunuzdakı və quruluş sahənizdəki fərqli vəziyyətləri sizə göstərəcəkdir. Hansı fayllar dəyişdirilib və səhnələşdirilməyib və hansının səhnələşdirildiyi, lakin hələ commit edilmədiyini göstərəcəkdir. Normal formada, bu mərhələlər arasında faylları necə köçürəcəyinə dair bəzi əsas göstərişləri göstərəcəkdir.

Əvvəlcə status-u ch02-git-basics-chapter.asc-da həm əsas, həm də sadələşdirilmiş formada əhatə edirik. Kitab boyunca istifadə etdiyimiz müddətdə, git status əmri ilə edə biləcəyiniz hər şey orada əksini tapmışdır.

git diff

Hər hansı iki ağac arasındakı fərqləri görmək istədiyiniz zaman git diff əmri istifadə olunur. Bu, iş mühitinizlə səhnələşdirmə sahəniz (öz-özünə git diff), quruluş sahənizlə son işiniz (git diff --staged) arasındakı fərq və ya iki iş (git diff master branchB) arasındakı fərq ola bilər.

Əvvəlcə ch02-git-basics-chapter.asc bölməsində git diff-in əsas istifadəsinə baxırıq, burada hansı dəyişikliklərin səhnələşdirildiyini və hələ səhnələşdirilmədiyini necə göstərəcəyimizi göstəririk.

Bunu ch05-distributed-git.asc içərisində --check seçimi etmədən əvvəl mümkün boşluq problemlərini axtarmaq üçün istifadə edirik.

ch05-distributed-git.asc içərisindəki git diff A…​B sintaksisiyle branch-lar arasındakı fərqləri daha təsirli şəkildə necə yoxlayacağımızı görürük.

Boşluq fərqlərini -b ilə filtrdən keçirmək və konfliktli faylların müxtəlif mərhələlərini ch07-git-tools.asc-də --theirs, --ours--base ilə necə müqayisə etmək üçün istifadə edirik.

Nəhayət, submodul dəyişikliklərini ch07-git-tools.asc içindəki --submodule ilə effektiv şəkildə müqayisə etmək üçün istifadə edirik.

git difftool

git difftool əmri, sadəcə quraşdırılmış git diff əmrindən başqa bir şey istifadə etmək istəsəniz, iki ağac arasındakı fərqi göstərmək üçün xarici bir vasitə işə salır.

Bunu yalnız ch02-git-basics-chapter.asc bölümündə qısaca qeyd edirik.

git commit

git commit əmri, git add ilə hazırlanmış bütün fayl məzmunlarını götürür və verilənlər bazasında yeni qalıcı bir snapshot qeyd edir və sonra branch göstəricisini cari branch üzərinə aparır.

Əvvəlcə, ch02-git-basics-chapter.asc bölməsində committing-in əsaslarını əhatə edirik. Orada gündəlik iş axınlarında git add addımını atlamaq üçün -a flag-ının necə istifadə ediləcəyini və redaktoru işlətmək əvəzinə komanda xəttində bir commit mesajı ötürmək üçün -m flag-ının necə istifadə ediləcəyini nümayiş etdiririk.

ch02-git-basics-chapter.asc bölməsində ən son commit-i təkrarlamaq üçün --amend seçimindən istifadə edirik.

ch03-git-branching.asc-də git commit-in nə etməsi və niyə belə etməsi barədə daha ətraflı məlumat veririk.

ch07-git-tools.asc-də -S flag-ı ilə kriptoqrafik olaraq necə imza atacağımıza baxdıq.

Nəhayət, git commit əmrinin arxa planda nə etdiyinə və ch07-git-tools.asc-də necə tətbiq olunduğuna baxırıq.

git reset

git reset əmri, əvvəlki şeyləri geri qaytarmaq üçün istifadə olunur. HEAD göstəricisi ətrafında hərəkət edir və istəyə bağlı olaraq index və ya quruluş sahəsini dəyişdirir və istəsəniz --hard istifadə etsəniz iş qovluğunu da dəyişə bilər. Bu son seçim bu əmrin səhv istifadə edildiyi təqdirdə işinizi itirməsini mümkün edir, buna görə istifadə etməzdən əvvəl başa düşdüyünüzdən əmin olun.

Əvvəlcə git reset-in ən sadə istifadəsini ch02-git-basics-chapter.asc bölməsində effektiv şəkildə əhatə edirik, burada işlədiyimiz bir faylı səhnələşdirmək üçün git add istifadə edirik.

Daha sonra tamamilə bu əmri izah etməyə həsr olunmuş ch07-git-tools.asc-də bir az ətraflı izah edirik.

ch07-git-tools.asc-də birləşməni ləğv etmək üçün git reset --hard istifadə edirik, burada git reset üçün bir az sarğı olan git merge --abort istifadə olunur.

git rm

git rm əmri, Git üçün quruluş sahəsindən və iş qovluğundan sənədləri silmək üçün istifadə olunur. Növbəti commit üçün bir faylın silinməsini mərhələləndirdiyinə görə git add-ə bənzəyir.

git rm əmrini ch02-git-basics-chapter.asc bölməsində, faylları təkrarən silmək və yalnız səhnələşdirmə sahəsindən çıxarmaqla yanaşı, işləmə qovluğunda --cached ilə tərk etmək daxil olmaqla ətraflı şəkildə əhatə edirik.

Kitabdakı git rm-nin digər fərqli istifadəsi ch10-git-internals.asc-dədir, burada git filter-branch işləyərkən --ignore-unmatch-ı qısaca istifadə edib izah edirik, bu silməyə çalışdığımız sənədin olmadığı zaman səhv etmir. Bu scripting məqsədləri üçün faydalı ola bilər.

git mv

git mv əmri bir faylı köçürmək üçün yeni bir əmrdir və sonra yeni faylda git add və köhnə faylda git rm əmrini verir.

Bu əmri yalnız ch02-git-basics-chapter.asc-də qısaca qeyd edirik.

git clean

git clean əmri istənməyən faylları iş qovluğunuzdan silmək üçün istifadə olunur. Bura müvəqqəti build artifacts-ın çıxarılması və ya konflikt fayllarının birləşdirilməsi daxil ola bilər.

ch07-git-tools.asc içindəki təmiz əmrdən istifadə edə biləcəyiniz bir çox seçim və ssenarini əhatə edirik.

Branching və Birləşmə

Git-də branching və birləşmə funksiyalarının çoxunu həyata keçirən bir neçə əmr var.

git branch

git branch əmri əslində bir branch idarəetmə vasitəsidir. Sahədəki branch-ların siyahısını verə bilər, yeni bir branch yarada, branch-ları silə və branch-ların adını dəyişə bilər.

ch03-git-branching.asc-nin çox hissəsi branch əmrinə həsr olunmuşdur və bütün fəsildə istifadə olunur. Əvvəlcə onu ch03-git-branching.asc-də təqdim edirik və digər xüsusiyyətlərinin əksəriyyətindən (siyahı və silmə)ch03-git-branching.asc-də keçirik.

ch03-git-branching.asc-də tracking branch qurmaq üçün git branch -u seçimindən istifadə edirik.

Nəhayət, ch10-git-internals.asc daxilində arxa planda gördüklərindən bir neçəsini keçirik.

git checkout

git checkout əmri branch-ları dəyişdirmək və məzmunu iş qovluğunuza göndərmək üçün istifadə olunur.

İlk olaraq əmrlə ch03-git-branching.asc-də git branch əmri ilə qarşılaşırıq.

ch03-git-branching.asc içərisində --track flag-ı ilə branch-ları izləməyə başlamaq üçün bundan necə istifadə edəcəyimizi görürük.

Bunu ch07-git-tools.asc içindəki --conflict=diff3 ilə fayl konfliktlərini yenidən tətbiq etmək üçün istifadə edirik.

ch07-git-tools.asc içərisindəki git reset ilə əlaqəsini daha ətraflı təfərrüatlarına nəzər salırıq.

Nəhayət, ch10-git-internals.asc-də bəzi tətbiq detallarına nəzər salırıq.

git merge

git merge vasitəsi, bir və ya daha çox branch-ı yoxladığınız branch-a birləşdirmək üçün istifadə olunur. Daha sonra mövcud branch-ı birləşmə nəticəsinə aparacaqdır.

git merge əmri ilk dəfə ch03-git-branching.asc-də tətbiq edilmişdir. Kitabın müxtəlif yerlərində istifadə olunmasına baxmayaraq, merge əmrinin çox az dəyişikliyi var - ümumiyyətlə birləşdirmək istədiyiniz tək branch-ın adı ilə git merge <branch> bəs edir.

Squashed birləşdirmənin necə ediləcəyini (Git işi birləşdirdiyi, ancaq birləşdiyiniz branch-ın tarixini qeyd etmədən yeni bir commit kimi göründüyünü) ch05-distributed-git.asc sonunda necə izah etdik.

Birləşdirmə prosesi və əmri, o cümlədən -Xignore-space-change əmri və bir problem birləşməsini ləğv etmək üçün --abort flag-ı daxil olmaqla çox şeyi ch07-git-tools.asc-də araşdırdıq.

Layihənizin ch07-git-tools.asc-də GPG imzalamasından istifadə edirsə, birləşmədən əvvəl imzaların necə təsdiqlənəcəyini öyrəndik.

Nəhayət, Subtree ch07-git-tools.asc-də birləşməsini öyrəndik.

git mergetool

git mergetool əmri, Git-də birləşmə ilə bağlı problemləriniz olması halında xarici birləşmə köməkçisini işə salır.

Bunu ch03-git-branching.asc-də tez qeyd edirik və ch08-customizing-git.asc öz xarici birləşmə alətinizi necə tətbiq edəcəyiniz barədə ətraflı məlumat veririk.

git log

git log əmri, son commit snapshot-dan bir layihənin əldə edilə bilən qeyd edilmiş tarixçəsini göstərmək üçün istifadə olunur. Varsayılan olaraq yalnız hazırda olduğunuz branch-ın tarixçəsini göstərəcək, ancaq içindən keçmək üçün fərqli və ya hətta çoxlu head-lar və ya branch-lar verilə bilər. Həm də commit səviyyəsində iki və ya daha çox branch arasındakı fərqləri göstərmək üçün tez-tez istifadə olunur.

Bu əmr kitabın təxminən hər fəslində bir layihənin tarixini göstərmək üçün istifadə olunur

ch02-git-basics-chapter.asc bölümündə əmri təqdim edirik və bir qədər dərindən əhatə edirik. Orada hər bir öcommit-də nələrin təqdim edildiyi barədə bir fikir əldə etmək üçün -p--stat seçimlərinə və bəzi sadə tarix və müəllif filtrləmə seçimləri tarixə daha qısaca baxmaq üçün --pretty--oneline seçimlərinə baxırıq.

ch03-git-branching.asc-də branch göstəricilərimizin harada yerləşdiyini asanlıqla vizuallaşdırmaq üçün onu --decorate seçimi ilə istifadə edirik və fərqli tarixlərin necə göründüyünü görmək üçün --graph seçimindən də istifadə edirik.

ch05-distributed-git.ascch07-git-tools.asc bölmələrində, commit-lərin başqa bir branch-a nəzərən bir branch-a unikal olduğunu görmək üçün git log əmrini istifadə etmək üçün branchA…​branchB sintaksisini əhatə edirik. ch07-git-tools.asc-də bu vəziyyəti olduqca geniş izah edirik.

ch07-git-tools.ascch07-git-tools.asc-də nə olduğunu görmək üçün branchA…​branchB formatı və --left-right sintaksisindən istifadə edirik ki, bu və ya digər branch-da, lakin hər ikisində deyil, nə baş verdiyini görək. ch07-git-tools.asc bölməsində birləşdirmə commit-ində olan konfliktlərə baxmaq üçün --cc seçiminin yanında birləşdirmə konflikti debugging-nə kömək etmək üçün --merge seçimindən necə istifadə edəcəyimizə də baxırıq.

ch07-git-tools.asc bölməsində keçid yerinə bu vasitə ilə Git reflog-una baxmaq üçün -g seçimindən istifadə edirik.

ch07-git-tools.asc bölməsində bir funksiyanın tarixini görmək kimi kodda tarixən baş verən bir şey üçün kifayət qədər mürəkkəb axtarışlar aparmaq üçün -S-L seçimlərindən istifadə etməyə baxırıq.

ch07-git-tools.asc bölməsində git log çıxışında hər bir commit-ə doğrulama sətri əlavə etmək üçün --show-signature - etibarlı bir şəkildə imzalanmış olub olmadığına əsaslanaraq necə istifadə ediləcəyini görürük.

git stash

git stash əmri branch-da bitməmiş iş görmədən iş qovluğunuzu təmizləmək üçün müvəqqəti olmayan işləri keçici olaraq saxlamaq üçün istifadə olunur.

ch07-git-tools.asc-də bu əhatə olunub.

git tag

Kod tarixinin müəyyən bir nöqtəsinə qalıcı bir bookmark vermək üçün git tag əmri istifadə olunur. Ümumiyyətlə bu, relizlər kimi şeylər üçün istifadə olunur.

Bu əmr ch02-git-basics-chapter.asc-də ətraflı şəkildə təqdim olunur və ch05-distributed-git.asc tətbiq edilir.

Ayrıca, -s flag-ı ilə bir GPG imzalı etiketin yaradılmasını və ch07-git-tools.asc içərisində -v flag-ı ilə necə təsdiqlənəcəyini də əhatə edirik.

Layihələrin Paylaşılması və Yenilənməsi

Git-də şəbəkəyə daxil olan çox sayda əmr yoxdur, əmrlərin hamısı yerli verilənlər bazasında işləyir. İşlərinizi bölüşməyə və ya başqa bir yerdən dəyişikliklər etməyə hazır olduğunuzda, remote depolarla əlaqəli bir neçə əmr var.

git fetch

git fetch əmri remote bir depo ilə əlaqə qurur və mövcud depoda olmayan bütün məlumatları toplayır və yerli verilənlər bazasında saxlayır.

Əvvəlcə bu əmrə ch02-git-basics-chapter.asc bölümündə baxırıq və ch03-git-branching.asc-də istifadəsi nümunələrini görməyə davam edirik.

Bunu həmçinin ch05-distributed-git.asc misallarından bir neçəsində də istifadə edirik.

Bunu ch06-github.asc içindəki standart boşluğun xaricində olan tək bir spesifik istinad almaq üçün istifadə edirik və ch07-git-tools.asc içindəki bir paketdən necə götürüləcəyini görürük.

git fetch-in ch10-git-internals.asc-də varsayılandan bir az fərqli bir şey etməsini təmin etmək üçün yüksək dərəcədə xüsusi refspecs quraşdırdıq.

git pull

git pull əmri, əsasən Git-in təyin etdiyiniz məsafədən alacağı və sonra dərhal olduğunuz branch-a birləşdirməyə çalışacağı git fetchgit merge əmrlərinin birləşməsidir.

Bunu ch02-git-basics-chapter.asc-də tez bir zamanda təqdim edirik və ch02-git-basics-chapter.asc-də işə saldığınız zaman nəyin necə birləşəcəyini göstərəcəyik.

ch03-git-branching.asc-də rebasing çətinliklərinə kömək etmək üçün necə istifadə edəcəyimizi də görürük.

ch05-distributed-git.asc-də birdəfəlik dəyişikliklər etmək üçün URL ilə necə istifadə edəcəyimizi göstəririk.

Nəhayət, çəkdiyiniz commit-lərin ch07-git-tools.asc daxilində imzalanmış GPG olduğunu təsdiqləmək üçün ona --verify-signatures seçimini istifadə edə biləcəyinizi çox tez qeyd edirik.

git push

git push əmri, başqa bir depo ilə əlaqə qurmaq, yerli verilənlər bazanızın remote olmayan birinin nə olduğunu hesablamaq və sonra fərqi digər depoya köçürmək üçün istifadə olunur. Digər depolara yazılı giriş tələb edir və buna görə normal bir şəkildə təsdiqlənir.

Əvvəlcə ch02-git-basics-chapter.asc-də git push əmrinə baxırıq. Burada bir branch-ı remote bir depoya push etməyin əsaslarını əhatə edirik. ch03-git-branching.asc-də müəyyən branch-ları pushing etməyə bir az daha dərindən gedirik və ch03-git-branching.asc-də izləmə branch-larını avtomatik olaraq push etmək üçün necə quracağımızı görürük. ch03-git-branching.asc -də serverdəki bir branch-ı git push` ilə silmək üçün --delete flag-ından istifadə edirik.

ch05-distributed-git.asc boyunca, branch-larda işi birdən çox məsafədən bölüşmək üçün git push istifadə etmək üçün bir neçə nümunəyə baxırıq.

ch02-git-basics-chapter.asc bölməsində --tags seçimi ilə etdiyiniz etiketləri bölüşmək üçün necə istifadə edəcəyimizi görürük.

ch07-git-tools.asc-də, submodullardan istifadə edərkən həqiqətən faydalı ola biləcək superproject-dən əvvəl bütün submodullarımızın işinin dərc olunduğunu yoxlamaq üçün --recurse-submodules seçimini istifadə edirik.

ch08-customizing-git.asc -də bir push etmə başa çatmadan çalışdıra biləcəyimiz bir ssenari olan pre-push hook-undan bəhs etməliyik.

Nəhayət, ch10-git-internals.asc-də normal istifadə olunan ümumi qısayollar əvəzinə tam refspec ilə push etməyə baxırıq. Bu, bölüşmək istədiyiniz işi dəqiqləşdirməyə kömək edə bilər.

git remote

git remote əmri, remote depolarınızı qeyd etmək üçün bir idarəetmə vasitəsidir. Uzun URL’ləri `origin'' kimi qısa tutacaq kimi saxlamağa imkan verir, beləcə, onları daima yazmağa ehtiyac qalmaz. Bunlardan bir neçəsinə sahib ola bilərsiniz və bunları əlavə etmək, dəyişdirmək və silmək üçün `git remote əmri istifadə olunur.

Bu əmr, ch02-git-basics-chapter.asc-də siyahıya daxil olmaq, əlavə edilməsi, silinməsi və adlandırılması da daxil olmaqla ətraflı şəkildə verilmişdir.

Kitabdakı təqribən hər sonrakı fəsildə də istifadə olunur, lakin həmişə standart git remote add <name> <url> formatındadır.

git archive

git archive əmri, layihənin müəyyən bir snapshot-nun arxiv sənədini yaratmaq üçün istifadə olunur.

ch05-distributed-git.asc bölüşmək üçün bir layihənin tarball-unu yaratmaq üçün git archive istifadə edirik.

git submodule

git submodule əmri normal depolar içərisində xarici depoları idarə etmək üçün istifadə olunur. Bu kitabxanalar və ya digər paylaşılan mənbələr üçün ola bilər. submodule əmrində bu qaynaqları idarə etmək üçün bir neçə alt əmr var (add, update, sync və s.).

Bu əmr yalnız ch07-git-tools.asc-də qeyd olunur və tamamilə əhatə olunur.

Yoxlama və Müqayisə

git show

git show əmri bir Git obyektini sadə və insan tərəfindən oxunaqlı bir şəkildə göstərə bilər. Normalda bunu bir etiket və ya commit barədə məlumat göstərmək üçün istifadə edərdiniz.

Əvvəlcə ch02-git-basics-chapter.asc-də izahatlı etiket məlumatlarını göstərmək üçün istifadə edirik.

Daha sonra bunu müxtəlif revizyon seçimlərimizi həll etdiyimiz commit-ləri göstərmək üçün ch07-git-tools.asc bölməsində bir az istifadə edirik.

git show ilə etdiyimiz daha maraqlı şeylərdən biri ch07-git-tools.asc birləşmə kofilikti zamanı müxtəlif mərhələlərin spesifik fayl məzmunlarını çıxarmaqd;r.

git shortlog

git shortlog əmri,git log nəticəsini ümumiləşdirmək üçün istifadə olunur. git log əmrinin yerinə yetirəcəyi eyni variantlardan çoxunu alacaqdır, lakin bütün commit-ləri sadalamaq əvəzinə müəllif tərəfindən qruplaşdırılan commit-lərin xülasəsi təqdim ediləcək.

ch05-distributed-git.asc-da gözəl bir dəyişiklik tarixi yaratmaq üçün necə istifadə edəcəyimizi göstərdik.

git describe

git describe əmri, commit-i həll edən və bir qədər insan tərəfindən oxunaqlı və dəyişməyəcək bir string istehsal edən hər şeyi almaq üçün istifadə olunur.

Bu commit SHA-1 qədər birmənalı, lakin daha başa düşülən bir commit-in təsvirini almaq üçün bir yoldur.

ch05-distributed-git.ascch05-distributed-git.asc-də git describe-dən istifadə edərək buraxılış sənədimizə ad vermək üçün bir sətir əldə edirik.

Debugging

Git, kodunuzdakı bir problemi həll etməyə kömək etmək üçün istifadə olunan bir neçə əmrə malikdir. Bu, bir şeyin harada tanıdıldığını, kimin təqdim etdiyini anlamağa qədər uzanır.

git bisect

git bisect aləti, avtomatik ikili axtarış edərək bir səhv və ya problemi səbəb olan ilk commit-in nə olduğunu müəyyən etmək üçün istifadə edilən inanılmaz dərəcədə faydalı bir debugging vasitəsidir.

Tamamilə ch07-git-tools.asc-də ilə əhatə olunmuşdur və yalnız bu hissədə qeyd edilmişdir.

git blame

git blame əmri, sənədin hər sətirində bir dəyişiklik təqdim edən sonuncu və hansı commit-in müəllifi olduğu hər hansı bir sənədin sətirlərini şərh edir. Bu, kodunuzun müəyyən bir bölməsi haqqında daha çox məlumat istəyən şəxsi tapmaq üçün faydalıdır.

ch07-git-tools.asc-də əhatə olunmuşdur və yalnız həmin hissədə qeyd edilmişdir.

git grep

git grep əmri layihənizin köhnə versiyaları daxil olmaqla qaynaq kodunuzdakı hər hansı bir fayldakı hər hansı bir string-i və ya regular expression-i tapmaqda sizə kömək edə bilər.

Bu ch07-git-tools.asc-da əhatə olunmuşdur və yalnız həmin hissədə qeyd edilmişdir.

Patching

Gitdəki bir neçə əmr, tətbiq etdikləri dəyişikliklər baxımından commit-lərin düşüncə konsepsiyası ətrafında mərkəzləşmişdir, sanki commit seriyası bir sıra patch-lardan ibarətdir.

Bu əmrlər branch-larınızı bu şəkildə idarə etməyə kömək edir.

git cherry-pick

git cherry-pick əmri, bir Git commit-ində tətbiq olunan dəyişikliyi götürmək və hazırda olduğunuz branch-da yeni bir commit olaraq yenidən tətbiq etməyə çalışmaq üçün istifadə olunur. Bu, bütün dəyişiklikləri alan branch-da birləşmək əvəzinə branch-dan bir-bir və ya iki commit götürmək üçün faydalı ola bilər.

Cherry picking ch05-distributed-git.asc bölməsində təsvir edilir.

git rebase

git rebase əmri əsasən avtomatlaşdırılmış bir cherry-pick-dir. Bir sıra vəzifələri müəyyənləşdirir və sonra cherry-picks ilə onları başqa yerdə eyni qaydada bir-bir seçir.

Rebasing ch03-git-branching.asc bölməsində təfərrüatlı şəkildə açıqlanmışdır.

Bunu --onto flag-nı da istifadə edərək tarixinizi ch07-git-tools.asc-da iki ayrı depoya ayırma nümunəsi zamanı praktikada istifadə edirik.

ch07-git-tools.asc-də rebasing zamanı birləşmə konfliktinə rast gəlirik.

Bunu ch07-git-tools.asc-da -i seçimi ilə interaktiv bir skript yazma rejimində də istifadə edirik.

git revert

git revert əmri əslində tərs bir git cherry-pick-dir. Hədəf etdiyiniz commit-dəki dəyişikliyin tam əksini tətbiq edən yeni bir commit yaradır, mahiyyətcə ləğv edir və ya geri qaytarır.

Birləşdirmə commit-ini ləğv etmək üçün bunu ch07-git-tools.asc-də istifadə edirik.

E-poçt

Git özü də daxil olmaqla bir çox Git layihəsi tamamilə poçt siyahıları üzərində aparılır. Git, asanlıqla e-poçtla göndərə biləcəyiniz patch-lar yaratmaqdan bir e-poçt qutusundan bu patch-arı tətbiq etməyə qədər bu prosesi asanlaşdırmağa kömək edən bir sıra alətlərə malikdir.

git apply

git apply əmri, git diff və ya hətta GNU diff əmri ilə yaradılan patch-ı tətbiq edir. Bu, patch əmrinin bir neçə kiçik fərqlə edə biləcəyinə bənzəyir.

Bunu istifadə edə biləcəyinizi və bunu edə biləcəyiniz şərtləri ch05-distributed-git.asc-də əhatə etmişik.

git am

git am əmri, e-poçt gələnlər qutusundan, xüsusən mbox formatlı olan patch-ları tətbiq etmək üçün istifadə olunur. Bu e-poçt üzərindən patch-lar almaq və onları asanlıqla layihənizə tətbiq etmək üçün faydalıdır.

ch05-distributed-git.asc-də git am ətrafında istifadə və iş axınını --resolved, -i-3 seçimlərindən istifadə etməklə əhatə etdik.

Ayrıca, git am ətrafında iş axınında kömək etmək üçün istifadə edə biləcəyiniz bir çox hooks var və hamısı ch08-customizing-git.asc-da əhatə olunmuşdur.

Bundan əlavə, ch06-github.asc-də patch formatlı GitHub Pull Request dəyişikliklərini tətbiq etmək üçün istifadə edirik.

git format-patch

git format-patch əmri, düzgün şəkildə formatlanmış poçt siyahısına göndərmək üçün istifadə edə biləcəyiniz mbox formatında bir sıra patch-lar yaratmaq üçün istifadə olunur.

ch05-distributed-git.asc-da git format-patch alətindən istifadə edərək bir layihəyə töhfə vermə nümunəsindən keçirik.

git imap-send

git imap-send əmri git format-patch ilə yaradılan bir poçt qutusunu bir IMAP draft qovluğuna yükləyir.

ch05-distributed-git.asc-də git imap-send vasitəsi ilə patch-lar göndərərək bir layihəyə töhfə vermə nümunəsini nəzərdən keçiririk.

git send-email

git send-email əmri e-poçt üzərindən git format-patch ilə yaradılan patch-ları göndərmək üçün istifadə olunur.

ch05-distributed-git.asc-də git send-email vasitəsi ilə patch-lar göndərərək bir layihəyə töhfə vermək nümunəsini əhatə edirik.

git request-pull

git request-pull əmri sadəcə birinə e-poçt göndərmək üçün nümunə mesaj gövdəsi yaratmaq üçün istifadə olunur. Bir ümumi serverdə bir branch-ınız varsa və kiməsə bu dəyişiklikləri e-poçt üzərindən göndərmədən necə birləşdirəcəyini bildirmək istəyirsinizsə, bu əmri işə sala və nəticəni dəyişiklikləri pull etmək istədiyiniz şəxsə göndərə bilərsiniz.

ch05-distributed-git.asc içərisində bir pull mesajı yaratmaq üçün git request-pull istifadə qaydalarını nümayiş etdiririk.

Xarici Sistemlər

Git, digər versiya nəzarət sistemləri ilə inteqrasiya etmək üçün bir neçə əmrlə gəlir.

git svn

git svn əmri, bir müştəri olaraq Subversion versiyası idarəetmə sistemi ilə əlaqə qurmaq üçün istifadə olunur. Bu, Git-i bir Subversion serverindən ödəmə və commit götürmək üçün istifadə edə biləcəyiniz deməkdir.

Bu əmr ch09-git-and-other-systems.asc-də daha ətraflı əhatə olunur.

git fast-import

Digər versiya idarəetmə sistemləri və ya hər hansı bir formatdan idxal etmək üçün digər formatı Git-in asanlıqla yaza biləcəyi bir şeyə sürətlə uyğunlaşdırılması üçün git fast-import istifadə edə bilərsiniz.

Bu əmr ch09-git-and-other-systems.asc-də daha ətraflı əhatə olunur.

İdarəetmə

Bir Git deposunu idarə edirsinizsə və ya bir şeyi böyük bir şəkildə düzəltməlisinizsə, Git sizə kömək etmək üçün bir sıra inzibati əmrlər təqdim edir.

git gc

git gc əmri deponuzda ``garbage collection'' işlədir, verilənlər bazanızdakı lazımsız sənədləri silər və qalan faylları daha səmərəli formata yığar.

Bu əmr normal olaraq sizin üçün arxa planda işləyir, istəsəniz manual olaraq idarə edə bilərsiniz. Bunun bəzi nümunələrini ch10-git-internals.asc-də nəzərdən keçiririk.

git fsck

git fsck əmri daxili verilənlər bazasında problem və uyğunsuzluqlar olub olmadığını yoxlamaq üçün istifadə olunur.

Asılı obyektləri axtarmaq üçün bunu yalnız ch10-git-internals.asc-də bir dəfə istifadə edirik.

git reflog

git reflog əmri, tarixlərin yenidən yazılması nəticəsində itirmiş ola biləcəyiniz commit-ləri tapmaq üçün işləyərkən bütün branch-larınızın rəhbərlərinin olduğu bir gündəliyə keçir.

Bu əmri əsasən ch07-git-tools.asc bölməsində əhatə edirik, burada normal istifadəni və git log çıxışı ilə eyni məlumatlara baxmaq üçün git log -g istifadə qaydalarını göstəririk.

Ayrıca ch10-git-internals.asc-də belə bir itirilmiş branch-ı bərpa etmək üçün praktik bir nümunəsini incəliyəcəyik.

git filter-branch

git filter-branch əmri, bir faylın hər yerdə silinməsi və ya layihənin çıxarılması üçün bütün deponun bir tək bir alt qovluğa filtrləmək kimi müəyyən yüklənmə qaydalarına uyğun olaraq yenidən yazmaq üçün istifadə olunur.

ch07-git-tools.asc bölməsində əmri izah edirik və --commit-filter, --subdirectory-filter--tree-filter kimi bir neçə fərqli variantı araşdırırıq.

ch09-git-and-other-systems.ascch09-git-and-other-systems.asc içərisində xaricdən gətirilən xarici depoları düzəltmək üçün istifadə edirik.

Plumbing Əmrləri

Kitabda qarşılaşdığımız bir çox aşağı səviyyəli plumbing əmrləri də var idi.

İlk qarşılaşdığımız, ch06-github.asc içərisində serverdəki xam istinadlara baxmaq üçün ls-remote istifadə etdirik .

Səhnələşdirmə sahənizin necə göründüyünə baxmaq üçün ch07-git-tools.asc, ch07-git-tools.ascch07-git-tools.asc içərisində ls-files istifadə edirik.

Ayrıca ch07-git-tools.asc-də rev-parse-ni qeyd edərək hər bir sətri götürüb SHA-1 obyektinə çeviririk.

Bununla birlikdə, əhatə etdiyimiz aşağı səviyyəli plumbing əmrlərinin çoxu ch10-git-internals.asc-da az-çox diqqət mərkəzindədir. Kitabın qalan hissəsində bunların istifadəsinin qarşısını almağa çalışdıq.