-
1. BaÅlangıƧ
- 1.1 Sürüm Denetimi
- 1.2 Gitāin Kısa TarihƧesi
- 1.3 Git Nedir?
- 1.4 Komut Satırı
- 1.5 Gitāi Yüklemek
- 1.6 Gitāi İlk Defa Kurmak
- 1.7 Yardım Almak
- 1.8 Ćzet
-
2. Git Temelleri
-
3. Git Dalları
- 3.1 Dallar
- 3.2 Kısaca Dallandırma ve BirleÅtirme Temelleri
- 3.3 Dal Yƶnetimi
- 3.4 İŠAkıÅı Dallandırması
- 3.5 Uzak Dallar
- 3.6 Yeniden Temelleme (rebase)
- 3.7 Ćzet
-
4. Bir Sunucuda Git Kurma
-
5. DaÄıtık Git
-
6. GitHub
- 6.1 Bir Projeye Katkıda Bulunmak
- 6.2 Proje Bakımı
- 6.3 Kurumsal Yƶnetim
- 6.4 GitHubāı otomatikleÅtirme
- 6.5 Ćzet
-
7. Git AraƧları
- 7.1 Düzeltme Seçimi
- 7.2 EtkileÅimli İzlemleme (Staging)
- 7.3 Saklama ve Silme
- 7.4 ĆalıÅmanızı İmzalama
- 7.5 Arama
- 7.6 GeƧmiÅi Yeniden Yazma
- 7.7 Reset Komutunun Gizemleri
- 7.8 İleri Seviye BirleÅtirme
- 7.9 Rerere
- 7.10 Gitāle Hata Ayıklama
- 7.11 Alt Modüller
- 7.12 Demetleme (Bundling)
- 7.13 Git Nesnesini DeÄiÅtirme
- 7.14 Kimlik Bilgisi Depolama
- 7.15 Ćzet
-
8. Gitāi ĆzelleÅtirmek
-
9. Git ve DiÄer Sistemler
- 9.1 İstemci Olarak Git
- 9.2 Gitāe GeƧiÅ
- 9.3 Ćzet
-
10. Dahili Git Ćgeleri
- 10.1 Tesisat ve DƶÅeme (Plumbing ve Porcelain)
- 10.2 Git Nesneleri
- 10.3 Git Referansları
- 10.4 Packfiles
- 10.5 Refspec
- 10.6 Transfer Protokolleri
- 10.7 Bakım ve Veri Kurtarma
- 10.8 Ortam DeÄiÅkenleri
- 10.9 Ćzet
-
A1. Ek bƶlüm A: DiÄer Ortamlarda Git
- A1.1 Görsel Arayüzler
- A1.2 Visual Studio ile Git
- A1.3 Visual Studio Code ile Git
- A1.4 Eclipse ile Git
- A1.5 Sublime Text ile Git
- A1.6 Bash ile Git
- A1.7 Zsh ile Git
- A1.8 PowerShell ile Git
- A1.9 Ćzet
-
A2. Ek bƶlüm B: Gitāi Uygulamalarınıza Gƶmmek
- A2.1 Git Komut Satırı
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Ek bölüm C: Git Komutları
- A3.1 Kurulum ve Yapılandırma Komutları
- A3.2 Proje OluÅturma Komutları
- A3.3 Kısaca Poz (Snapshot) Alma
- A3.4 Dallandırma ve BirleÅtirme Komutları
- A3.5 Projeleri PaylaÅma ve Güncelleme Komutları
- A3.6 İnceleme ve KarÅılaÅtırma Komutları
- A3.7 Hata Ayıklama (Debugging) Komutları
- A3.8 Yamalama (Patching)
- A3.9 E-Posta Komutları
- A3.10 Harici Sistemler
- A3.11 Yƶnetim
- A3.12 Tesisat (Plumbing) Komutları
7.7 Git AraƧları - Reset Komutunun Gizemleri
Reset Komutunun Gizemleri
Daha ƶzelleÅmiÅ araƧlara geƧmeden ƶnce, Gitāin reset
ve checkout
komutlarından bahsedelim.
Bu komutlar, ilk kez karÅılaÅtıÄınızda Gitāin en karmaÅık kısımlarından ikisidir.
Bu kadar Ƨok Åey yaparlar ki, onları gerƧekten anlamak ve doÄru bir Åekilde kullanmak umutsuz gƶrünür.
Bu nedenle, basit bir metafor ƶneriyoruz.
ĆƧ ĆalıÅma AÄacı
Gitāin üç farklı ƧalıÅma aÄacının iƧeriÄini yƶneten bir iƧerik yƶneticisi olduÄunu hayal etmek, reset
ve checkout
komutlarını anlamayı kolaylaÅtırır.
Burada "aÄaƧ" derken gerƧekten "dosya dizinini" kastediyoruz, bir veri yapısı olan aÄacı (tree) deÄil.
(BirkaƧ durumda, dizin tam olarak bir aÄaƧ gibi davranmaz, ancak Åu anda amacımız iƧin bu Åekilde düÅünmek daha kolaydır.)
Git sistemi normal iÅleyiÅinde üç aÄacı yƶnetir ve onları deÄiÅtirir:
AÄaƧ (Tree) | Rol |
---|---|
UƧ (HEAD) |
Son katkı pozu, ardıl |
Dizin (Index) |
Ćnerilen katkı pozu (bir sonraki iÅlem iƧin) |
ĆalıÅma Dizini |
Kum havuzu (Sandbox) |
UƧ (HEAD)
UƧ, mevcut dalda iÅlenen son katkının referansını gƶsteren bir iÅaretƧidir. Bunun anlamı, bu "uƧ"un iÅlenen bir sonraki katkının ƶnceli olacaÄıdır. Genellikle "uƧ"u projenizin o daldaki son katkınızı iÅlediÄiniz andaki anlık gƶrüntüsü (poz) olarak düÅünmek en basit olanıdır.
Aslında, bu pozun nasıl olduÄunu gƶrmek oldukƧa kolaydır. İÅte, uƧ pozundaki her dosyanın gerƧek dizin listesi ve SHA-1 kontrol toplamlarını almanın bir ƶrneÄi:
$ git cat-file -p HEAD
tree cfda3bf379e4f8dba8717dee55aab78aef7f4daf
author Scott Chacon 1301511835 -0700
committer Scott Chacon 1301511835 -0700
initial commit
$ git ls-tree -r HEAD
100644 blob a906cb2a4a904a152... README
100644 blob 8f94139338f9404f2... Rakefile
040000 tree 99f1a6d12cb4b6f19... lib
Gitāin düÅük seviyeli iÅlerde kullanılan cat-file
ve ls-tree
komutları, günlük iÅlerde pek kullanılmayan; ancak burada neler olup bittiÄini gƶrmemize yardımcı olan, āplumbingā (boru) komutlarıdır.
İndeks (Dizin)
İndeks, beklenilen sıradaki katkı iÅlemidir.
Bu kavramı aynı zamanda Gitāin ``İzlem Alanı`` (Staging Area) olarak da adlandırıyoruz, çünkü git commit
komutunu ƧalıÅtırdıÄınızda Gitāin baktıÄı yer burasıdır.
Git, bu indeksi, ƧalıÅma dizininize en son eklenen tüm dosya iƧeriÄi listesiyle doldurur ve eklendikleri anda onların aslında neye benzediÄine bakar.
Daha sonra, siz bu dosyalardan bazılarını yeniden Åekillendirirsiniz ve git commit
komutu bunu yeni bir katkı iƧin aÄaca dƶnüÅtürür.
$ git ls-files -s
100644 a906cb2a4a904a152e80877d4088654daad0c859 0 README
100644 8f94139338f9404f26296befa88755fc2598c289 0 Rakefile
100644 47c6340d6459e05787f644c2447d2595f5d3a54b 0 lib/simplegit.rb
Burada yine, aslında bize dosya dizinimizin Åu anda neye benzediÄini gƶsterecek bir perde-gerisi aracı olan, git ls-files
komutunu kullanıyoruz.
İndeks teknik olarak bir aÄaƧ yapısı deÄildir - aslında düzleÅtirilmiÅ bir dıÅavurum olarak uygulanmıÅtır - ancak amacımız iƧin buna yeterince yakındır.
ĆalıÅma Dizini
Son olarak, ƧalıÅma dizininiz (ayrıca "ƧalıÅma aÄacı" olarak da adlandırılır).
DiÄer iki aÄaƧ, iƧeriklerini etkili ancak kullanıÅsız bir Åekilde .git
klasörü içinde saklar.
ĆalıÅma dizini, bunları gerƧek dosyalara aƧar, bu da onları düzenlemenizi Ƨok daha kolay hale getirir.
ĆalıÅma dizinini, deÄiÅikliklerinizi (izleme alanına alıp ardından katkı olarak proje geƧmiÅinize eklemeden ƶnce) deneyebileceÄiniz bir kum havuzu (sandbox) olarak düÅünün.
$ tree
.
āāā README
āāā Rakefile
āāā lib
āāā simplegit.rb
1 directory, 3 files
İŠAkıÅı
Gitāin tipik iÅ akıÅı, bu üç aÄacı manipüle ederek projenizin ardıÅık olarak daha geliÅmiÅ durumlarının pozlarını kaydetmektir.

