-
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
2.4 Git’in Əsasları - Ləğv Edilən İşlər (Geri qaytarılan)
Ləğv Edilən İşlər (Geri qaytarılan)
İstənilən mərhələdə hansısa əməliyyatı və yaxud bir şeyi geri qaytarmaq istəyə bilərsiniz. Burada etdiyiniz dəyişiklikləri geri qaytarmaq üçün bir neçə əsas vasitəni nəzərdən keçirəcəyik. Diqqətli olun, çünki bu boşluqların bəzisini geri qaytara bilməzsiniz.Git’də səhv etdiyiniz zaman hər hansısa işinizi itirə biləcəyiniz sahələrdən biridir.
Ümumi geri qaytarılmaların biri çoxu erkən commit etdiyinizdə və bəlkə də bəzi faylları əlavə etməyi unutduğunuzda və ya commit mesajınızı qarışdırdığınız zaman baş verir.
Bu commiti yenidən yerinə yetirmək istəyirsinizsə, unutduğunuz əlavə dəyişiklikləri düzəldin, onları mərhələlərə ayırın və yenidən --amend
seçimini istifadə edərək commitləyin:
$ git commit --amend
Bu əmr mərhələli sahənizi alır və commit üçün istifadə edir. Sonuncu commitinizdən bəri heç bir dəyişiklik etməmisiniz (məsələn, əvvəlki commitinizdən dərhal sonra bu əmri işə salırsınız), sonra sizin snapshotunuz tam olaraq eyni görünəcəkdir və bütün dəyişikliklər sizin commit mesajınızdır.
Eyni commit mesajı redaktoru işə düşür, lakin artıq əvvəlki commitlərinizin mesajı var. Mesajı həmişəki kimi eyni şəkildə düzəldə bilərsiniz, ancaq o əvvəlki commitlərinizin üstünə yazlacaqdır.
Məsələn, commitləsəniz və commitə əlavə etmək istədiyiniz bir fayla dəyişiklik etməyi unutduğunuzu başa düşsəniz, belə bir şey edə bilərsiniz:
$ git commit -m 'Initial commit'
$ git add forgotten_file
$ git commit --amend
Bir tək commitlə başa vurursunuz - ikinci commit birincinin nəticələrini əvəz edir.
Note
|
Sonuncu commitinizi dəyişdirərək, onu köhnə commiti itələyən və yerinə yeni təkmilləşdirilmiş commitlə əvəz etməyi başa düşmək vacibdir. Effektiv olaraq, əvvəlki əməl heç vaxt olmayıb və depozit tarixinizdə görünməyəcək. Dəyişdirmə əmsalının açıq dəyəri, "Faylı əlavə etməyi unutmusunuz" və ya "Darn, sonuncu commitə yazmağı düzəlt" şəklindəki commit mesajları ilə depozit tarixçənizi ləkələmədən, son commitinizə kiçik düzəlişlər etməkdir. |
Mərhələli Bir Faylın Mərhələlərə Ayrılmaması
Növbəti iki bölmə sizə mərhələlərə ayrılmış sahənizi və iş qovluq dəyişikliklərinizlə necə işlədiyinizi nümayiş etdirir. Gözəl tərəfi odur ki, həmin iki sahənin vəziyyətini müəyyənləşdirmək üçün istifadə etdiyiniz əmr onlara dəyişiklikləri necə geri qaytarmağınızı da xatırladır. Məsələn, deyək ki, iki fayl dəyişdirmisiniz və bunları iki ayrı dəyişiklik kimi commit etmək istəyirsiniz, amma təsadüfən git add *
yazın və ikisini də düzəldin.
İkisindən birini necə bağlamaq olar?
git status
əmri sizə xatırladır:
$ git add *
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
modified: CONTRIBUTING.md
"Dəyişikliklər commitlənir" mətninin altından, və mərhələlərə ayrılmadığı üçün git reset HEAD <file>...
-dan istifadə edildiyi deyilir.
Beləliklə, CONTRIBUTING.md
faylını açmaq üçün bu tövsiyədən istifadə edək:
$ git reset HEAD CONTRIBUTING.md
Unstaged changes after reset:
M CONTRIBUTING.md
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: CONTRIBUTING.md
Komanda bir az qəribədir, amma işləyir.
CONTRIBUTING.md
faylı dəyişdirilir, lakin bir daha dayanmır.
Note
|
Doğrudur, |
İndi bu sehrli çağırış, git reset
əmri haqqında bilməyimiz üçün lazım olan bütün şeylərdir. Yenidən qurmağıç reset
-i necə edəcəyimizi və digər maraqlı məlumatları Reset Demystified'də necə düzəltməli olduğumuz haqqında daha çox məlumat verəcəyik.
Dəyişdirilmiş Faylın Dəyişdirilməməsi
CONTRIBUTING.md
faylındakı dəyişiklikləri saxlamaq istəmədiyinizi başa düşdüyünüz zaman nə olacaq?
Onu necə asanlıqla düzəliş edə bilərsiniz - sonuncu dəfə commit etdikdə (və ya əvvəlcə klonlaşdırıldığınızda və ya iş dəftərinizə daxil olduqda) göründüyü vəziyyətə qaytara bilərsiniz?
Xoşbəxtlikdən, git status
-u da bunu necə edəcəyinizi söyləyir. Son nümunə çıxışında, tənzimlənməmiş sahə belə görünür:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: CONTRIBUTING.md
Etdiyiniz dəyişiklikləri necə ləğv edəcəyinizi açıq şəkildə izah edir. Gəlin deyilənləri edək:
$ git checkout -- CONTRIBUTING.md
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
Dəyişikliklərin geri qaytarıldığını görə bilərsiniz.
Important
|
Başa düşmək üçün vacibdir ki, |
Həmin fayla etdiyiniz dəyişiklikləri saxlamaq istəyirsinizsə, lakin hələ də onu aradan qaldırmaq lazımdırsa, GGit’də Branch etməyə davam edəcəyik; ümumiyyətlə isə bunlar daha yaxşı yoldur.
Unutmayın, Git-də commitlənən hər şey demək olar ki, həmişə bərpa edilə bilər. Hətta silinmiş branch-da olan və ya --amend
commitlə yazılmış commitlər bərpa edilə bilər (Data Recovery məlumatların bərpası üçün məlumatların bərpasına baxın).