Git
Chapters ▾ 2nd Edition

A3.3 Appendix C: Git Əmrləri - Sadə Snapshotting

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 addYeni Faylların Izlənməsi-də ətraflı şəkildə təqdim edirik və izah edirik.

Əsas Birləşmə Konfiliktləri-də birləşmə konfliktlərini həll etmək üçün bundan necə istifadə edəcəyimizi qeyd edirik.

Interaktiv Səhnələşdirmə 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 Ağac Obyektləri-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 Fayllarınızın Vəziyyətinin Yoxlanılması-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ə Mərhələli və Mərhələsiz Dəyişikliklərə Baxış 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 Commit Guidelines içərisində --check seçimi etmədən əvvəl mümkün boşluq problemlərini axtarmaq üçün istifadə edirik.

Nəyin Təqdim Olunduğunu Müəyyənləşdirmək 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 İnkişaf etmiş Birləşmə-də --theirs, --ours--base ilə necə müqayisə etmək üçün istifadə edirik.

Nəhayət, submodul dəyişikliklərini Submodullarla başlayaq 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 Mərhələli və Mərhələsiz Dəyişikliklərə Baxış 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ə, Dəyişikliklərinizin Commit’lənməsi 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.

Ləğv Edilən İşlər (Geri qaytarılan) bölməsində ən son commit-i təkrarlamaq üçün --amend seçimindən istifadə edirik.

Nutshell’də Branch’lar-də git commit-in nə etməsi və niyə belə etməsi barədə daha ətraflı məlumat veririk.

Commit-ləri İmzalamaq-də -S flag-ı ilə kriptoqrafik olaraq necə imza atacağımıza baxdıq.

Nəhayət, git commit əmrinin arxa planda nə etdiyinə və Commit-ləri İmzalamaq-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 Mərhələli Bir Faylın Mərhələlərə Ayrılmaması 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ş Reset Demystified-də bir az ətraflı izah edirik.

Birləşməni Ləğv etmək-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 Faylların Silinməsi 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 Obyektlərin Silinməsi-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 Daşınan Fayllar-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.

İş Qovluğunuzun Təmizlənməsi içindəki təmiz əmrdən istifadə edə biləcəyiniz bir çox seçim və ssenarini əhatə edirik.