Hadi bu süreci gƶrselleÅtirelim: Diyelim ki tek bir dosyanın bulunduÄu yeni bir dizine giriyorsunuz.
Mavi renkte gƶstereceÄimiz bu dosyayı v1 olarak adlandıralım.
Åimdi git init
komutunu ƧalıÅtırıyoruz: bu daha doÄmamıŠmaster
dalına iÅaret eden bir HEAD referansı ile bir Git reposu oluÅturacak.

Bu noktada, sadece ƧalıÅma dizini aÄacında iƧerik bulunmaktadır.
Åimdi bu dosyayı katkı olarak iÅlemek istiyoruz, bu yüzden git add
komutunu kullanarak ƧalıÅma dizinindeki iƧeriÄi alıp indekse (izlem) kopyalarız.

Ardından git commit
komutunu ƧalıÅtırırız: bu komut dizinin iƧeriÄini alır ve onu kalıcı bir poz olarak kaydeder, o poza iÅaret eden bir katkı nesnesi oluÅturur ve master
'ı bu katkıya iÅaret edecek Åekilde günceller.

git status
komutunu ƧalıÅtırırsak, henüz deÄiÅiklik yapmadıÄımız iƧin, her üç aÄacın da aynı olduÄunu gƶreceÄiz.
Åimdi dosyayı deÄiÅtirip, katkı olarak iÅlemek istiyoruz. Aynı süreci geƧireceÄiz; ƶnce ƧalıÅma dizininde dosyayı deÄiÅtireceÄiz. Dosyanın bu sürümüne v2 diyelim ve onu kırmızı renkle gƶsterelim.

