2022'de Bilmeniz Gereken En İyi 30 Git Mülakat Sorusu ve Yanıtı
Yayınlanan: 2021-01-04Git'in popülaritesi artıyor. Geliştiriciler, hataları düzeltmek veya işlevselliğini geliştirmek için beta olmayan uygulamanın daha yeni sürümlerini yayınlamak için sürekli olarak çalışırlar. Git, tüm değişikliklerin tek bir merkezi depoda depolandığı bir sürüm kontrolü görevi görerek hizmet verir.
Ekipteki her geliştirici, sürümleri görüntüleyebilir, değişiklik yapabilir ve ardından yükleyebilir. Ayrıca, uzak ekiplerde veya evden çalışan kişiler için inanılmaz derecede iyi çalışır. Git sadece geliştiriciler tarafından kullanılmaz. Ekipteki geliştirici olmayanlar bile, bir uygulamanın en son sürümünü veya belirli bir sürümünü almak için kullanabilir ve test etmek veya başka işler için kullanabilir.
Git'in bir komut satırı aracı olduğu yerde, Git Hub programcıların projelerini kaydettiği ve bir ekiple iletişim kurduğu merkezdir.
Bu nedenle Git bilgisine sahip olmak talep görüyor ve talebin artmasıyla birlikte bir işi güvence altına almanıza yardımcı olacak bir dizi Git Mülakat Sorusu oluşturduk. Anlamayı kolaylaştırmak için GitHub Mülakat Sorularını üç bölüme ayıracağız – Başlangıçlar, Orta Düzey ve İleri Düzey.
İçindekiler
Temel Seviye Git Mülakat Soruları
S.1) SVN ve Git arasındaki farkı açıklayın
- SVN, üçüncü nesle ait merkezi olmayan bir sürüm kontrol aracı olan Git'in aksine, ikinci nesle ait merkezi bir sürüm kontrol aracıdır.
- SVN'de, bir sunucu tarafı deposu, sürüm geçmişini kaydeder. Git'te tüm depoyu PC'nize kopyalayabilirsiniz.
- SVN'de, çevrimdışıyken bile taahhütte bulunabileceğiniz Git'in aksine, yalnızca çevrimiçi olduğunuzda taahhütte bulunabilirsiniz.
- Çekme ve itme işlemleri, daha hızlı olduğu Git'e kıyasla SVN'de daha yavaştır.
- SVN'de, otomatik olarak paylaşan Git'in aksine, çalışmalarınız siz bunu yapana kadar paylaşılmaz.
S.2) Git nedir?

