En İyi 50 GIT Mülakat Soruları ve Cevapları (2026)
Bir GIT mülakatına mı hazırlanıyorsunuz? Sürüm kontrol uzmanlığınızı test eden temel soruları keşfetmenin zamanı geldi. GIT mülakat soruları problem çözme derinliğini, işbirliği alışkanlıklarını ve iş akışı yönetimi verimliliğini ortaya çıkarmaya yardımcı olur.
Sürüm kontrolü ve iş birliği alanında bir kariyer, güçlü teknik deneyime ve alan uzmanlığına sahip profesyoneller için muazzam fırsatlar sunar. Yeni başlayanlardan kıdemli mühendislere kadar, yaygın ve ileri düzey kavramlara hakim olmak, zorlu soru-cevap oturumlarını çözmenize yardımcı olur. Sahada çalışmak, yöneticiler ve ekip liderleri tarafından değer verilen analitik becerileri, ekip çalışmasını ve pratik teknik uzmanlığı geliştirir.
Teknik liderler, yöneticiler ve geliştiriciler de dahil olmak üzere 75'ten fazla profesyonelin görüşlerine dayanan bu kılavuz, sektörler genelinde en iyi GIT mülakat perspektiflerini bir araya getirerek, tüm deneyim seviyeleri için güvenilirlik, pratik doğruluk ve kapsamlı kapsam sağlar.