Åu anda git status
komutunu ƧalıÅtırırsak, dosyayı kırmızı renkte ve ``Changes not staged for commit`` aƧıklamasıyla gƶreceÄiz; çünkü bu giriÅ indeks ile ƧalıÅma dizini arasındaki bir farklılık olarak gƶrünecektir.
Daha sonra bu dosya üzerinde git add
komutunu ƧalıÅtırarak, onu indekse ekliyoruz.

Bu noktada, git status
komutunu ƧalıÅtırırsak, dosyayı yeÅil renkte "Yapılacak katkılar" altında gƶreceÄiz; çünkü indeks ile uƧ farklıdır - yani ƶnerilen sıradaki katkımız, iÅlenmiÅ son katkımızdan farklıdır.
Son olarak, katkılama iÅlemini tamamlamak iƧin git commit
komutunu ƧalıÅtırıyoruz.

Åimdi git status
komutunu ƧalıÅtırdıÄımızda, tekrar tüm aÄaƧlar aynı olduÄu iƧin herhangi bir Ƨıktı almayacaÄız.
Dallar arasında geƧiÅ yapmak veya kopyalamak benzer bir süreƧten geƧer. Yeni bir dala geƧiÅ yapmak, HEAD iÅaretƧisini yeni dal referansını gƶsterecek Åekilde deÄiÅtirir, indeks iƧeriÄini o katkının pozuyla doldurur ve son olarak indeks iƧeriÄini ƧalıÅma dizinine kopyalar.
Reset Komutunun Rolü
reset
komutu, bu baÄlamda gƶrüldüÄünde daha mantıklı hale gelir.
Bu ƶrnekleri daha iyi anlamak iƧin, diyelim ki file.txt
dosyasını tekrar deÄiÅtirdik ve üçüncü kez katkıladık.
Åimdi geƧmiÅimiz Åƶyle gƶrünüyor:

