-
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
7.2 Git Alətləri - Interaktiv Səhnələşdirmə
Interaktiv Səhnələşdirmə
Bu bölmədə, yalnız müəyyən kombinasiyalar və faylların hissələrini daxil etməyi commit etməyə kömək edə biləcək bir neçə interaktiv Git əmrlərinə baxacaqsınız. Bu alətlər bir sıra faylları geniş şəkildə dəyişdirsəniz, o dəyişikliklərin bir böyük qarışıqlıq yerinə daha çox diqqət mərkəzinə düşməsini istəməyinizə qərar verməyiniz daha yararlıdır. Bu sayədə verdiyiniz tapşırıqların məntiqi olaraq ayrı bir dəyişiklik olduğunu və sizinlə işləyən tərtibatçılar tərəfindən asanlıqla nəzərdən keçiriləcəyinə əmin ola bilərsiniz.
-i
və ya --interactive
seçimi ilə git add
tətbiq etsəniz, Git bu kimi bir şey göstərərək interaktiv shell moda girir:
$ git add -i
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now>
Görə bilərsiniz ki, bu əmr sizə yayımlandığınız ərazidən daha çox fərqli bir mənzərəni göstərir - əsasən, git status
ilə əldə etdiyiniz eyni, lakin bir az daha qısa və məlumatlıdır.
Solda hazırladığınız dəyişiklikləri və sağdakı sabit olmayan dəyişiklikləri sadalayır.
Bundan sonra sənədlərin qurulması və ləğv edilməsi, faylların hissələrinin qurulması, yığılmamış sənədlərin əlavə edilməsi və hazırlanmışların fərqlərini göstərmək kimi bir sıra işləri görməyə imkan verən bir “Commands” bölməsi gəlir.
Staging və Unstaging Fayllar
What now>
yerində u
və ya 2
(yeniləmə üçün) yazsanız, hansı sənədləri səhnələşdirmək istədiyinizi soruşursunuz:
What now> u
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
TODO
və index.html
fayllarını səhnələşdirmək üçün nömrələri yaza bilərsiniz:
Update>> 1,2
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
Hər bir sənədin yanında olan *
sənədin səhnəyə qoyulması üçün seçildiyini bildirir.
Update>>
sorğusuna heç bir şey yazmadan sonra Enter düyməsini bassanız, Git seçilmiş bir şeyi götürür və sizin üçün mərhələləndirir:
Update>>
updated 2 paths
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now> s
staged unstaged path
1: +0/-1 nothing TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb
İndi TODO
və index.html
fayllarının səhnəyə qoyulduğunu və simplegit.rb
faylının hələ də işləmədiyini görə bilərsiniz.
Bu anda TODO
faylını çıxartmaq istəyirsinizsə, r
və ya 3
(geri dönüş üçün) seçimini istifadə edirsiniz:
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now> r
staged unstaged path
1: +0/-1 nothing TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb
Revert>> 1
staged unstaged path
* 1: +0/-1 nothing TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb
Revert>> [enter]
reverted one path
Git statusunuza yenidən baxaraq TODO
faylını açmadığınızı görə bilərsiniz:
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now> s
staged unstaged path
1: unchanged +0/-1 TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb
Hazırladığınız şeyin fərqini görmək üçün d
və ya 6
(fərq üçün) əmrindən istifadə edə bilərsiniz.
Bu əhnələşdirilmiş sənədlərinizin siyahısını göstərir və mərhələli fərqi görmək istədiklərini seçə bilərsiniz.
Bu, əmr sətrində git diff --cached
göstərməyə çox bənzəyir:
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now> d
staged unstaged path
1: +1/-1 nothing index.html
Review diff>> 1
diff --git a/index.html b/index.html
index 4d07108..4335f49 100644
--- a/index.html
+++ b/index.html
@@ -16,7 +16,7 @@ Date Finder
<p id="out">...</p>
-<div id="footer">contact : support@github.com</div>
+<div id="footer">contact : email.support@github.com</div>
<script type="text/javascript">
Bu əsas əmrlərlə quruluş sahənizi bir az daha asan həll etmək üçün interaktiv əlavə rejimi istifadə edə bilərsiniz.
Staging Patch-lar
Git’in müəyyən hissə sənədlərini səhnələşdirməsi də mümkündür qalanlarının deyil.
Məsələn, simplegit.rb
faylınıza iki dəyişiklik etsəniz və onlardan birini digərinə deyil, digərinə düzəltmək istəyirsinizsə, Git-də bunu etmək çox asandır.
Əvvəlki hissədə izah edilən eyni interaktiv istəkdən, p
və ya 5
(patch üçün) yazın.
Git sizə hansı sənədləri qismən səhnələşdirmək istədiyinizi soruşacaq; sonra, seçilmiş faylların hər bölməsi üçün fərqlənən faylı göstərəcək və bunları bir-bir düzəltmək istəyəcəyinizi soruşacaq:
diff --git a/lib/simplegit.rb b/lib/simplegit.rb
index dd5ecc4..57399e0 100644
--- a/lib/simplegit.rb
+++ b/lib/simplegit.rb
@@ -22,7 +22,7 @@ class SimpleGit
end
def log(treeish = 'master')
- command("git log -n 25 #{treeish}")
+ command("git log -n 30 #{treeish}")
end
def blame(path)
Stage this hunk [y,n,a,d,/,j,J,g,e,?]?
Bu nöqtədə bir çox seçiminiz var.
Yazaraq ?
edə biləcəyiniz işlərin siyahısını görə bilərsiniz:
Stage this hunk [y,n,a,d,/,j,J,g,e,?]? ?
y - stage this hunk
n - do not stage this hunk
a - stage this and all the remaining hunks in the file
d - do not stage this hunk nor any of the remaining hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
Ümumiyyətlə,Hər bir parçanı səhnələşdirmək istəsəniz,y
və ya n
yazacaqsınız, ancaq hamısını müəyyən fayllarda yerləşdirmək və ya bir qədər sonra bir qərarı atmaq da faydalı ola bilər.
Faylın bir hissəsini düzəldib başqa bir hissəsini maneəsiz qoyarsanız, status çıxışınız belə olacaq:
What now> 1
staged unstaged path
1: unchanged +0/-1 TODO
2: +1/-1 nothing index.html
3: +1/-1 +4/-0 lib/simplegit.rb
Simplegit.rb
faylının vəziyyəti maraqlıdır.
Bu, bir neçə sətin səhnələndiyini və bir neçə sətrin səhnələnmədiyini göstərir.
Bu faylı qismən səhnələşdirdiniz.
Bu anda, interaktiv əlavə skriptdən çıxa və qismən mərhələli faylları düzəltmək üçün git commit
işlədə bilərsiniz.
Qismən fayl quruluşunu etmək üçün interaktiv əlavə rejimində olmağınıza ehtiyac yoxdur - əmr sətrində git add -p
və ya git add --patch
istifadə edərək eyni skriptə başlaya bilərsiniz.
Bundan əlavə, git checkout --patch
əmri ilə faylların hissələrini yoxlamaq üçün və`git stash save --patch` ilə faylların hissələrini zədələmək üçün git reset --patch
əmri ilə faylları qismən sıfırlamaq üçün istifadə edə bilərsiniz.
Bu əmrlərin daha qabaqcıl istifadəsinə keçdikcə bunların hər biri haqqında daha ətraflı məlumat əldə edəcəyik.