Git, geliştiricilerin ve bir ekibin üyelerinin herhangi biri tarafından yapılan değişiklikleri takip etmesine olanak tanır. Ayrıca eski sürümlere geri dönmenizi sağlar. Ekibin değişiklikleri kimin, hangi tarih ve saatte yaptığını bilmesine yardımcı olan bir Dağıtılmış Sürüm Kontrol sistemidir. Diğer Sürüm Kontrol Sistemlerine göre kendi avantajları vardır.
Git'in en büyük yararı, bir projenin tüm sürümlerini kaydetmek için merkezi bir sunucuya bağlı olmamasıdır. Geliştiriciler, tüm geçmişi gösteren kendi sistemlerinde bir havuzun klonlarını (kopyalarını) oluşturabilir. Bu, ciddi bir kesinti olduğunda yardımcı olur. Git'te, programcıların veya ekip üyelerinin değişiklikleri gerçekleştirebileceği ve ekipleriyle paylaşabileceği merkezi bir bulut deposu vardır.
S.3) GitHub ve Git arasındaki fark nedir?
Git deposu barındırma hizmetine GitHub denir. Ayrıca web tabanlı bir grafik arayüz sunması gibi kendine has özellikleri vardır. Ayrıca GitHub, bir proje için yönetim aracı olarak hizmet etmenin yanı sıra erişim de sağlar.
Öte yandan Git, dağıtık yapıda bir sürüm kontrol sistemidir. Esas olarak beta olmayan uygulamada yapılan değişiklikleri izlemek için kullanılır. Hız, destek ve veri bütünlüğü sunar. Geliştiriciler ve diğer ekip üyeleri, kimin, hangi tarihte, hangi değişiklikleri yaptığını görebilir.
S.4) Sürüm Kontrol Sistemini kullanmanın avantajları nelerdir?
Versiyon Kontrol Sistemi onlara ortak versiyonda yaptıkları değişiklikleri herhangi bir güçlük çekmeden birleştirme esnekliği verdiği için takıma ve üyelerine yardımcı olur.
Geçmiş, tüm eski sürümleri ve türevlerini göstererek ekip üyelerinin gerektiğinde geri dönmelerini sağlar. Ekip üyeleri ayrıca tüm projenin bir anlık görüntüsüne sahiptir.
Ekip üyelerinin herhangi bir değişiklik yaptıklarında yorum yapmaları gerekir, bu da diğerlerinin projeyi daha organize hale getiren tam değişikliklerin ne olduğunu anlamalarına yardımcı olur. Kimse açıklama beklemek zorunda değil. Ekip üyeleri, sürümü kimin ve neden değiştirdiğini tam olarak biliyor.
Talihsiz bir sunucu kesintisi varsa, Git gibi dağıtılmış bir VCS, masaüstünüze indirilebildiği için projenizin tam geçmişine sahip olmanızı sağlar.
S.5) Git'te hangi dil kullanılıyor?
Git'in kullandığı dil 'C' dilidir, çünkü GIT'in gerektirdiği hız, diğer yüksek seviyeli dillerin aksine çalışma sürelerini kısalttığı için 'C' dili tarafından karşılanabilir.
S.6) Bize bazı Git deposu barındırma işlevlerini anlatın
- Github
- Gitlab
- KaynakForge
- bitbucket
- GitEnterprise
S.7) Git'i nasıl taahhüt ediyorsunuz?
Bir taahhüt mesajı yazmak için “git commit -a” komutunu yazmanız gerekir.
Komut satırındaki -a, değiştirilen tüm izlenen dosyaların en son içeriğini işlemek için git komutunu verir. Yeni dosyaların ilk kez işlenmesi gerekiyorsa, git commit -a'dan önce “git add <file>” komutunu kullanabilirsiniz.
S.8) Bozuk bir taahhüdü nasıl düzeltebilirsiniz?
Bozuk bir taahhüdü düzeltmek için “git commit –amend” komutunu kullanabilirsiniz. Bu komutu çalıştırarak, editördeki bozuk taahhüt mesajını düzeltir.
Okuyun: En İyi Nagios Mülakat Soruları
S.9) Git'te bir depo ne anlama geliyor?
Git'in tüm dosyaları kaydettiği bir yerdir. Git, dosyaları hem uzak hem de yerel depoda saklama yeteneğine sahiptir.
S.10) Nasıl bir havuz oluşturabilirsiniz?
Git'te bir depo oluşturmak basittir. Henüz yapılmadıysa, proje için bir dizin oluşturmanız gerekir. Daha sonra “git init” komutunu çalıştırmanız gerekir. Bu komut, proje dizininde git dizinini oluşturur.
S.11) Git'te 'çıplak depo' açıklansın mı?
Çıplak Git deposu genellikle bunu ekip üyelerinizle veya diğer kişilerle paylaştığınız Uzak Depo olarak kullanılır. Uzak depoda yapılan herhangi bir iş olmadığı için içinde çalışan bir ağaç yoktur. Diğer dosyalarda, bunun içinde düzenleyeceğiniz hiçbir dosya yoktur. Aksine, bir çalışma dizini, tüm sürüm geçmişine ve ayrıca bir çalışma ağacına sahip bir .git alt dizini içerir.
S.12) Git'te bir 'çatışma' ile ne demek istiyorsunuz?
Tipik olarak Git, otomatik birleştirme özelliklerini kullanarak tüm birleştirmeleri yönetir. Ancak, iki ayrı dalda bir dosyanın tam olarak aynı satırında düzenlemeler yapılırsa bir çakışma olabilir. Bir dosya bir daldan silindiğinde, ancak başka bir dalda düzenlendiğinde de olabilir. Bir ekip ortamında çalışırken bunların olması zorunludur.
S.13) git is-tree nedir?
'git is-tree', mod ve öğe adının yanı sıra ağacın veya bir blobun SHA-1 değerini içeren bir ağaç nesnesini temsil eder.
Orta Seviye Git Mülakat Soruları
S. 14) Git'te ortaya çıkan bir çakışmayı nasıl çözersiniz?
Git'teki çakışmayı aşağıdaki yollarla çözebilirsiniz:
- Hangi dosyaların çatışmanın artmasına neden olduğunu belirleyin.
- Söz konusu dosyada değişiklik yaparak çakışmayı çözün.
- Bu dosyaları git add komutuyla tekrar ekleyin.
- Dosyayı işlemek için git commit komutunu kullanın.
S.15) Bir taahhüt zaten gönderilmişse ve herkese açık hale getirilmişse, Git'te bunu nasıl geri döndürürsünüz?
Duruma bağlı olarak bunu yapabileceğiniz iki yöntem vardır:
- Tamamen kaldırabilir veya bozuk dosyayı yeni bir işlemde düzeltebilir ve ardından uzak depoya geri gönderebilirsiniz. Bu sorunu gidermek için en sık kullanılan yöntem budur. Dosyada ilgili değişiklikleri yaptıktan sonra git commit -m “commit message” komutunu kullanarak dosyayı uzak depoya atarsınız.
- Alternatif olarak, kötü taahhütte yapılan tüm değişiklikleri geri alan yeni bir taahhüt oluşturabilirsiniz. Bunu git revert <name of bad commit> komutunu kullanarak yapabilirsiniz.
Okuyun: Çevik Mülakat Soruları ve Cevapları