Åimdi, reset
ƧaÄrıldıÄında tam olarak ne yaptıÄını adım adım gƶrelim.
Basit ve ƶngƶrülebilir bir Åekilde üç aÄacı doÄrudan manipüle eder.
ĆƧ temel iÅlem yapar.
Adım 1: HEADāi TaÅı
İlk olarak, reset
'in yapacaÄı Åey, HEADāin iÅaret ettiÄi yeri taÅımaktır.
Bu, HEADāin kendisini deÄiÅtirmekle aynı deÄildir (bunu checkout
yapar); reset
, HEADāin iÅaret ettiÄi dalı taÅır.
Bu, eÄer HEAD master
dalına ayarlanmıÅsa (yani Åu anda master
dalındaysanız), git reset 9e5e6a4
komutunu ƧalıÅtırdıÄınızda master
'ı 9e5e6a4
noktasına getirecek demektir.

Bir katkı ile reset
'in hangi biƧimini ƧaÄırırsanız ƧaÄırın, bu her zaman yapmaya ƧalıÅacaÄı ilk Åeydir.
reset --soft
komutuyla orada duracaktır.
Åimdi o diyagrama bir kez daha gƶz atın ve neler olduÄunun farkına varın: temel olarak son git commit
komutunu geri aldı.
git commit
komutunu ƧalıÅtırdıÄınızda, Git yeni bir katkı oluÅturur ve HEADāin iÅaret ettiÄi dalı oraya taÅır.
reset
komutunu HEAD~
'e (HEADāin ƶnceli) geri alırsanız, dalı indeks veya ƧalıÅma dizininde herhangi bir deÄiÅiklik yapmadan eski konumuna geri taÅırsınız.
Åimdi indeksi güncelleyebilir ve git commit
komutunu tekrar ƧalıÅtırarak git commit --amend
komutunun yaptıÄını baÅarabilirsiniz (bkz Son Katkıyı DeÄiÅtirme).
Adım 2: İndeksi Güncelleme (--mixed)
Åimdi git status
komutunu ƧalıÅtırırsanız, indeks ile yeni HEAD arasındaki farkı yeÅil renkte gƶreceksiniz.
reset
'in yapacaÄı bir sonraki Åey, indeksi, HEADāin Åu anda iÅaret ettiÄi pozun iƧeriÄiyle güncellemektir.

