-
1. Başlanğıc
- 1.1 Versiyaya Nəzarət Haqqında
- 1.2 Git’in Qısa Hekayəsi
- 1.3 Git Nədir?
- 1.4 Əmr Sətiri
- 1.5 Git’i Quraşdırmaq
- 1.6 İlk Dəfə Git Quraşdırması
- 1.7 Kömək Almaq
- 1.8 Qısa Məzmun
-
2. Git’in Əsasları
-
3. Git’də Branch
- 3.1 Nutshell’də Branch’lar
- 3.2 Sadə Branching və Birləşdirmə
- 3.3 Branch İdarəedilməsi
- 3.4 Branching İş Axınları
- 3.5 Uzaq Branch’lar
- 3.6 Rebasing
- 3.7 Qısa Məzmun
-
4. Server’də Git
- 4.1 Protokollar
- 4.2 Serverdə Git Əldə Etmək
- 4.3 Sizin öz SSH Public Key’nizi yaratmaq
- 4.4 Server qurmaq
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Üçüncü Tərəf Seçimləri
- 4.10 Qısa Məzmun
-
5. Paylanmış Git
-
6. GitHub
-
7. Git Alətləri
- 7.1 Reviziya Seçimi
- 7.2 Interaktiv Səhnələşdirmə
- 7.3 Stashing və Təmizləmə
- 7.4 İşinizin İmzalanması
- 7.5 Axtarış
- 7.6 Tarixi Yenidən Yazmaq
- 7.7 Reset Demystified
- 7.8 İnkişaf etmiş Birləşmə
- 7.9 Rerere
- 7.10 Git ilə Debugging
- 7.11 Alt Modullar
- 7.12 Bundling
- 7.13 Dəyişdirmək
- 7.14 Etibarlı Yaddaş
- 7.15 Qısa Məzmun
-
8. Git’i Fərdiləşdirmək
- 8.1 Git Konfiqurasiyası
- 8.2 Git Atributları
- 8.3 Git Hook’ları
- 8.4 Git-Enforced Siyasət Nümunəsi
- 8.5 Qısa Məzmun
-
9. Git və Digər Sistemlər
- 9.1 Git Müştəri kimi
- 9.2 Git’ə Miqrasiya
- 9.3 Qısa Məzmun
-
10. Git’in Daxili İşləri
- 10.1 Plumbing və Porcelain
- 10.2 Git Obyektləri
- 10.3 Git Referansları
- 10.4 Packfile’lar
- 10.5 Refspec
- 10.6 Transfer Protokolları
- 10.7 Maintenance və Məlumatların Bərpası
- 10.8 Mühit Dəyişənləri
- 10.9 Qısa Məzmun
-
A1. Appendix A: Digər Mühitlərdə Git
- A1.1 Qrafik interfeyslər
- A1.2 Visual Studio’da Git
- A1.3 Visual Studio Code’da Git
- A1.4 Eclipse’də Git
- A1.5 Sublime Text’də Git
- A1.6 Bash’da Git
- A1.7 Zsh’də Git
- A1.8 PowerShell’də Git
- A1.9 Qısa Məzmun
-
A2. Appendix B: Proqramlara Git Daxil Etmək
- A2.1 Əmr-sətri Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Appendix C: Git Əmrləri
- A3.1 Quraşdırma və Konfiqurasiya
- A3.2 Layihələrin Alınması və Yaradılması
- A3.3 Sadə Snapshotting
- A3.4 Branching və Birləşmə
- A3.5 Layihələrin Paylaşılması və Yenilənməsi
- A3.6 Yoxlama və Müqayisə
- A3.7 Debugging
- A3.8 Patching
- A3.9 E-poçt
- A3.10 Xarici Sistemlər
- A3.11 İdarəetmə
- A3.12 Plumbing Əmrləri
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 add
-ı Yeni 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
və --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.