S.16) SubGit nedir?
SVN'den Fit'e geçişi sağlayan bir araçtır. Yerel veya uzak bir Subversion deposunun yazılabilir bir Git aynasını oluşturur ve hem Subversion hem de Git'i istediğiniz kadar kullanır. Mevcut bir Subversion deposunun iki yönlü Git-SVN aynasını oluşturmak için SubGit'i kullanabilirsiniz. Ayrıca Subversion'dan Git'e hızlı bir şekilde bir kerelik içe aktarma yapabilirsiniz.
S.17) git pull komutu ile git fetch komutu arasındaki fark nedir?
Git pull komutu, tüm yeni değişiklikleri veya kesin bir şubedeki taahhütleri merkezi deponuzdan alır ve yerel deponuzdaki hedef şubenizi günceller.
Git fetch komutu benzer bir şey için kullanılır, ancak küçük bir farkı vardır. Getirdiğinizde, kesin bir şubeden tüm yeni taahhütleri alır ve yerel deponuzdaki yeni bir şubeye kaydeder. Bu değişiklikleri hedef şubenize yansıtmak istiyorsanız, git merge'yi çağırmalısınız.
Böylece Git çekme = git getirme + git birleştirme.
S.18) Git'te 'dizin' veya 'hazırlık alanı' nedir?
Değişikliklerin taahhüt edilmeden önce biçimlendirilebileceği veya gözden geçirilebileceği ara alana Git'te dizin veya hazırlama alanı denir.
S.19) git stash nedir? Nasıl uygularsınız?
Öncelikli olarak başka bir dalda çalışmak zorunda olduğunuz için bir işin duraklatılması gereken zamanlar vardır. Yarım kalan iş, daha o aşamada olmadığı için taahhüt edilemez, ancak kısa sürede geri dönüp üzerinde çalışmak istersiniz. Bu sorunu çözmek için git slash teklif yardımı.
Daha sonra tamamlayıp uygulayabileceğiniz bir dizi bitmemiş değişiklik içinde kaydeder. Bu işe geri dönmek için tek yapmanız gereken git stash to application komutunu çağırmak. Çalışmanızı bıraktığınız yerden çalışma dizininize getirir.
S. 20) git diff'in 'git status'den farkı nedir?
'git diff' neredeyse 'git status' ile benzerdir; ikisinin de sahip olduğu tek fark, birincisinin çeşitli taahhütler arasındaki farkları ortaya çıkarmasıdır. '
S.21) 'git remote', 'git klonundan' nasıl farklıdır?
Git yapılandırmanızda belirli bir URL için bir addan bahseden bir giriş oluşturmak istiyorsanız, 'git remote add' kullanın. Öte yandan, 'git klonu', URL'de bulunan mevcut bir depoyu kopyalayarak yeni bir git deposu oluşturur.
Okuyun: En İyi React Mülakat Soruları ve Cevapları
S.22) Dallanma stratejilerini tanımlayın
Her şirketin kendi şubeleşme stratejileri vardır. İşte popüler olanlardan bazıları:
- Unsur dallandırma – Bir unsur dalı modeli, belirli bir unsur için yapılan tüm değişiklikleri bir dalın içine kaydeder. Ancak kapsamlı bir testten sonra bu dal, ustasıyla birleştirilir.
- Dallanmayı serbest bırak – Geliştirme dalı, yayına hazır olduğu bir noktaya ulaştığında; bir yayın dalı oluşturmak için klonlayabilir veya kopyalayabilirsiniz. Klonlamadan sonra ona yeni bir özellik eklenmez. Yalnızca hataları düzeltebilir, belgeleyebilir veya sürüm için geliştirilmesiyle ilgili bu tür etkinlikler yapabilirsiniz. Test edildikten sonra, master ile birleştirilir ve bir sürüm numarası alır. Ek olarak, sürüm yapıldığından bu yana ilerlemiş olabilecek geliştirme dalıyla yeniden birleştirilmelidir.
- Görev dallandırma - Bu modelde, her görev, şube adında tutulan görev anahtarıyla kendi dalında gerçekleştirilir. Şube isminde görev anahtarı aranarak hangi kodun hangi görevi gerçekleştirdiği anlaşılır.
S.23) Gitflow iş akışını açıklayın?
Gitflow, ana ve geliştirme olan uzun süredir devam eden iki paralel dal kullanarak belirli bir projenin geçmişini saklar:
- Master – Bu şubeye gitmeye hazır. Bu dalda her şey denenir ve onaylanır.
- Düzeltme – bu dallar, üretim sürümlerini hızlı bir şekilde yamalamak için kullanılır. Neredeyse özellik dallarınız ve yayın dallarınız gibidirler; ayrıca geliştirme yerine ustalık üzerine kuruludur.
- Geliştirme - Tüm özellik dalları bu dalda birleştirilir. Bunlar teste tabi tutulanlardır. Yalnızca sıkı testlerden sonra ana dal ile birleşir.
- Özellik – her yeni özellik kendi dalında oturmalı ve daha sonra geliştirme dalı olan üst dallarına iletilmelidir.
S. 24) Bir dalın master ile birleştiği nasıl anlaşılır?
Aşağıdaki komutlar, birleştirilmiş olup olmadıklarını bilmenize yardımcı olur:
git branch –merged – Geçerli dalda birleştirilen tüm dalları listeler. Daha sonra öyle olup olmadığını görebilirsiniz.
git branch –no-merged – Alternatif olarak, ana dalı ile birleştirilmemiş tüm dalları kontrol etmek için bu komutu kullanabilirsiniz.
S.25) Bir dosyayı dosya sisteminizden silmeden git'ten nasıl kaldırabilirsiniz?
Git'e dosya eklerken yanlış dosya eklememek için dikkatli olmalısınız. git rm komutu onu hem hazırlama alanından hem de dosya sisteminden kaldıracaktır, bu nedenle bunun yerine git reset komutunu kullanmanız gerekir.
git reset filename veya echo filename >> .gitingore kullanabilirsiniz.
S.26) Git'te yeniden temellendirme ve birleştirme açıklansın mı?
Düzenlemeleri bir daldan diğerine entegre etmek için rebase komutunu kullanırsınız. Birleştirme komutuna alternatif olarak kullanılır. “Birleştirme” komutuna bir alternatiftir. Düz, düzenlenmiş bir ardışık taahhüt vermek için taahhüt tarihini yeniden yazdığı için birleştirmeden farklıdır.
İleri seviye Git Mülakat Soruları:
S.27) Son N taahhüdü tek bir taahhüde nasıl sıkıştırırsınız?
Son N taahhütlerini tek bir taahhütte ezmenin iki yolu vardır:
Baştan yeni bir taahhüt mesajı oluşturmak isterseniz, aşağıdaki komutu kullanabilirsiniz:
git reset –soft HEAD~N &&git commit
Yeni taahhüt mesajını mevcut taahhüt mesajlarının bir birleşimi ile düzenlemek istiyorsanız, o zaman bu mesajları almanız ve şu komutu kullanarak Git taahhüdüne iletmeniz gerekir:
git reset –soft HEAD~N &&git commit –edit -m”$(git log –format=%B –reverse .HEAD@{N} )”
S.28) Jenkins'i Git ile entegre etme adımları nelerdir?
Adım 1: Jenkins düğmesini yönetmek için Jenkins panosuna tıklamanız gerekir.
Adım 2: Eklentileri yönet düğmesine tıklayın.
Adım 3: Eklentiler Sayfasında GIT eklentisini seçmeniz gerekiyor. Yeniden başlatmadan yükle'ye tıklayın. Eklenti, İnternet hızınıza bağlı olarak otomatik olarak indirilir.
S.29) Git bisect'in ne olduğunu ve onu bir hatanın kaynağına ulaşmak için nasıl kullanacağınızı açıklayın.
Git bisect'i kullanarak, ikili aramayı kullanarak hangi taahhüdün hataya neden olduğunu anlayabilirsiniz. Git bisect komutu git bisect <subcommand> <options> şeklindedir.
bir ikili arama algoritması, bu komut, ilk etapta hangi işlemin hataya neden olduğunu bulur. Git bisect, hatanın tanıtıldığı iki uç nokta arasında bir taahhüt seçer. İyi bir taahhüt ile kötü bir taahhüt arasında karar verebilirsiniz. Kesin taahhüt bulunana kadar onu filtrelemeye devam eder.

S.30) Bir git reflog'u açıklayın?
'reflog' komutu, bir havuzun referanslarında yapılan her bir düzenlemeyi takip etmeye yardımcı olur. Dalların veri geçmişini tutar ve hatta yerel veya dışarıda oluşturulanlara bir etiket tutar .
Bu komut, eksik şubeye sahip depoda gerçekleştirilmelidir. Uzak bir depo durumunda, şubeye sahip programcının sisteminde reflog komutunu çalıştırmanız gerekir.
Dünyanın en iyi Üniversitelerinden Yazılım Mühendisliği dereceleri alın . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Çözüm
Git Hub Mülakat Sorularının hayalinizdeki işi elde etmenize yardımcı olacağını umuyoruz. Bunlar görüşmeci tarafından en sık sorulan Git sorularıdır. Röportajınız için size en iyisini diliyoruz!