--mixed
seƧeneÄini belirtirseniz, reset
iÅlemi bu noktada duracaktır.
Bu aynı zamanda varsayılan davranıÅtır, yani hiƧbir seƧenek belirtmezseniz (bu durumda yalnızca git reset HEAD~
), komut burada duracaktır.
Åimdi o diyagrama bir kez daha bir gƶz atın ve neler olduÄunun farkına varın: hala son commit
iÅleminizi geri aldınız, ancak aynı zamanda her Åey izlem alanı dıÅına Ƨıktı.
Yani, tüm git add
ve git commit
komutlarınızı ƧalıÅtırmadan ƶnceki duruma geri dƶndünüz.
Adım 3: ĆalıÅma Dizinini Güncelleme (--hard)
reset
'in yapacaÄı üçüncü Åey, ƧalıÅma dizinini indeks gibi yapmaktır.
--hard
seƧeneÄini kullanırsanız, bu aÅamaya devam eder.

Az ƶnce ne olduÄunu bir düÅünelim.
Son katkınızı, git add
ve git commit
komutlarını, ve ƧalıÅma dizininde yaptıÄınız tüm ƧalıÅmayı geri aldınız.
--hard
bayraÄının reset
komutunu tehlikeli hale getiren tek yol olduÄunu ve Gitāin bir veriyi gerƧekten yok edeceÄi Ƨok az durumdan biri olduÄunu bilmeniz Ƨok ƶnemlidir.
reset
'in diÄer herhangi bir kullanımı oldukƧa kolay bir Åekilde geri alınabilirken, --hard
seƧeneÄi bunu yapamaz; çünkü ƧalıÅma dizinindeki dosyaların üzerine zorla yeniden yazar.
Bu özel durumda, Git veritabanımızda dosyanın v3 sürümüne bir katkı olarak hala sahibiz ve reflog
'umuza bakarak onu geri alabiliriz; ancak onu katkılamadan bıraksaydık, Git o dosyanın üzerine yeniden yazacaktı ve onu geri alınamaz hale getirecekti.
Ćzet
reset
komutu, belirli bir sırayla bu üç aÄacın üzerine yazar ve siz ona durmasını sƶylediÄinizde durur:
-
HEADāin iÅaret ettiÄi dalı taÅı (eÄer
--soft
kullanılmıÅsa burada dur) -
İndeksi HEADāin aynısı yap (eÄer
--hard
kullanılmamıÅsa burada dur) -
ĆalıÅma dizinini indeks gibi yap
Dosya Dizini ile Sıfırlama
Bu, reset
'in temel formundaki davranıÅını kapsar, ancak isterseniz bir dizin de belirtebilirsiniz.
Bir dizin belirtirseniz, reset
adım 1āi atlar ve geri kalan iÅlemleri belirli bir dosya veya dosya kümesiyle sınırlar.
Bu aslında bir bakıma mantıklıdır - HEAD sadece bir iÅaretƧidir ve onu aynı anda bir katkının bir kısmına ve baÅka bir katkının baÅka bir kısmına doÄrultamazsınız.
Ancak indeks ve ƧalıÅma dizini kısmen güncellenebilir, bu nedenle reset yoluna 2. ve 3. adımlarla devam eder.
Ćyleyse, git reset file.txt
komutunu ƧalıÅtıralım.
Bu form (bir katkı SHA-1 karması, bir dal ya da --soft
veya --hard
gibi bir bayrak belirtmediÄiniz iƧin) git reset --mixed HEAD file.txt
sƶz diziminin kısaltmasıdır ve Åunları yapar:
-
HEADāin iÅaret ettiÄi dalı taÅır (atlanır)
-
İndeksi HEADāe benzet (burada dur)
Yani temelde file.txt
dosyasını HEADāten indekse kopyalar.

Bu, pratikte dosyanın izlemden Ƨıkarılması etkisine sahiptir.
Bu komutun diyagramına bakarsak ve git add
komutunun ne yaptıÄını düÅünürsek, tam olarak zıt olduklarını gƶrürüz.

