Git'in DevOps felsefesini sürdürmeyi hedefleyen herhangi bir şirketin önemli bir parçası haline geldiğini varsayabiliriz. Yazılım mühendisliğiyle ilgili olmasanız bile Git muhtemelen proje yönetimi konusunda en yararlı araç. Takım çalışmasının ve hedefe ulaşmanın anahtarı. Proje temelli şirketlerin çoğu çalışanlarının Git'in çeşitli araçlarının nasıl kullanıldığını bilmesini istiyor. Git mülakat soruları rehberimizde Git kullanımı hakkında mülakatlarda en çok sorulara göz atacağız. Git mülakat soruları Git'i muhteşem bir araç olarak benimsemiş olan bir şirkette iş bulmanıza yardımcı olacak!
Öncelikle Git nedir gibi temel bilgilerden başlayacağız. Sonrasında daha ileri düzey deneyim gerektiren sorulara yöneleceğiz. Git muhteşem bir araç olsa da oldukça dik bir öğrenme eğrisi var. Bu yüzden çok dikkatli bir şekilde okuyun. Hadi başlayalım!
İçindekiler
- 1. Basit İş Görüşmesi Soruları ve Cevapları Neden Önemli?
- 1.1. Soru 1: Git Nedir?
- 1.2. Soru 2: "Bare repository" ve "working directory" arasındaki fark nedir?
- 1.3. Soru 3: "Fork" ve "branch" arasındaki fark nedir?
- 1.4. Soru 4: Commit oluşturup yayınladınız. Ancak hala değişiklik yapılması gereken şeyler olduğunu fark ettiniz. Commit'in bu aşamasında yapabilir misiniz? Evetse nasıl?
- 1.5. Soru 5: "Cherry-picking" nedir?
- 1.6. Soru 6: "Stash" nedir?
- 1.7. Soru 7: Git "stash drop" nedir?
- 1.8. Soru 8: Git'te "conflict"leri nasıl çözersiniz?
- 1.9. Soru 9: Git'te kullanılan dil hangisidir?
- 1.10. Soru 10: "Pull request" nedir?
- 1.11. Soru 11: Kötü commit bulmanın en etkin yolu nedir?
- 1.12. Soru 12: Git ve GitHub arasındaki farkı biliyor musunuz?
- 1.13. Soru 13: Diğer Git repository hosting hizmetlerini adlandırabilir misiniz?
- 1.14. Soru 14: "Commit object" ne barındırır biliyor musunuz?
- 1.15. Soru 15: Git kullanmanın herhangi bir avantajını görüyor musunuz?
- 2. İleri Düzey Git Mülakat Soruları
- 2.1. Soru 1: "Head" nedir?
- 2.2. Soru 2: "Git CONFIG" ne için kullanılır?
- 2.3. Soru 3: Bozulmuş commit'ler düzeltilebilir mi?
- 2.4. Soru 4: "Get" ve "pull" arasındaki fark nedir?
- 3. Son Sözler
Basit İş Görüşmesi Soruları ve Cevapları Neden Önemli?
Gelin öncelikle Git nedir, yaygın Git komutları ve temel Git mülakat soruları neler bunlarla başlayalım. Pek çok insan iş görüşmelerine hazırlanırken temel bilgileri görmezden geliyor. Yapılmaması gerekir! Özellikle de Git nedir ve nasıl kullanılır öğrenmeye başlamışken. Deneyimli bir Git kullanıcısı olsanız bile temel bilgileri görmezden gelmek gibi bir hata yapmamalısınız. Neden mi?
İnsanlar Git mülakat soruları üzerinde çalışırken genellikle mülakatta neler yaşanabileceğini düşünmüyor. Durumu ve sorulabilecek soruları tabii ki hayal ediyorsunuz ancak çoğu insan çok stresli geçebileceğini düşünmüyor. Stres paniğe yol açabiliyor. Sonucunda da Git hakkındaki en temel bilgileri unutabiliyorsunuz, özellikle de önceden çalışmamışsanız.
Git açısından temel iş görüşmesi soruları ve cevapları neden önemli konusuna açıklık getirdiğimize göre gelin soruların kendisine geçelim.
Soru 1: Git Nedir?
Muhtemelen bu sorunun geleceğini tahmin etmisinizdir.
Potansiyel işverenlerinizin Git mülakat soruları arasından ilk olarak başka bir şey sorması pek olası değil. Bu soruyla bilgi düzeyiniz hakkında genel bir etki bırakabilirsiniz. Böylelikle mülakatı gerçekleştiren kişiler mülakat boyunca neyle karşı karşıya olduklarının farkına varır.
Peki Git nedir?
Git birden fazla kişi (ör. şirket) tarafından kullanılan herhangi bir türde bilgisayar dosyalarının izleyen, değişiklerin kaydını tutan bir teknolojidir. Başka bir deyişle şirketler iş akışını yönetmek ve çeşitli projelerin sürecini izlemek adında Git kullanır. Bu teknoloji genellikle yazılım mühendisliği için kullanılsa yazılımla alakası olmayan dünyanın pek çok yerinden şirket de iş akışına Git'i adapte etmiş durumda. Geliştiriciler ve programcılar için ayrı bir popüler (ve önemli). DevOps felsefesine ulaşmak ve sürdürmek isteyen şirketler için en önemli araçlardan biri.
Soru 2: "Bare repository" ve "working directory" arasındaki fark nedir?
Çok popüler Git mülkalat soruları şablonlarından biri olan karşılaştırmalarla iş görüşmelerinde çok karşılaşacaksınız. En iyi cevap verme yolu cevabınızı kısa ve öz tutarken ne üzerine konuştuğunuzu detaylı bir şekilde bildiğinizi de belli etmektir.
Bare repository adından da anlaşıldığı üzere Git'te kullanılan herhangi bir çalışan dosyayı içermez. Alt dizinler, sürüm kontrolü yoktur. Sadece şablondur. Working directory ise yukarıda adlandırdığımız her şeyi içerir; çalışan dosyalar (ve değiştirilmiş geçmişleri), alt dizinler vb. İki alanın birbirinin zıttı olduğunu söyleyebiliriz.
Biliyor Muydunuz?
Kariyeriniz için hangi online eğitim platformunun daha iyi olduğunu merak etmiş miydiniz?EN İYİ online eğitim platformunu yan yana görün ve karşılaştırın
Soru 3: "Fork" ve "branch" arasındaki fark nedir?
En yaygın sorulan Git mülakat soruları arasında yer alıyor. Potansiyel işvereniniz iki konsepti birbiriyle karşılaştırmanızı veya birini açıklamanızı isteyebilir.
"Fork" konsepti Git'e özel veya eşsiz değildir. Pek çok alanda fork'lar yer aldığını görebilirsiniz. Buna iyi bir örnek kripto para birimleri fork'larıdır. Kripto para birimlerinin nasıl çalıştığı hakkında yapılan büyük değişikliklerdir. Git'te ise fork'lar çok daha az tartışmalıdır. Dengeli, "dahili" senaryolarda kullanılan teknoloji hakkındadır.
Git'te bir fork aslından tamamen ayrı olan bir repository'nin kopyasıdır. Branch ise bir programın belli bölümlerini değiştirmek için kullanılan bir şeydir (işi geliştirme tarafıdır). Sonrasında değişiklikler esasıyla birleştirilir.
Fork bir arabanın düz yüzeyiyle uğraşmakken branch lastiklerini değiştirmektir.
Soru 4: Commit oluşturup yayınladınız. Ancak hala değişiklik yapılması gereken şeyler olduğunu fark ettiniz. Commit'in bu aşamasında yapabilir misiniz? Evetse nasıl?
Belli bir durum veya senaryo üzerinden "nasıl başa çıkardınız?" gibi bir soru sormak muhtemelen en popüler Git mülakat soruları arasındadır. İşverenler Git kullanımı hakkında bu tür soruları sever. Sebebi de genellikle yaşanmış deneyimler üzerinden sorulmuş olmalarıdır.
Sorunun cevabı şu; evet, commit yayınlansa bile değişiklik yapılabilir. Sorunun çözümü
git revert komutunu vermektir. En yaygın Git komutlarından biridir ve çoğu geliştirici tarafından düzenli olarak kullanılır.
Komutun yapacağı şey belirteceğiniz değişiklikler için commit'te "yama" görevi üstlenmektir. Böylelikle commit yayınlanmadan önce bazı şeyleri unutsanız bile sonrasında düzeltebilirsiniz.
Soru 5: "Cherry-picking" nedir?
Git hakkındaki iş görüşmesi soruları ve cevapları içerisinde zor olanlardan biri muhtemelen bu. Çünkü çoğu insan bunu araştırmıyor. Cherry-picking terimi geliştiriciler arasında çok sık kullanılıyor (en azından "branch" veya "commit" ile karşılaştırıldığında).
Cherry-picking bir Git temelli branch'te bir tür commit seçiğ özelliklerini başka bir branch'e uygulamaya karar verdiğinizde oluyor. Peki buna neden "cherry-picking" deniyor? Basit; commit aktarımlarında dayalı diğer pek çok Git komutu aynı anda birçok commit'i kopyalayacak şekilde tasarlanmış. Cherry-picking ile başka bir branch'e uygulamak istediğiniz belli bir commit'i seçiyorsunuz.
Soru 6: "Stash" nedir?
Git'te stash'ler hem geliştiriciler hem de yöneticiler tarafından seviyen özelliklerden biridir. Çalıştığınız herhangi bir şeyi stash'e atabilir ve hızlıca projenin başka bir bölümüne geçebilirsiniz. Böylelikle dosya kaybetme korkusu yaşamazsınız. Stash depolama birimi görevi üstlenir; projenizi ve alakalı tüm özellikleri korur. Geri döndüğünüzde bıraktığınız yerden devam edersiniz.
Soru 7: Git "stash drop" nedir?
Stash'lenmiş öğeyle işiniz bittiğinde veya listeden silmek istediğinizde kullandığınız komuttur. Argument eklerseniz ve elli bir öğeyi silebilir veya varsayılan olarak stash'e eklenne son öğeyi silebilir.
Soru 8: Git'te "conflict"leri nasıl çözersiniz?
Aslında "ikili soru" olduğundan tuzak Git mülakat soruları arasında yer alıyor. Doğru cevap vermek için önce conflict nedir bilmek gerek.
Bir commit'te çalışırken birleştirmeye karar verirseniz commit'te herhangi bir çift değişikliğin olup olmadığı kontrol eder. Çift bulunursa Git bir conflict gerçekleştirir. Git tarafından yapılmasının sebebi Git'in hangisinin doğru olup hangisinin atılması gerektiğine karar vermemesidir. Gözden kaçırılırsa projenizi olumsuz olarak etkileyebilir. Bu yüzden Git'in conflict gerçekleştirmesi iyi bir şeydir.
Conflict'i sonlandırmak için bazı yaygın Git komutları bulunuyor (
git add ve
git commit gibi). Kullanıldıklarında Git commit'leri sıraya sokuyor ve işi bitiriyor.
Soru 9: Git'te kullanılan dil hangisidir?
Bu soru başka bir sorunun hemen ardından sorular Git mülakat soruları arasında yer alır, bu yüzden hazırlıklı olmakta fayda var.
Git "C" dilini kullanır. Muhtemelen "neden" diyeceksiniz. Sebebi oldukça basit; "C" dili Git'in son derece hızlı olabilmesini sağlar. Diğer bazı üst düzey programlama dillerine böyle bir şeye erişmek çok zordur.
Soru 10: "Pull request" nedir?
Özellikle Git mülakat soruları içerisinde hem çok duyacağınız hem de çok kullanacağınız Git'le alakalı terimlerden biridir.
Branch kodun farklı bir sürümüyken pull request bir repository alıp bundan bir branch yapmaktır. Sonrasında bazı değişiklikler yapıp branch'i ana projeyle birleştirmeyi denersiniz. Bariz sebeplerden dolayı pull request'leri projeyle alakalı diğer üyeler tarafından onaylanmak zorundadır.
Soru 11: Kötü commit bulmanın en etkin yolu nedir?
Hatalı olanı bulmaya çalışırken her commit'i tek tek inceleyebilirsiniz ancak kimse bunu yapmıyor. Çünkü commit'leri hızlı ve kolay bir şekilde taramanızı sağlayan bir komut var. Arama işlemini çok daha hızlı ve akıcı hale getiriyor.
Komut şu;
git bisect.
Soru 12: Git ve GitHub arasındaki farkı biliyor musunuz?
Git'in yazılım geliştirme sürecinde kaynak koddaki değişiklikleri izlemek için kullanılan dağıtılmış yapıdaki bir kontrol sisteminin sürümü olduğunu biliyoruz. Herhangi bir dosya setindeki herhangi bir değişikliği izlemek için kullanılabiliyor.
Git mülakat soruları için önemli olan nokta GitHub'ın web tabanlı grafik arayüzü sunan Git repository hosting hizmeti olduğunu bilmek. Projeler, erişim denetimi ve iş birliği özellikleri için görev yönetim araçları sağlıyor.
Soru 13: Diğer Git repository hosting hizmetlerini adlandırabilir misiniz?
Cevap şu:
- Pikacode
- GitEnterprise
- SourceForge.net
- Visual Studio Online
Soru 14: "Commit object" ne barındırır biliyor musunuz?
- Projenin durumunu temsil eden dosya seti.
- Üst "commit object"lere referans.
- Commit object'i eşsiz bir şekilde tanımlayan 40 karakter dizgisine sahip bir SHAI adı.
Soru 15: Git kullanmanın herhangi bir avantajını görüyor musunuz?
Öneriler şunlar:
- İşbirliği dostu;
- Herhangi bir tür projede kullanılabilir;
- Erişebilirliği yüksek;
- Kolay veri tekrarı ve replikasyonu;
- Bellek kullanımı ve ağ performansı;
- Repository başına bir Git dizini.
İleri Düzey Git Mülakat Soruları
En temel ve popüler Git mülakat soruları hakkında bilgi verdiğimize göre artık bazı ileri düzey iş görüşmesi soruları ve cevapları hakkında konuşabiliriz. En yaygın sorulan Git mülakat soruları içerisinden bazılarına yer vereceğim. Unutmayın ki sorulabilecek pek çok soru var. Hepsine bu rehberde yer vermek mümkün olmadığından burada yer alanlar iyi bir fikir sahibi olmanızı sağlayacak.
Soru 1: "Head" nedir?
Rehberimizde yer alan diğer terimler kadar sık kullanılmasa da Git'te bu bir commit'in öğesini ifade etmek için kullanılıyor. Head'ler repository'lerde bulunuyor. Her repository'de adı "Master" olan varsayılan bir head yer alıyor. Varsayılan head dışında bir repository'de aynı anda birden fazla head yer alabilir.
Soru 2: "Git CONFIG" ne için kullanılır?
Git mülakat soruları sorulurken başarılı olmak için komutları bilmek hayati önem taşıyor.
git config komutu Git kullanırken ihtiyaç duyacağınız çoğu seçeneği yapılandırmak için kullanılıyor. İster kullanıcı bilgileri ister repository'nin çalışma şekli olsun; oldukça rahat bir yapılandırma yöntemi.
Soru 3: Bozulmuş commit'ler düzeltilebilir mi?
Evet yapılabilir. Bozulmuş commit'leri düzeltmek için
git commit - amend komutu kullanılıyor. Komut bozulmuş commit'i bulup işler hale getiriyor, hata mesajını ortadan kaldırıyor.
- Basit tasarım (gereksiz bilgi yok)
- Yüksek kaliteli dersler (ücretsizler dahil)
- Çeşitli özellikler
- Nanodegree programları
- Firmalara uygun
- Ücretli tamamlama sertifikası
- İnanılmaz çeşitlilikte dersler
- Gezinmesi kolay
- Teknik sorunlar yok
- İnanılmaz çeşitlilikte dersler
- 30 günlük para iade politikası
- Ücretsiz tamamlama sertifikası
Soru 4: "Get" ve "pull" arasındaki fark nedir?
Veri "pull"ladığınızda indirilip anında mevcut çalışan dosyalarla birleştiriliyor. Bunun aksine veri "get"lemeyi bir dosyayı indirmek isteyip ancak dosyalarla birleşmesini istemediğinizde yapıyorsunuz.
Son Sözler
"Git Mülakat Soruları" rehberimizin sonuna geldik. Yazı boyunca Git kullanımı hakkında iş görüşmelerinde karşınıza çıkabilecek pek çok olası temel ve ileri düzey soruya cevap verdik.
Çok stres yapmayın ve tüm dikkatinizi Git öğrenmeye verin. Mülakat sırasında rahat olun ve soruların çoğunu kısa ve öz bir şekilde cevaplandırın. Uygun bir soruysa veya ihtiyaç duyarsanız açıklayın. Potansiyel işvereniniz bunu dikkate alacaktır.
Umarım bu Git mülakat soruları ve cevapları işinize yaramıştır. İş görüşmenizde bol şans dilerim!