En İyi 50 GIT Mülakat Sorusu ve Cevapları
1) Git nedir ve diğer versiyon kontrol sistemlerinden nasıl farklıdır?
Git, dağıtık bir sürüm kontrol sistemidir ve şu amaçlarla tasarlanmıştır: tracYazılım geliştirme sırasında kaynak kodda k değişiklik meydana gelebilir. SVN veya CVS gibi merkezi sistemlerin aksine, Git her geliştiricinin, eksiksiz geçmişi de dahil olmak üzere, deponun tam bir kopyasına sahip olmasına olanak tanır. Bu merkezi olmayan model, hızı, esnekliği ve güvenilirliği artırır.
Örnek: Git deposunu klonladığınızda, her commit için internet bağlantısı gerektiren SVN'den farklı olarak, çevrimdışı çalışabilir ve yerel olarak commit yapabilirsiniz.
| faktör | Git | SVN |
|---|---|---|
| Archidoku | Dağıtılmış | merkezi |
| hız | Daha hızlı | yavaş |
| Çevrimdışı Çalışma | destekli | Desteklenmez |
| Dallanma | Hafif | Ağır ve yavaş |
👉 Ücretsiz PDF İndirme: GIT Mülakat Soruları ve Cevapları
2) Git iş akışını ve bir dosyanın yaşam döngüsünü açıklayın.
Git dosya yaşam döngüsü, bir dosyanın bir depoda farklı durumlar arasında nasıl hareket ettiğini temsil eder.
Git'teki dosyalar dört temel durumdan birinde var olabilir: UntracKED, Modifiye, sahnelenen, ve İşlenen.
- Untrac: Git'e henüz eklenmemiş yeni oluşturulan dosyalar.
- Değiştirilmiş: Son commit'ten bu yana düzenlenen dosyalar.
- Sahnelendi: Dosyalar kullanılarak eklendi
git addve taahhütte bulunmaya hazır. - Bağlılık: Dosyalar kalıcı olarak depoya kaydedilir
git commit.
Örnek: Bir geliştirici yeni bir dosya oluşturur → çalıştırır git add → ardından işlemi onaylar. Bu işlem dizisi, dosyanın yaşam döngüsünü başlatılmadan başlatılmasına kadar tamamlar.tracbağlı kalmaya kararlı.
3) Git'te dallanma ve birleştirme nasıl çalışır?
Dallanma, birden fazla geliştiricinin ana kod tabanını etkilemeden aynı anda ayrı özellikler üzerinde çalışmasına olanak tanır. Her dal, bağımsız bir geliştirme hattını temsil eder.
Birleştirme, bir daldaki değişiklikleri diğerine birleştirir, tipik olarak özellik dallarını ana dala geri entegre eder.
Örnek: Eğer bir feature/login şubesini açın, üzerinde bağımsız olarak çalışın ve ardından birleştirin main, yeni özelliğinizi güvenli bir şekilde konsolide edersiniz.
| Komuta | Amaç |
|---|---|
git branch feature |
Yeni bir dal oluşturur |
git checkout feature |
Şubeye geçiş yapar |
git merge feature |
Ana dalla birleşir |
4) Git nesnelerinin farklı türleri nelerdir?
Git, verileri dahili veritabanında nesneler olarak depolar. Dört temel nesne türü şunlardır:
- Damla: Dosya verilerini depolar.
- Ağaç: Dizinleri ve dosya yapılarını temsil eder.
- Teslim Et: Yazar, tarih ve üst işleme gibi meta verilerle değişiklikleri kaydeder.
- Etiket: Tarihte belirli bir noktayı işaret eder, çoğunlukla yayınlar için kullanılır.
Bu nesneler Git'in bütünlüğünü ve değişmezliğini oluşturur ve her bir commit'in SHA-1 karmasıyla benzersiz şekilde tanımlanabilir olmasını sağlar.
5) Git fetch ve Git pull arasındaki fark nedir?
git fetch Uzak depodan değişiklikleri indirir ancak bunları otomatik olarak birleştirmez. Yerel uzak deponuzu günceller.trackral dalları.
git pull hem getirmeyi hem de birleştirmeyi tek adımda gerçekleştirir.
| Komuta | Açıklama | Kullanım çantası |
|---|---|---|
git fetch |
Birleştirmeden değişiklikleri indirir | Birleştirmeden önce güncellemeleri denetlemek istediğinizde |
git pull |
Değişiklikleri otomatik olarak indirir ve birleştirir | Anında senkronizasyon istediğinizde |
Örnek: Kullanım git fetch Birleştirmeden önce başkalarının değişikliklerini gözden geçirmek için işbirliği yaparken.
6) Git veri bütünlüğünü nasıl sağlar?
Git, veri bütünlüğünü şu şekilde sağlar: SHA-1 karmaHer commit, ağaç ve blob, benzersiz 40 karakterlik bir karma ile tanımlanır. Bu, tek bir bit değişikliğinin bile karmayı değiştirmesini ve bozulmayı veya kurcalamayı önlemesini garanti eder.
Ayrıca Git, bir yönlendirilmiş döngüsel olmayan grafik (DAG) Taahhütlerin üst taahhütlerine referans verdiği, tutarlılığı sağlayan bir yapı. tracYenilebilir tarih.
Örnek: Bir dosyanın içeriği değiştiğinde, SHA-1 değeri de değişir; dolayısıyla Git bunu hemen yeni bir sürüm olarak tanır.
7) Git Rebase'i açıklayın ve Git Merge'den farklarını belirtin.
Her ikisi de git merge ve git rebase Bir daldaki değişiklikleri diğerine entegre ederler, ancak yaklaşımları farklıdır.
- Birleştirme: Geçmişleri birleştiren yeni bir birleştirme işlemi oluşturur.
- Yeniden temellendirme: İşlemleri bir daldan diğerine taşıyarak veya yeniden oynatarak doğrusal bir geçmiş oluşturur.
| faktör | gitmek | rebase |
|---|---|---|
| Taahhüt Geçmişi | Doğrusal olmayan | doğrusal |
| Yeni Commit Oluşturuldu | Evet | Yok hayır |
| Kullanım çantası | Tarihi korur | Daha temiz geçmiş |
Örnek: Kullanım git rebase temiz bir proje geçmişini korumak için git merge Paylaşımlı genel dallar için daha iyidir.
8) Git kancaları nedir ve faydaları nelerdir?
Git kancaları, commit, merge veya push gibi belirli Git olayları tarafından tetiklenen özel betiklerdir. Kodlama standartlarını uygulamaya ve iş akışlarını otomatikleştirmeye yardımcı olurlar.
Kanca çeşitleri:
- İstemci tarafı kancaları: Yerel işlemlerde çalıştırın (örneğin, ön onaylama).
- Sunucu tarafı kancaları: Uzak depolama alanında eylemleri çalıştırın (örneğin, önceden alma).
Faydaları:
- Biçimlendirme hataları içeren commit'leri önle.
- Kod taramasını veya testini otomatikleştirin.
- Ekipler arasında tutarlı iş akışları sağlayın.
Örnek: A pre-commit Birim testleri başarısız olursa kanca, commitleri reddedebilir.
9) Git kullanmanın avantajları ve dezavantajları nelerdir?
| Görünüş | Avantajlar | Dezavantajlar |
|---|---|---|
| Performans | Dallanma/birleştirme için hızlı ve verimli | Yeni başlayanlar için karmaşık olabilir |
| İşbirliği | Dağıtılmış geliştirmeyi mümkün kılar | Olası birleştirme çatışmaları |
| Esneklik | Çevrimdışı çalışıyor | Kurulum ve öğrenme gerektirir |
| Depolama | Büyük projeleri yönetir | Depolama alanı hızla büyüyebilir |
Genel olarak Git'in dağıtılmış modeli, veri bütünlüğü ve esnekliği, yeni geliştiriciler için öğrenme eğrisi olmasına rağmen onu endüstri standardı haline getiriyor.
10) Git'te birleştirme çakışmaları nasıl çözülür?
Birleştirme çakışmaları, Git'in dallar arasındaki değişiklikleri otomatik olarak uzlaştıramadığı durumlarda ortaya çıkar.
Çözüm adımları:
- Çakışan dosyaları tanımlayın
git status. - Dosyayı açın, çakışma işaretleyicilerini bulun (
<<<<<<<,=======,>>>>>>>). - Değişiklikleri seçmek veya birleştirmek için dosyayı manuel olarak düzenleyin.
- Dosyayı kullanarak sahneye koy
git add. - Çözülmüş birleştirmeyi şu şekilde gerçekleştirin:
git commit.
Örnek: İki geliştirici farklı dallardaki bir dosyada aynı satırı düzenlediğinde, Git birleştirme sırasında bir çakışma yaratır ve bu da manuel çözüm gerektirir.
11) Git reset, git revert ve git checkout arasındaki fark nedir?
Bu üç komut Git geçmişini farklı şekilde değiştirir ve farklı amaçlara hizmet eder.
| Komuta | İşlev | Veri Etkisi | Kullanım çantası |
|---|---|---|---|
git reset |
HEAD işaretçisini belirli bir işleme geri taşır | Değişiklik taahhüt geçmişi | Taahhütleri yerel olarak geri al |
git revert |
Önceki değişiklikleri geri alan yeni bir commit oluşturur | Taahhüt geçmişini korur | Paylaşılan dallardaki taahhütleri güvenli bir şekilde geri alın |
git checkout |
Dalları değiştirir veya dosyaları geri yükler | Taahhüt geçmişini etkilemez | Dallar arasında geçiş yapın veya yerel değişiklikleri atın |
Örnek: Hassas verileri yanlışlıkla işlediyseniz, kullanın git revert commit geçmişini değiştirmeden güvenli bir şekilde geri almak için.
Kullanım git reset --hard sadece itmeden önce yerel düzeltmeler için.
12) Git'te sıfırlama türlerini açıklayınız.
Git, değişiklikleri ne kadar geriye doğru geri almak istediğinize bağlı olarak üç ana sıfırlama türü sağlar.
| Menşei | Komuta | Davranış |
|---|---|---|
| Yumuşak | git reset --soft <commit> |
HEAD'i taşır ancak dizini ve çalışma dizinini bozulmadan tutar |
| Karışık | git reset --mixed <commit> |
HEAD'i taşır ve dizini sıfırlar; değişiklikler çalışma dizininde kalır |
| Zor | git reset --hard <commit> |
HEAD'i, dizini ve çalışma dizinini tamamen sıfırlar |
Örnek: Değişiklikleri erken yaptıysanız, git reset --soft HEAD~1 değişiklikten sonra yeniden onaylamanıza olanak tanır.
13) Git Stash nedir ve ne zaman kullanılmalıdır?
git stash işlenmemiş değişiklikleri geçici olarak depolar ve böylece iş kaybı yaşamadan dallar arasında geçiş yapmanıza olanak tanır.
Bu, özellikle çoklu görev sırasında veya acilen başka bir dalı incelemeniz gerektiğinde oldukça faydalıdır.
Ortak Komutlar:
git stash: Yerel değişikliklerinizi kaydeder.git stash pop: Saklanan değişiklikleri geri yükler.git stash list: Kaydedilen tüm saklama alanlarını görüntüler.
Örnek: Bir özelliği uygulamanın yarısındaysanız ve bir üretim sorunu ortaya çıkarsa, değişikliklerinizi saklayın, sorunu düzeltin ve daha sonra saklanan çalışmayı yeniden uygulayın.
14) Git uzak depoları nasıl yönetir?
Git'teki uzak depo, geliştiriciler arasında işbirliği için kullanılan, projenizin internet veya ağ üzerinde barındırılan bir sürümüdür.
Yaygın uzaktan komutlar:
| Komuta | Açıklama |
|---|---|
git remote add origin <url> |
Yerel depoyu uzak bir depoya bağlar |
git push |
Uzak depoya taahhütler gönderir |
git pull |
Değişiklikleri alır ve birleştirir |
git fetch |
Değişiklikleri alır ancak birleştirmez |
Örnek: Geliştiriciler genellikle paylaşılan projelere katkıda bulunmak için GitHub veya GitLab gibi platformlardan uzak bir deponun klonunu oluştururlar.
15) Git etiketleri nelerdir ve neden önemlidir?
Etiketler, belirli taahhütlere işaret eden işaretçilerdir ve genellikle yayın noktalarını işaretlemek için kullanılır (örneğin, v1.0, v2.1).
Kod tabanının değişmez sürümlerine referans vererek istikrar sağlarlar.
Etiket türleri:
- Hafif etiketler: Basit commit referansları.
- Açıklamalı etiketler: Meta verileri (yazar, mesaj, tarih) depolayın.
| Komuta | Amaç |
|---|---|
git tag v1.0 |
Hafif bir etiket oluşturur |
git tag -a v2.0 -m "Release 2.0" |
Açıklamalı bir etiket oluşturur |
git push origin --tags |
Tüm etiketleri uzaklara iter |
Örnek: Sürüm ekipleri, kararlı ürün sürümlerini paketlemek ve dağıtmak için açıklamalı etiketler kullanır.
16) Git Cherry-Pick nedir ve ne işe yarar?
git cherry-pick Belirli commit'lerin bir daldan diğerine seçici olarak entegre edilmesine olanak tanır.
Bu, tüm dalı birleştirmeden belirli bir hata düzeltmesini veya özelliği uygulamak istediğinizde yararlıdır.
Örnek: Bir düzeltmeyi şuradan uygulayabilirsiniz: feature/bugfix için main kullanarak:
git cherry-pick <commit-hash>
Faydaları:
- Taahhüt entegrasyonu üzerinde hassas kontrol.
- Gereksiz kod birleştirmelerini önler.
- Kritik dallarda daha temiz bir geçmiş sağlar.
17) Git Squash nedir ve faydaları nelerdir?
Git'te sıkıştırma, birden fazla commit'i tek bir commit'te birleştirerek basitleştirilmiş ve daha temiz bir commit geçmişi oluşturur.
komut:
git rebase -i HEAD~3
Ardından squash Birleştirmek istediğiniz commit'ler için seçenek.
Faydaları:
- Özlü bir tarih oluşturur.
- Çekme isteklerinin incelenmesini kolaylaştırır.
- Küçük commit'lerden kaynaklanan karmaşayı azaltır.
Örnek: Geliştiriciler, bir özellik dalını birleştirmeden önce genellikle tüm küçük commit'leri tek ve anlamlı bir commit'e sıkıştırırlar.
18) Git'te gönderilen bir commit'i nasıl geri alabilirsiniz?
Bir commit uzak bir depoya gönderildiğinde güvenli bir şekilde silinemez, ancak şu şekilde geri alınabilir:
git revert <commit-hash> git push origin main
Sıfırlama ve Sıfırlama arasındaki fark Revert:
| faktör | Reset | Revert |
|---|---|---|
| Tarihçe | Tarihi yeniden yazar | Tarihi korur |
| Güvenlik | Paylaşılan depolar için güvenli değil | Kamu şubeleri için güvenli |
| kullanım | Yerel geri alma | Uzaktan geri alma |
Örnek: GitHub'da hatalı bir commit varsa, şunu kullanın: git revert yerine git reset tutarlı bir ortak geçmişi sürdürmek.
19) Git ile GitHub arasındaki fark nedir?
Git bir sürüm kontrol aracı, GitHub ise bulut tabanlı platform Git depolarını barındırmak için.
| Görünüş | Git | GitHub |
|---|---|---|
| Tabiat | Komut satırı aracı | Web tabanlı hizmet |
| İşlev | Tracks kodu yerel olarak değişiyor | Uzaktan işbirliğini mümkün kılar |
| İnternet Gereksinimi | İsteğe bağlı | gereklidir |
| Mülkiyet | Açık kaynak (Linus tarafından) Torvalds) | Tarafından sahip olunan Microsoft |
Örnek: Bir geliştirici, kaynak kod sürümlerini yerel olarak yönetmek için Git'i, takım arkadaşlarıyla kodu paylaşmak ve incelemek içinse GitHub'ı kullanır.
20) Git birleştirme stratejileri nelerdir?
Git, değişiklikleri nasıl birleştirmek istediğinize bağlı olarak çeşitli birleştirme stratejileri sunar.
| Stratejileri | Açıklama | Kullanım çantası |
|---|---|---|
| Recursive | Varsayılan; iki dalı birleştirir | Standart birleştirmeler |
| Ayı | Mevcut şubenin değişikliklerini korur | Gelen değişiklikleri atma |
| Onların | Gelen şubenin değişikliklerini korur | Yerel değişiklikleri geçersiz kılma |
| Ahtapot | Birden fazla dalı aynı anda birleştirir | Entegrasyon dalları |
Örnek: Karmaşık entegrasyonlar sırasında geliştiriciler şunları kullanabilir: recursive standart birleştirmeler için strateji veya ours yerel değişikliklere öncelik vermek.
21) Git'te Detached HEAD nedir ve nasıl düzeltilir?
A ayrı BAŞ meydana geldiğinde HEAD işaretçi bir dala değil, belirli bir işleme işaret ediyor. Bu, daha önceki bir işleme doğrudan şu şekilde göz attığınızda gerçekleşir:
git checkout <commit-hash>
Bu durumda, yeni yapılan hiçbir commit bir dal ile ilişkilendirilmez ve düzgün bir şekilde başvurulmazsa kaybolabilir.
Nasıl düzeltilir:
- Ayrılmış durumdan yeni bir dal oluştur:
git checkout -b temp-branch
- Daha sonra her zamanki gibi commit veya merge işlemini gerçekleştirin.
Örnek: Kodun eski bir sürümünü test ederken, ayrı bir HEAD girebilirsiniz. Değişiklikleri korumak için her zaman bir dal oluşturun.
22) Git reflog'un amacı nedir ve ne zaman kullanılmalıdır?
git reflog güçlü bir komuttur tracks tüm hareketleri HEAD Görünür dal geçmişinin parçası olmayanlar bile işaretçiyi kurtarabilir. Kayıp commit'leri kurtarmak için bir güvenlik ağı görevi görür.
Kullanımı:
git reflog git checkout <commit-hash>
Örnek:
Eğer yanlışlıkla koşarsan git reset --hard ve son commit'leri kaybedersiniz, git reflog onları bulmanızı ve geri yüklemenizi sağlar.
Faydaları:
- Kötü bir yeniden temellendirme veya sıfırlama sonrasında kaybedilen işi kurtarır.
- Ayrıntılı commit gezinme geçmişini sağlar.
- Karmaşık iş akışlarında güvenliği artırır.
23) Git Alt Modüllerini ve kullanım durumlarını açıklayın.
A Git alt modülü Bir Git deposunu diğerinin içine alt klasör olarak eklemenize olanak tanır. Diğer depolara bağımlı projeleri yönetirken kullanılır.
Ortak Komutlar:
git submodule add <repo-url> git submodule update --init
Örnek: Bir web uygulaması, birden fazla projede paylaşılan bir kimlik doğrulama modülünü Git alt modülü olarak içerebilir.
| Avantajlar | Dezavantajlar |
|---|---|
| Promotes kodunun yeniden kullanımı | CI/CD boru hatlarını karmaşıklaştırabilir |
| Bağımsız geçmişleri korur | Manuel güncellemeler gerektirir |
| Sürüm tutarlılığını sağlar | Daha yüksek öğrenme eğrisi |
24) Git İş Akışları nelerdir ve farklı türleri nelerdir?
Git iş akışları, ekiplerin Git ile iş birliği yapmak için kullandıkları yapılandırılmış yaklaşımı tanımlar. En popüler türleri şunlardır:
| İş Akışı | Açıklama | Kullanım çantası |
|---|---|---|
| Git Akışı | Özellik, geliştirme ve sürüm dallarını kullanır | Büyük ölçekli projeler |
| GitHub Akışı | Ana ve özellik dallarını kullanarak basitleştirilmiş akış | Sürekli dağıtım |
| GitLab Akışı | Git Flow'u CI/CD entegrasyonuyla birleştirir | DevOps odaklı projeler |
| Gövde Tabanlı | Geliştiriciler tek bir paylaşılan dala bağlı kalıyor | Çevik, hızlı teslimat ekipleri |
Örnek: Yeni kurulan şirketler genellikle benimser Gövde Tabanlı hız için iş akışlarını tercih ederken, işletmeler Git Akışı kontrollü salınımlar için.
25) Git Bisect nedir ve hata ayıklamada nasıl yardımcı olur?
git bisect Bir hatayı ortaya çıkaran commit'i belirlemek için ikili arama kullanan güçlü bir hata ayıklama aracıdır.
Örnek İş Akışı:
- Başlangıç ikiye bölme:
git bisect start - Mevcut commit'i kötü olarak işaretle:
git bisect bad - Son bilinen iyi taahhüdü işaretle:
git bisect good <commit> - Git orta noktayı otomatik olarak kontrol eder.
- Hatalı commit bulunana kadar test edin ve devam edin.
Faydaları:
- Hatayı hızlandırır tracBüyük kod tabanlarında çalışmak.
- Manuel commit kontrolünü azaltır.
- CI/CD regresyon testleri için idealdir.
26) Git Merge Conflict ile Rebase Conflict arasındaki fark nedir?
Her ikisi de Git'in kod farklılıklarını otomatik olarak uzlaştıramadığı durumlarda ortaya çıkar, ancak farklı bağlamlarda meydana gelirler.
| Menşei | Ne Zaman Meydana Gelir | çözüm |
|---|---|---|
| Birleştirme Çatışması | Sırasında git merge dallar arasında |
Hedef dalda çözümle |
| Yeniden Temellendirme Çatışması | Sırasında git rebase commit'leri tekrar oynatırken |
Yeniden temellendirme sırasında çözün, ardından devam edin git rebase --continue |
Örnek: Aynı satırın iki dalda farklı şekilde düzenlenmesi durumunda birleştirme çakışması oluşur; yeniden temellendirme sırasında benzer değişiklikler de yeniden temellendirme çakışmalarını tetikler.
27) Git, CI/CD hatlarına nasıl entegre edilebilir?
Git, her commit veya çekme isteğinde otomatik süreçleri tetikleyerek modern CI/CD iş akışlarının temelini oluşturur.
Entegrasyon Örneği:
- Taahhüt İtme → Bir CI işlem hattını tetikler (aracılığıyla) Jenkins(GitHub Actions veya GitLab CI).
- Oluştur ve Test Et → Otomatik testler commit'i doğrular.
- Sürüş → Değişiklikler sahnelemeye veya üretime aktarılır.
Faydaları:
- Tutarlı dağıtımları garanti eder.
- Hızlı geri bildirim döngülerini mümkün kılar.
- Sürümlerde insan hatasını azaltır.
Örnek: GitHub Actions, değişiklikler projeye eklendiğinde projeyi otomatik olarak test edebilir ve dağıtabilir main dalı.
28) Git clean ile git reset arasındaki fark nedir?
| Komuta | Amaç | kapsam | Örnek E-posta |
|---|---|---|---|
git clean |
Kaldırırtracked dosyaları | Çalışma dizini | git clean -f -d |
git reset |
HEAD işaretçisini hareket ettirir | İşlemler, dizin ve çalışma ağacı | git reset --hard HEAD~1 |
Örnek: Çalışma alanınızda geçici veya oluşturulmuş dosyalar varsa tracGit tarafından destekleniyor, kullanın git clean. Eğer commitleri geri almanız gerekiyorsa şunu kullanın: git reset.
Bahşiş: Her zaman gözden geçirin git clean -n Kazara silinmeleri önlemek için çalıştırmadan önce.
29) Git Reflog ve Git Log Nedir?
Her ikisi de commit geçmişini gösterse de farklı amaçlara hizmet ederler.
| Komuta | Tracks | Silinen İşlemleri İçerir | Kullanım çantası |
|---|---|---|---|
git log |
Görünür taahhüt geçmişi | Yok hayır | Revproje ilerlemesini görüntüle |
git reflog |
Tüm BAŞ hareketleri | Evet | Kayıp commit'leri kurtarın |
Örnek: Bir dalı yanlışlıkla sildikten sonra şunları kullanabilirsiniz: git reflog son commit'ini bulup kurtarmak için, bu da görünmeyecektir git log.
30) Git'i büyük ekiplerde etkili bir şekilde kullanmak için en iyi uygulamalar nelerdir?
- Dal Adlandırma Kurallarını Kullanın: Şu şekilde bir deseni takip edin:
feature/login-ui or bugfix/payment. - Sık sık ama anlamlı bir şekilde taahhütte bulunun: Her commit'i tek bir mantıksal değişikliğe odaklayın.
- Yazmak Descriptive Commit Mesajları: Emir kipini kullanın, örneğin:
"Fix user login validation." - Birleştirmeden Önce Yeniden Temellendirme: Commit geçmişini temiz tutar.
- Çekme İsteklerini Kullanın Revgörünüm: Promotes işbirliği ve kod kalitesi.
- Etiket Yayınları Tutarlı Olarak: Sürüm kontrolü ve geri alma işlemlerine yardımcı olur.
- CI/CD ile Testleri Otomatikleştirin: Kararlı entegrasyon ve daha hızlı sürümler sağlar.
Örnek: Kurumsal geliştirmede yapılandırılmış Git kullanımı çakışmaları önler ve sürüm yönetimini basitleştirir.
31) Git Internals nedir ve Git verileri nasıl depolar?
Git Internals, Git'in işlevselliğini destekleyen düşük seviyeli mimariyi ifade eder. Git her şeyi (dosyalar, dizinler, commit'ler) şu şekilde depolar: nesneler içinde .git/objects dizin. Bu nesneler şu şekilde tanımlanır: SHA-1 karmaları ve kategorize edildi blob'lar, ağaçlar, taahhütler ve etiketler.
Veri Depolama Yaşam Döngüsü:
- Bir dosya eklendiğinde, içeriği bir dosya olarak saklanır.
blob. - A
treeharitalar dosya yapısı. - A
commitağaçları ve meta verileri bağlar. - A
tagsürümler için referans taahhütleri.
Örnek: Koşu git cat-file -p <hash> Git nesnelerini doğrudan incelemenizi sağlar.
Bu tasarım şunları sağlar: veri bütünlüğü, versiyon tracyetenek, ve hafif performansGit'i SVN gibi eski sistemlere kıyasla oldukça verimli hale getiriyor.
32) Git Rebase Interactive ile Git Merge arasındaki fark nedir?
| faktör | Git Rebase Etkileşimli (git rebase -i) |
Git Birleştirme |
|---|---|---|
| Amaç | Düzenlemeye, yeniden sıralamaya ve onaylamalara izin verir | Geçmişleri birleştirir |
| Tarihçe | Tarihi yeniden yazar | Tüm commit'leri korur |
| Kullanım çantası | Birleştirmeden önce temizlik | Orijinal zaman çizelgesinin korunması |
Örnek: Bir özellik dalını birleştirmeden önce, geliştirici şunları kullanabilir:
git rebase -i main
gereksiz commit'leri ortadan kaldırmak ve daha temiz, doğrusal bir geçmiş üretmek için.
gitmek işbirlikçi şubeler için daha güvenlidir, yeniden baz almak Özel geliştirme iş akışları için okunabilirliği artırır.
33) Git'te Sparse Checkout nedir ve faydaları nelerdir?
Seyrek Ödeme Geliştiricilerin büyük bir depoda bulunan dosyaların yalnızca bir alt kümesini klonlamasına veya bunlarla çalışmasına olanak tanır, böylece yerel depolama alanı kullanımı azalır ve işlemler hızlanır.
Komutlar:
git clone --no-checkout <repo-url> git sparse-checkout init --cone git sparse-checkout set <folder-path>
Faydaları:
- Monorepolarda performansı artırır.
- Disk kullanımını azaltır.
- Mikroservis mimarileri için idealdir.
Örnek: Büyük bir kurumsal projede, geliştiricilerin yalnızca şunlara ihtiyacı olabilir: /frontend Klasör. Sparse Checkout yalnızca o dizini indirir ve gereksiz gigabaytlarca arka uç kodunu önler.
34) Sığ Klon nedir ve ne zaman kullanılmalıdır?
A Sığ Klon deponun geçmişinin yalnızca bir kısmını indirir, bu da klonlamayı çok daha hızlı hale getirir.
komut:
git clone --depth=1 <repo-url>
Faydaları:
- Büyük depolar için klonlama süresini azaltır.
- Bant genişliği ve disk alanından tasarruf sağlar.
- Yalnızca son commit'lere ihtiyaç duyan CI hatları için kullanışlıdır.
Dezavantajları:
- Daha eski commit'lere erişilemiyor veya getirilen derinliğin ötesine yeniden temel oluşturulamıyor.
- Sınırlı tarih görünürlüğü.
Örnek: CI/CD sistemleri, tam commit geçmişi olmadan otomatik derlemeler için en son kod sürümünü hızlıca almak amacıyla genellikle yüzeysel klonlar kullanır.
35) Git LFS (Büyük Dosya Depolama) nedir ve neden kullanılır?
Git LFS'si (Büyük Dosya Depolama) Git içindeki büyük dosyaları (örneğin, resimler, veri kümeleri, ikili dosyalar) hafif metin işaretçileriyle değiştiren ve gerçek içeriği uzak bir LFS sunucusunda depolayan bir uzantıdır.
Komut Örneği:
git lfs install git lfs track "*.zip"
Avantajları:
- Depoyu hafif tutar.
- Büyük ikili dosyalarda performansı artırır.
- GitHub, GitLab ve diğer platformlarla sorunsuz bir şekilde çalışır. Bitbucket.
Örnek: Oyun geliştirme ekipleri, normal Git işlemlerini yavaşlatmadan büyük 3B varlıkları yönetmek için Git LFS'yi kullanır.
36) Git'i en iyi performans için nasıl yapılandırabilirsiniz?
Git'in hızını ve kullanılabilirliğini, yapılandırma parametrelerini ince ayar yaparak artırabilirsiniz.
En İyi Uygulamalar:
- Sıkıştırmayı etkinleştir:
git config --global core.compression 9 - Otomatik GC'yi (Çöp Toplama) Ayarla:
git gc --auto - Paralel Getirmeyi Kullanın (v2.31+):
git config --global fetch.parallel 4 - Kimlik Bilgisi Önbelleğe Almayı Etkinleştir:
git config --global credential.helper cache
Örnek: Kurumsal ölçekli depolar için Git'in getirme ve sıkıştırma ayarlarının optimize edilmesi, klonlama ve çekme gecikmesini önemli ölçüde azaltarak dağıtılmış ekipler arasında üretkenliği artırır.
37) Git'te Commit Signing (GPG) nedir ve neden önemlidir?
İmzalama taahhütleri kullanımları GPG (GNU Gizlilik Koruması) değişikliklerin güvenilir katılımcılardan geldiğinden emin olmak için, yapılan işlemlerin gerçekliğini kriptografik olarak doğrulamak.
Kurulum Örneği:
git config --global user.signingkey <GPG-key> git commit -S -m "Signed commit"
Faydaları:
- Yetkisiz veya taklit edilen commit'leri engeller.
- Depo güvenliğini ve denetlenebilirliğini artırır.
- Kurumsal güveni oluşturur.
Örnek: Açık kaynaklı projeler, genellikle harici geliştiricilerin katkılarının doğruluğunu teyit etmek için GPG imzalı taahhütler gerektirir.
38) Git, ikili dosyaları metin dosyalarından farklı olarak nasıl işler?
Git, metin tabanlı kaynak kod için optimize edilmiştir ve tracks satır satır değişiklikler, ikili dosyalar için pek işe yaramaz. İkili dosyalar tek bir blok halinde saklanır; herhangi bir değişiklik, bir fark yaratmak yerine yeni bir sürüm oluşturur.
| Dosya tipi | Depolama Verimliliği | Farklı Destek | Önerilen İşleme |
|---|---|---|---|
| Metin | Çok verimli | Evet | Varsayılan Git |
| İkili | Yetersiz | Yok hayır | Git LFS'yi kullanın |
Örnek: Görüntü ağırlıklı depolar için Git LFS'yi etkinleştirmek, sık ikili dosya güncellemelerinin neden olduğu performans düşüşünü önler.
39) Ayrılmış HEAD veya birleştirme hataları gibi yaygın Git sorunlarını nasıl giderirsiniz?
Yaygın Sorunlar ve Çözümleri:
| Konu | Sebeb olmak | Çözüm |
|---|---|---|
| Ayrık BAŞ | Belirli bir commit'in kontrolü | İle bir dal oluşturun git checkout -b new-branch |
| Birleştirme Çatışması | Dosyalarda çelişkili düzenlemeler | Manuel olarak çözün, ardından git add ve git commit |
| Kayıp Taahhütler | Kazara sıfırlama veya yeniden temellendirme | Kullanım git reflog iyileşmek |
| İtme Reddedildi | Uzaktan güncellemeler ileride | İtmeden önce çekin veya yeniden tabanlayın |
Örnek: "Hızlı ileri sarma" hataları oluştuğunda, bu genellikle uzaktan değişikliklerin var olduğu anlamına gelir - kullanın git pull --rebase Yeniden denemeden önce senkronize etmek için.
40) Git depoları için en iyi güvenlik uygulamaları nelerdir?
- SSH veya HTTPS Kimlik Doğrulamasını Kullanın: Düz kimlik bilgilerini kullanmaktan kaçının.
- Git barındırma platformlarında 2FA'yı etkinleştirin.
- Sırları veya anahtarları ifşa etmekten kaçının: Kullanım
.gitignoreveya GitGuardian gibi araçlar. - GPG anahtarları ile imzaları imzalayın.
- Erişim kontrolünü kısıtlayın: En az ayrıcalık ilkesini uygulayın.
- Dal koruma kurallarını kullanın
mainormaster. - Düzenli depo denetimleri gerçekleştirin.
Örnek: Şirketler, veri sızıntılarını ve yetkisiz değişiklikleri önlemek için genellikle CI/CD hatlarında gizli tarama işlemlerini entegre eder ve imzalı onayları zorunlu kılar.
41) Shell veya .NET kullanarak Git işlemlerini nasıl otomatikleştirirsiniz? Python Kodlar?
Git otomasyonu, commit'ler, birleştirmeler ve dağıtımlar gibi tekrarlayan görevlerde üretkenliği ve tutarlılığı artırır.
Örnek – Kabuk Komut Dosyası:
#!/bin/bash git add . git commit -m "Auto commit on $(date)" git push origin main
Örnek - Python Komut dosyası (Git kullanılarak)Python):
from git import Repo
repo = Repo('.')
repo.git.add(A=True)
repo.index.commit("Automated commit")
origin = repo.remote(name='origin')
origin.push()
Faydaları:
- Manuel eforu azaltır.
- Tutarlı commit kalıplarını garanti eder.
- CI/CD ve DevOps süreçleriyle kusursuz bir şekilde bütünleşir.
42) Git Hooks nedir ve otomasyonda nasıl kullanılabilir?
Git Kancaları Belirli Git olayları tarafından tetiklenen, kuralları uygulamak veya süreçleri otomatikleştirmek için kullanılan betiklerdir.
Kanca Çeşitleri:
| Menşei | Çalışır | Örnek E-posta |
|---|---|---|
| İstemci Tarafı | Geliştiricinin makinesi | pre-commit, prepare-commit-msg |
| Sunucu Tarafı | Uzak depo | pre-receive, post-receive |
Örnek: A pre-commit kanca, bir commit'e izin vermeden önce bir linter veya birim testi çalıştırabilir.
Faydaları:
- Kod kalitesini korur.
- Politika ihlallerini önler.
- İş akışlarındaki tekrarlayan doğrulama görevlerini otomatikleştirir.
43) Bir projeyi SVN veya Mercurial'dan Git'e nasıl taşırsınız?
Merkezi sistemlerden göç etme SVN için Git commit geçmişini korumak için yapılandırılmış dönüşüm içerir.
Adımlar:
- Göç araçlarını yükleyin:
git svnorsvn2git. - SVN deposunu klonla:
git svn clone <SVN_URL> --trunk=trunk --branches=branches --tags=tags
- Etiketleri ve dalları dönüştürün.
- Uzak Git deposuna (örneğin GitHub) gönderin.
Avantajları:
- Dağıtık iş akışlarını etkinleştirir.
- Performansı ve esnekliği artırır.
- Dallanmayı ve birleştirmeyi kolaylaştırır.
Örnek: Eski SVN sistemlerinden geçiş yapan kuruluşlar şunları kullanır: svn2git yazarlığı korumak ve tarihe geçmek.
44) Git Flow ile Trunk Tabanlı Geliştirme arasındaki farklar nelerdir?
| Görünüş | Git Akışı | Gövde Tabanlı Geliştirme |
|---|---|---|
| Dallanma | Çoklu şubeler (geliştirme, yayınlama) | Tek ana dal |
| Sürüm Modeli | Sabit sürüm döngüleri | Sürekli dağıtım |
| karmaşa | orta ila yüksek | Düşük |
| En | Büyük, istikrarlı ekipler | Çevik, hızlı hareket eden ekipler |
Örnek: Git Flow, kontrollü sürümleri olan kurumsal projeler için en iyisidir; Trunk Tabanlı ise hızın kritik öneme sahip olduğu yeni kurulan şirketler veya mikro hizmetler için idealdir.
Fayda Karşılaştırması:
- Git Akışı: Güçlü versiyon kontrolü.
- Gövde Tabanlı: Daha hızlı geri bildirim ve CI/CD hizalaması.
45) Çok büyük depolar için Git performansını optimize edebilecek stratejiler nelerdir?
Binlerce commit veya katkıda bulunanın bulunduğu kurumsal ölçekli projelerde, Git performansı optimize edilmezse düşebilir.
Temel Optimizasyon Stratejileri:
- Kullanım Sığ Klonlar (
--depth=1) daha hızlı ödemeler için. - Kullanım Seyrek Ödeme yalnızca ilgili dizinleri almak için.
- koşmak Çöp toplama:
git gc --aggressive. - Monorepoları alt modüllere veya mikroservislere bölün.
- Nesneleri sıkıştırın ve dosyaları düzenli olarak paketleyin.
Örnek: 10 GB'ı aşan monorepolarda, seyrek ödeme ve düzenli çöp toplamayı etkinleştirmek klonlama ve getirme sürelerini önemli ölçüde azaltır.
46) Git, dağıtılmış ekiplerde işbirlikçi geliştirmeyi nasıl destekler?
Git, geliştiriciler arasında eksiksiz depo kopyalarını dağıtarak iş birliğini mümkün kılar. Her geliştirici yerel olarak taahhüt verebilir, değişiklikleri uzak sunuculara gönderebilir ve diğerlerinin çalışmalarını birleştirebilir.
İşbirlikçi İş Akışı Örneği:
- Depoyu çatallandırın.
- Bir özellik dalı oluşturun.
- Değişiklikleri gönderin ve bir çekme isteği açın.
- Revgörüntüle ve birleştir
main.
Faydaları:
- Paralel özellik geliştirmeye olanak tanır.
- Bağımlılık darboğazlarını azaltır.
- Çevrimdışı çalışmayı ve esnek iş akışlarını destekler.
Örnek: Dünyanın dört bir yanındaki açık kaynaklı katkıda bulunanlar, GitHub'da barındırılan çatallar ve çekme istekleri aracılığıyla eşzamansız olarak iş birliği yaparlar.
47) Git Garbage Collection nedir ve neden önemlidir?
git gc (Çöp Toplama) nesneleri sıkıştırarak ve ulaşılamayan commit'leri budayarak gereksiz dosyaları temizler ve depolama alanını optimize eder.
komut:
git gc --aggressive --prune=now
Faydaları:
- Disk alanını boşaltır.
- Depo performansını iyileştirir.
- Commit nesnelerindeki tekrarı azaltır.
Örnek: Geliştiriciler genellikle git gc Özellikle uzun ömürlü projelerde, deponun sağlığını korumak için birden fazla birleştirme veya dal silme işleminden sonra.
48) Git Blame nedir ve hata ayıklama için nasıl kullanılır?
git blame Bir dosyanın her satırını en son hangi commit'in ve yazarın değiştirdiğini belirler.
Komut Örneği:
git blame app.py
Kullanım Durumları:
- TracHataların ortaya çıkması.
- Kod bölümlerinin mülkiyetinin belirlenmesi.
- Hesap verebilirlik açısından değişikliklerin denetlenmesi.
Örnek: Son güncellemeden sonra bir fonksiyon başarısız olmaya başladıysa, git blame Değişikliği yapan belirli commit'i ve geliştiriciyi belirleyerek daha hızlı hata ayıklamaya yardımcı olabilir.
49) Git'te Forking ve Cloning arasındaki fark nedir?
| faktör | çatal | klon |
|---|---|---|
| Tanım | Bir barındırma hizmetindeki hesabınız altındaki bir deponun kopyası | Bir deponun yerel kopyası |
| Konum | Sunucu tarafı (örneğin, GitHub) | Geliştiricinin makinesi |
| Kullanım çantası | Başka bir projeye katkıda bulunmak | Yerel kalkınma |
| ilişki | Çekme istekleri aracılığıyla bağlandı | Uzaktan kumandayla doğrudan senkronizasyon |
Örnek: Açık kaynaklı projelere katkıda bulunduğunuzda, bir deponun çatalını oluşturursunuz, klonlamadan sonra yerel olarak değişiklikler yaparsınız ve inceleme için bir çekme isteği gönderirsiniz.
50) En sık yapılan Git hataları nelerdir ve bunlardan nasıl kaçınılır?
| Hata | Açıklama | Önleme |
|---|---|---|
| Hassas verilerin işlenmesi | Sırlar veya kimlik bilgileri dahil | Kullanım .gitignore veya GitGuardian |
| Paylaşılan dallara zorla itme | Başkalarının çalışmalarının üzerine yazar | Kullanım --force-with-lease |
| Büyük ikili taahhütler | Depo performansını yavaşlatır | Git LFS'yi kullanın |
| Atlamakping kod incelemeleri | Kalitesizliğe yol açar | Çekme isteklerini kullanın |
| Yeniden temellendirme çatışmalarını göz ardı etme | Nedenler kaosu birleştiriyor | İtmeden önce çatışmaları dikkatlice çözün |
Örnek: Bir geliştirici yanlışlıkla bir .env kimlik bilgilerini içeren bir dosya hassas bilgileri açığa çıkarabilir; bu, şu şekilde önlenebilir: .gitignore kurallar ve ön-işlem kancaları.
🔍 Gerçek Dünya Senaryoları ve Stratejik Yanıtlarla En İyi GIT Mülakat Soruları
1) Git nedir ve diğer sürüm kontrol sistemlerinden nasıl farklıdır?
Adaydan beklenenler: Görüşmeyi yapan kişi, Git temellerini ve merkezi sistemlere göre avantajlarını ne kadar anladığınızı değerlendirmek istiyor.
Örnek cevap: Git, geliştiricilerin çeşitli yazılımları kullanmasını sağlayan dağıtık bir sürüm kontrol sistemidir. tracKod tabanlarındaki değişiklikleri takip etmelerini ve verimli bir şekilde iş birliği yapmalarını sağlar. SVN gibi merkezi sistemlerin aksine, Git her geliştiricinin geçmişi de dahil olmak üzere deponun tam bir kopyasına sahip olmasına olanak tanır. Bu yapı, çevrimdışı çalışmayı, daha hızlı işlemleri ve daha iyi dallanma ve birleştirme yeteneklerini destekler.
2) Git fetch, git pull ve git merge arasındaki farkı açıklayabilir misiniz?
Adaydan beklenenler: Görüşmeyi yapan kişi sizin yaygın Git komutları ve bunların amaçları hakkındaki bilginizi test ediyor.
Örnek cevap: git fetch Uzak bir depoda yeni verileri indirir ancak bunları geçerli dalınıza entegre etmez. git pull yeni commit'leri entegre ederek bir getirme ve ardından otomatik birleştirme gerçekleştirir. git merge Güncellemeleri aldıktan sonra bir daldaki değişiklikleri manuel olarak diğerine birleştirmek için kullanılır.
3) Bir birleştirme çakışmasını çözmek zorunda kaldığınız bir durumu anlatın. Bunu nasıl hallettiniz?
Adaydan beklenenler: Görüşmeyi yapan kişi, sizin çatışma çözme becerileriniz ve işbirlikçi iş akışlarını yönetme beceriniz hakkında bilgi edinmek istiyor.
Örnek cevap: Son görevimde, bazen birleştirme çakışmalarına yol açan ortak dallar üzerinde sık sık çalışıyorduk. Bir çakışmayla karşılaştığımda, git status Çakışan dosyaları belirlemek ve hangi değişikliklerin korunacağına karar vermek için her iki sürümü de incelemek için. Dosyaları düzenleyip test ettikten sonra, çakışmayı çözüldü olarak işaretledim ve değişiklikleri uyguladım. Ayrıca, şube yönetim uygulamalarını iyileştirerek gelecekte benzer sorunların yaşanmaması için ekiple iletişim kurdum.
4) Git'te projeleri yönetmek için dallanma stratejilerini nasıl kullanıyorsunuz?
Adaydan beklenenler: Görüşmeyi yapan kişi, Git Flow veya trunk tabanlı geliştirme gibi yapılandırılmış iş akışlarını anlayıp anlamadığınızı görmek istiyor.
Örnek cevap: Genellikle şunları içeren bir Git Akışı stratejisi kullanırım: main, developve özellik dalları. Her yeni görev için özellik dalları oluşturulur ve birleştirilir. develop tamamlandıktan sonra ve birleştirilmeden önce test edildi mainBu yöntem kontrollü entegrasyon ve temiz salım döngülerini garanti altına alır.
5) Hassas bilgilerinizi yanlışlıkla bir Git deposuna kaydettiğinizde hangi adımları atarsınız?
Adaydan beklenenler: Görüşmeyi yapan kişi, bir güvenlik veya uyumluluk sorununa etkili bir şekilde yanıt verme yeteneğinizi değerlendiriyor.
Örnek cevap: İlk olarak, hassas dosyayı kullanarak kaldırırdım git rm --cached ve değişikliği onaylayın. Daha sonra, şu araçları kullanırdım: git filter-branch or BFG Repo-Cleaner Bilgileri geçmişten temizlemek için. Son olarak, potansiyel riskleri önlemek için ifşa olan tüm kimlik bilgilerini değiştirir ve ilgili paydaşları bilgilendirirdim.
6) Birden fazla geliştirici aynı anda commit yaptığında kod tutarlılığını nasıl sağlarsınız?
Adaydan beklenenler: Görüşmeyi yapan kişi, işbirlikçi ortamlarda kod bütünlüğünü nasıl koruduğunuzu anlamak istiyor.
Örnek cevap: Önceki işimde, tüm commit'lerin çekme isteklerinden ve kod incelemelerinden geçmesini gerektiren bir politika uyguladık. Otomatik CI kontrolleri, yalnızca test edilip incelenen kodun birleştirilmesini sağladı. Bu yaklaşım, tüm şubelerde kalite ve tutarlılığı korudu.
7) Paylaşılan bir dala daha önceden gönderilmiş bir commit'i nasıl geri alırsınız?
Adaydan beklenenler: Görüşmeyi yapan kişi, paylaşılan bir havuzda hataları güvenli bir şekilde nasıl yöneteceğinizi anlayıp anlamadığınızı bilmek istiyor.
Örnek cevap: En güvenli yöntem kullanmaktır git revert <commit_id>Belirtilen commit'ten değişiklikleri geri alan yeni bir commit oluşturur. Bu, proje geçmişini korur ve diğer geliştiricilerin işini aksatmaktan kaçınır; aksine git resettarihi yeniden yazan.
8) Farklı sürümler için birden fazla şubeyi yönetmek zorunda kaldığınız bir zamanı anlatır mısınız?
Adaydan beklenenler: Görüşmeyi yapan kişi, sürüm kontrolündeki karmaşıklığı yönetme beceriniz hakkında bilgi edinmek istiyor.
Örnek cevap: Önceki görevimde, müşterilerimiz için birden fazla sürüm sürümü yönetiyorduk. Her sürüm için ayrı sürüm dalları kullanıyor ve cherry-pick kullanarak kritik düzeltmeler uyguluyordum. Bu sayede, yeni sürümlerde gerilemelere neden olmadan güncellemelerin tutarlı bir şekilde uygulanmasını sağlıyordum.
9) Performansı optimum seviyede tutmak için çok sayıda katılımcının bulunduğu büyük depoları nasıl yönetiyorsunuz?
Adaydan beklenenler: Görüşmeyi yapan kişi Git'i etkili bir şekilde ölçeklendirme konusundaki bilginizi değerlendiriyor.
Örnek cevap: Sığ klonlamayı teşvik ediyorum (--depth) daha hızlı erişim ve kullanım için .gitignore Gereksiz dosyaları hariç tutmak için. Ayrıca eski dalları düzenli olarak temizliyor ve ikili varlıklar için Git LFS (Büyük Dosya Depolama) kullanıyoruz. Bu adımlar, deponun verimli ve yönetilebilir kalmasını sağlıyor.
10) Geliştirmeyi aksatan bir Git sorununu ayıklamanız gereken bir senaryoyu anlatın. Yaklaşımınız neydi?
Adaydan beklenenler: Görüşmeyi yapan kişi analitik düşünme ve sorun giderme becerilerinizi görmek istiyor.
Örnek cevap: Önceki bir pozisyonda, bir ekip üyesinin şube geçmişi hatalı bir yeniden temellendirme nedeniyle bozulmuştu. Bunu araştırdım. git log ve git reflog için tracSorunu çözdüm. Ardından, doğru commit'leri geri yükledim. git cherry-pick ve herkesin yerel şubelerinin sabit uzaktan sürümle senkronize edilmesini sağladı. Bu sayede daha fazla kesinti yaşanmasının önüne geçildi ve ekip verimliliği korundu.