Bu nedenle, git status
komutunun Ƨıktısı, bir dosyayı izlemden Ƨıkarmak iƧin bunu ƧalıÅtırmanızı ƶnerir.
(Daha fazla bilgi iƧin: İzleme AlınmıŠDosyayı izlemden Ćıkarmak)
Gitāin "veriyi HEADāden Ƨek" dediÄimizi varsaymasını ƶnlemek iƧin belirli bir katkıyı belirtebiliriz.
Yoksa, sadece git reset eb43bf file.txt
gibi bir Åey ƧalıÅtırmak yeterdi.

Bununla, etkili bir Åekilde (aslında tüm bu adımları geƧmeden) dosyanın iƧeriÄini ƧalıÅma dizinindeki v1'e geri dƶndürdük, üzerine git add
ƧalıÅtırdık, ardından tekrar v3'e geri dƶndürdük.
Åimdi git commit
komutunu ƧalıÅtırırsak, aslında ƧalıÅma dizinimizde hiƧ sahip olmadıÄımız halde, dosyayı tekrar v1'e geri dƶndüren bir deÄiÅikliÄi kaydedecektir.
Ayrıca, aynı git add
gibi, reset
komutu da iƧeriÄi izlemden parƧa parƧa Ƨıkarmak iƧin --patch
seƧeneÄini kabul eder.
Bu Åekilde iƧeriÄi seƧici olarak izlemden Ƨıkarabilir veya geri alabilirsiniz.
SıkıÅtırma (squashing)
Bu yeni keÅfedilen güçle ilginƧ bir Åeyin nasıl yapılacaÄına bakalım: katkıları sıkıÅtırmak.
Diyelim ki ``oops.``, ``WIP`` ve ``bu dosyayı unuttum`` gibi mesajlar iƧeren bir dizi katkınız var.
Bunları hızlı ve kolay bir Åekilde tek bir iÅleme dƶnüÅtürmek ve gerƧekten zeki gƶrünmenizi saÄlamak iƧin reset
komutunu kullanabilirsiniz.
SıkıÅtırma (Katkıları SıkıÅtırmak) bunu yapmanın baÅka bir yoludur, ancak bu ƶrnekte reset
'i kullanmak daha basittir.
Diyelim ki, ilk katkının bir dosyaya sahip olduÄu, ikinci katkının yeni bir dosya ekleyip ilkini deÄiÅtirdiÄi ve üçüncü katkının ilk dosyayı yeniden deÄiÅtirdiÄi bir projeniz var. İkinci katkı devam eden bir ƧalıÅmaydı ve siz onu ortadan kaldırmak istiyorsunuz.

HEAD dalını daha eski bir katkıya (saklamak istediÄiniz en son katkıya) geri taÅımak iƧin git reset --soft HEAD~2
komutunu ƧalıÅtırabilirsiniz:

Ve sonra tekrar "git commit" komutunu ƧalıÅtırın:

Artık itme yapabileceÄiniz geƧmiÅinizin, birinci katkının file-a.txt
dosyasının v1 sürümüne sahip olduÄunu ve ikinci bir katkının hem file-a.txt
'yi v3 sürümüne deÄiÅtirdiÄini hem de file-b.txt
'yi eklediÄini gƶrebilirsiniz.
Dosyanın v2 sürümüyle yapılan kayıt ise artık geƧmiÅte yer almaz.
Check It Out
Son olarak, checkout
ve reset
arasındaki farkı merak ediyor olabilirsiniz.
Reset
gibi, checkout
da üç aÄacı manipüle eder ama komuta bir dosya dizini belirtip belirtmemenize baÄlı olarak biraz farklılık gƶsterir.
Dizinsiz
git checkout [dal]
komutunu ƧalıÅtırmak, üç aÄacı da [dal]
gibi görünmesi için güncellemek açısından git reset --hard [dal]
komutunu ƧalıÅtırmakla benzerdir, ancak arada iki ƶnemli fark vardır.
İlk olarak, reset --hard
'ın aksine, checkout
ƧalıÅma dizini güvenlidir; deÄiÅtirilmiÅ dosyaları silinmekten korumak iƧin bir kontrol yapılır.
Aslında, biraz daha akıllıca davranırāāāƧalıÅma dizininde basit bir birleÅtirme yapmaya ƧalıÅır, bu nedenle deÄiÅtirmemiÅ olduÄunuz tüm dosyalar güncellenecektir.
Buna karÅın, reset --hard
, sorgulamadan her Åeyi deÄiÅtirir.
İkinci ƶnemli fark, checkout
'un HEADāi nasıl güncellediÄidir.
Reset
komutu, HEADāin iÅaret ettiÄi dalı taÅırken, checkout
komutu, HEADāin kendisini baÅka bir dala iÅaret etmek üzere taÅır.
ĆrneÄin, farklı katkılara iÅaret eden master
ve develop
dallarımız olduÄunu ve Åu anda develop
dalında olduÄumuzu varsayalım (yani HEAD buna iÅaret eder).
EÄer git reset master
komutunu ƧalıÅtırırsak, develop
dalı artık master
'ın iÅaret ettiÄi aynı katkıya iÅaret eder.
EÄer bunun yerine git checkout master
komutunu ƧalıÅtırırsak, develop
dalı yer deÄiÅtirmez, HEAD kendisi hareket eder.
HEAD artık master
'ı iÅaret etmektedir.
Yani, her iki durumda da HEADāi A katkısına taÅıyoruz, ancak bunu yapma Åeklimiz Ƨok farklıdır.
Reset
komutu, HEADāin iÅaret ettiÄi dali taÅırken, checkout
komutu HEADāi taÅır.

Dizinli
checkout
komutunu ƧalıÅtırmanın diÄer bir yolu, dosya yolunu belirtmek Åeklinde olup, bu da reset
gibi, HEADāi taÅımaz.
Bu, belirli bir dosyayı belirli bir katkıda dizine güncelleyen, ancak aynı zamanda ƧalıÅma dizinindeki dosyayı da üzerine yazan git reset [dal] dosya
komutu gibi davranır.
EÄer reset
komutu buna izin verseydi, tam olarak git reset --hard [dal] dosya
komutuna benzer olurduāāāƧalıÅma dizini güvende olmaz ve HEADāi taÅımaz.
Ayrıca, git reset
ve git add
gibi, checkout
da dosya iƧeriÄini parƧa parƧa geri almanıza izin vermek iƧin --patch
seƧeneÄini kabul eder.
Ćzet
Artık reset
komutunu genel olarak anladınız ve daha rahat hissediyorsunuzdur. Ancak yine de tam olarak checkout
komutundan nasıl farklı olduÄu konusunda kafanızda biraz karıÅıklık kalmıŠolabilir. Zaten farklı kullanımların tüm kurallarını ezbere bilmek de imkansızdır.
İÅte hangi komutların hangi aÄaƧları etkilediÄine dair bir hatırlatma notu.
HEAD
sütunu, komutun HEADāin iÅaret ettiÄi referansı (dalı) taÅıyıp taÅımadıÄını belirtir; ve eÄer HEADāi taÅıyorsa HEAD
, aksi takdirde REF
okunur.
"ĆalıÅma AÄacı Güvende mi?" sütununa ƶzellikle dikkat edināāāeÄer Hayır yazıyorsa, bu komutu ƧalıÅtırmadan ƶnce bir kez daha düÅünün.
HEAD | Index | Workdir | WD Safe? | |
---|---|---|---|---|
Katkı Seviyesi |
||||
|
REF |
NO |
NO |
YES |
|
REF |
YES |
NO |
YES |
|
REF |
YES |
YES |
NO |
|
HEAD |
YES |
YES |
YES |
File Level |
||||
|
NO |
YES |
NO |
YES |
|
NO |
YES |
YES |
NO |