top 40 git interview questions
Cevapları ve Örnekleriyle En Popüler GIT Mülakat Soruları:
Bu bilgilendirici öğretici, açıklayıcı cevaplarıyla birlikte Git röportajlarında en olası sorulan soruları içerir. Bu sorular kesinlikle herhangi bir Git röportajına hazırlanmanıza ve başarılı bir şekilde çözmenize yardımcı olacaktır.
İster acemi ister deneyimli bir profesyonel olun, Git'teki bu mülakat soruları ve ayrıntılı cevaplar kesinlikle konu hakkındaki bilginizi zenginleştirmenize ve işinizin yanı sıra mülakatlarınızda mükemmelleşmenize yardımcı olacaktır.
Başlayalım!!
En Sık Sorulan GIT Mülakat Soruları
Aşağıda, referansınız için sıkça sorulan GIT mülakat sorularından bazıları listelenmiştir.
S # 1) Git nedir?
Cevap: Git, Dağıtılmış Sürüm Kontrol aracıdır. Kaliteli yazılım oluşturmak için veri güvencesi sunduğu için dağıtılmış doğrusal olmayan iş akışlarıyla uyumludur.
Git ücretsiz ve açık kaynaklıdır. İster küçük ister büyük olsun hemen hemen her türlü proje için kullanılabilir. Git müthiş hızı ve verimliliği ile tanınır. Git depolarının bulunması ve erişilmesi çok kolaydır. Git, belirli özellikleri nedeniyle oldukça esnek, güvenli ve sisteminizle uyumludur.
S # 2) Dağıtılmış Sürüm Kontrol Sistemi nedir?
Cevap: Dağıtılmış bir VCS, bir proje dosyasını ve tüm sürümlerini tutmak için merkezi bir sunucuya bağlı olmayan bir sistemdir. Dağıtılmış VCS'de, her ortak çalışan veya geliştirici ana deponun yerel bir kopyasını alır ve buna klon adı verilir.
(resim kaynak )
Yukarıdaki şemada görebileceğiniz gibi, her ortak çalışan kendi yerel makinelerinde yerel bir depo bulundurur. Yerel depoları herhangi bir sorun olmadan işleyebilir ve güncelleyebilirler.
Bir çekme işlemi kullanarak, bir geliştirici yerel deposunu merkezi sunucudaki en son değişikliklerle güncelleyebilir. Push işlemini kullanarak, değişikliklerini yerel depodan merkezi sunucuya gönderebilirler.
S # 3) Git'i kim yarattı?
Cevap: Git, 2005 yılında Linus Torvalds tarafından Linux Kernel geliştirme yolunda oluşturuldu.
S # 4) Git'te hangi dil kullanılıyor?
Cevap: C, Git'in yazıldığı temel programlama dilidir. C dili, diğer yüksek seviyeli programlama dilleriyle bağlantılı çalışma zamanı ek yüklerinden kaçınarak Git'i hızlandırır.
S # 5) Git'in avantajları / temel özellikleri nelerdir?
Cevap: Aşağıda listelenen çeşitli f Git'in özellikleri.
(i) Ücretsiz ve Açık Kaynak:
Git, GPL’nin (Genel Kamu Lisansı) açık kaynak lisansı altında verilir. Git'i kullanmak için hiçbir şey ödemenize gerek yok.
Tamamen ücretsizdir. Açık kaynaklı olduğu için kaynak kodunu ihtiyaçlarınıza göre değiştirebilirsiniz.
(ii) Hız:
Tüm eylemleri yürütmek için herhangi bir ağa bağlanmanız gerekmediğinden, tüm görevleri hızlı bir şekilde gerçekleştirir. Yerel olarak depolanan bir depodan sürüm geçmişini elde etmek, uzak sunucudan almaktan yüz kat daha hızlı olabilir.
Git, diğer yüksek seviyeli dillerle bağlantılı çalışma zamanı ek yüklerinden kaçınan temel programlama dili olan C ile yazılmıştır.
(iii) Ölçeklenebilir:
Git oldukça ölçeklenebilir. Öyleyse, işbirlikçilerin sayısı önümüzdeki dönemde artarsa, Git bu değişikliğe kolayca uyum sağlayabilir.
Git'in tüm bir depoyu temsil ettiği gerçeğine rağmen, Git tüm büyük verileri kayıpsız bir sıkıştırma tekniğiyle sıkıştırdığı için istemci tarafında tutulan veriler çok küçüktür.
(iv) Güvenilir:
Her ortak çalışanın kendi yerel deposu olduğu için, bir sistem çökmesi durumlarında, kaybolan veriler herhangi bir yerel havuzdan geri alınabilir. Her zaman, tüm dosyalarınızın yedeğini alacaksınız.
(v) Güvenli:
Git, deposundaki nesneleri adlandırmak ve tanımlamak için SHA1'i (Güvenli Karma İşlevi) kullanır. Her yapı ve işlem kontrol toplanır ve ödeme sırasında sağlama toplamı aracılığıyla kurtarılır.
Git geçmişi, belirli bir sürümün kimliğinin (Git açısından bir işlem) bu işleme kadar çalışan toplam geliştirme geçmişine dayandığı bir şekilde kaydedilir. Bir dosya sürümü Git'e gönderildiğinde, fark edilmeden onu değiştirmenin bir yolu yoktur.
(vi) Ekonomik:
Merkezi bir sürüm kontrol sistemi olması durumunda, merkezi sunucu tüm ekibin taleplerini karşılayacak kadar güçlü olmalıdır. Bu, daha küçük ekipler için bir sorun değildir, ancak ekip genişledikçe, sunucunun donanım sınırlamaları performans için bir engel olabilir.
Git gibi dağıtılmış sürüm kontrol sistemleri söz konusu olduğunda, ekip üyeleri değişiklikleri zorlamaları veya çekmeleri gerektiğinde sunucuyla etkileşime girmeye ihtiyaç duymazlar. Tüm ağır yükler istemci tarafında gerçekleşir, bu nedenle sunucu donanımı kesinlikle oldukça basit tutulabilir.
(vii) Doğrusal Olmayan Geliştirmeyi Destekler:
Git hızlı dallanma ve birleştirme sağlar ve doğrusal olmayan bir geliştirme geçmişini öngörmek ve geçmek için özel araçlar içerir. Git'teki temel bir fikir, bir değişikliğin farklı gözden geçirenlere gönderildiği için yazıldığından daha sık birleştirileceğidir.
Git Dalları son derece hafiftir. Git'teki bir dal, yalnızca tek bir işleme anlamına gelir. Tam şube yapısı, ana taahhütlerin yardımıyla oluşturulabilir.
(viii) Kolay Dallanma:
Git aracılığıyla şube yönetimi çok basit ve kolaydır. Dalları oluşturmak, silmek ve birleştirmek yalnızca birkaç çekim gerektirir. Özellik dalları, kod tabanınızdaki her değişikliğe yalıtılmış bir ortam sağlar.
Bir geliştirici, işin boyutuna bakılmaksızın bir şey üzerinde çalışmaya başlaması gerektiğinde, yeni bir dal oluşturur. Bu, ana şubenin sürekli olarak bir üretim kalitesi koduna sahip olmasını sağlar.
(ix) Dağıtılmış Geliştirme:
Git, her geliştiriciye tüm geliştirme geçmişinin yerel bir kopyasını sağlar, ayrıca değişiklikler bu tür bir depodan diğerine klonlanır. Bu değişiklikler, ek geliştirme dalları olarak sunulur ve yerel olarak geliştirilmiş bir şubeyle aynı şekilde birleştirilebilir.
(x) Mevcut Sistemler veya Protokol ile birlikte uyumluluk:
Depolar, düz bir soket veya ssh üzerinde HTTP, FTP veya Git protokolü aracılığıyla yayınlanabilir.
S # 6) Git'te nasıl Depo oluşturursunuz?
Cevap: Bir arşiv oluşturmak için, halihazırda mevcut değilse proje için bir dizin oluşturmanız ve ardından basitçe ' git init ”. Bu komutu çalıştırarak, proje dizininin içinde bir .git dizini oluşturulacaktır, yani artık proje dizininiz bir Git deposuna dönüşmüştür.
S # 7) .git Dizini nedir?
Cevap: Depo oluşturduğunuz anda, içinde bir .git dizini bulacaksınız. Bu .git dizini, deponun tüm meta verilerini içerir ve bir commit geçmişi tutarak deponuzdaki dosyalara yapılan tüm değişikliklerin bir kaydını tutar.
yeni ürünler için nasıl test cihazı olunur
Commits, hooks, refs, object databases, remote repository adresleri vb. İle ilgili tüm bilgiler bu klasörde tutulur. Bu Git'in en önemli kısmıdır. Yerel makinenizde herhangi bir Git deposunu klonladığınızda, bu .git gerçekte kopyalanan dizindir.
S # 8) .git dizini silinirse ne olur?
Cevap: .Git / dizini silinirse, proje geçmişinizin izini kaybedersiniz. Depo artık sürüm kontrolü altında olmayacak.
S # 9) Git'te bir İşlem Mesajı yazmak için hangi komut kullanılır?
Cevap: Bir mesajı git commitine geçirmek için kullanılan komut şudur: git commit -m 'commit mesajı'. Bayrak m bir commit mesajı iletmek için kullanılır.
S # 10) Çıplak Git deposu nedir? Standart / çıplak olmayan bir Git deposundan farkı nedir?
Cevap: Aracılığıyla oluşturulan havuzlar git init komutu standart / çıplak olmayan Git depolarıdır.
Bu tür bir deponun en üst düzey klasöründe iki şey bulacaksınız:
- Deponuzun tüm meta verilerini ve geçmişini izleyen bir .git alt dizini.
- Çalışan bir ağaç.
Kullanılarak oluşturulan depolar git init –bare komutu, çıplak Git depoları olarak bilinir. Esas olarak paylaşım için kullanılırlar. Çalışan ağaç içermezler. Deponuzun git revizyon geçmişini .git alt klasöründe tutmak yerine kök klasörde tutarlar.
Yalnızca çıplak depo verilerini içerir. Çıplak Git havuzunun standart Git deposundan farkı budur. Ayrıca, çıplak bir havuzun varsayılan bir uzaktan kumandası yoktur Menşei havuz, birden çok uzak kullanıcı için bir kaynak depo görevi gördüğü için.
Çıplak bir depo herhangi bir çalışma alanı içermediğinden, git itme ve git çekme komutlar çıplak depo üzerinde çalışmaz. Çıplak bir depoda herhangi bir değişiklik yapmanız gerekmez.
S # 11) Bazı Git Deposu Barındırma Hizmetlerinden bahsedin.
Cevap:
- GitHub
- Pikacode
- Gitlab
- Microsoft VSTS
- BitBucket
- GitEnterprise
- SourceForge
- LaunchPad
- Performans
- Beanstalk
- Gibi görünüyor
S # 12) Git'te bazı Temel İşlemleri adlandırın.
Cevap: Git'teki bazı temel işlemler şunları içerir:
- Başlat
- Ekle
- Kaydet
- it
- Çek
S # 13) Git'te bazı Gelişmiş İşlemleri adlandırın.
Cevap: Git'teki bazı gelişmiş işlemler şunlardır:
- Dallanma
- Birleştirme
- Yeniden kaplama
S # 14) Git ve SVN'yi nasıl ayırt edeceksiniz?
Cevap: Git, dağıtılmış bir sürüm denetimidir, oysa SVN merkezileştirilmiştir. Bu, özellikleri ve işlevleri bakımından ikisi arasında birçok farklılığa yol açar.
Git | SVN | |
---|---|---|
İçerik | Şifreleme SHA-1 Hash. | Hashing uygulanmış içerik yok. |
Sunucu Mimarisi | Git'inizin yüklendiği bilgisayar hem istemci hem de sunucu görevi görür. Her geliştiricinin kendi bilgisayarlarında projenin tam sürüm geçmişinin yerel bir kopyası vardır. Git değişiklikleri yerel olarak gerçekleşir. Bu nedenle, geliştiricinin her zaman ağa bağlı olması gerekmez. Yalnızca itme ve çekme işlemleri için, geliştiricilerin uzak sunucuya bağlanmak için internet bağlantısına ihtiyacı olacaktır. | SVN'nin ayrı bir istemcisi ve sunucusu vardır. Yerel olarak mevcut değil. Herhangi bir eylemi gerçekleştirmek için ağa bağlı olmanız gerekecektir. Ayrıca, SVN'de her şey merkezileştirildiğinden, merkezi sunucunun çökmesi veya bozulması durumunda, proje için tüm veri kaybına neden olacaktır. |
Dallanma | Git, etkili dallanma modeli nedeniyle daha çok geliştiriciler tarafından tercih edilmektedir. Git dalları hafif ancak güçlüdür. Bunlar yalnızca belirli bir taahhüdün referanslarıdır. Diğer taahhütleri etkilemeden istediğiniz zaman şube oluşturabilir, silebilir veya değiştirebilirsiniz. Yani, çatal, dallanma ve birleştirme Git ile kolaydır. | SVN, karmaşık bir dallanma ve birleştirme modeline sahiptir ve yönetimi zaman alıcıdır. SVN'de, dallar havuz içinde dizinler olarak oluşturulur. Bu dizin yapısı esas olarak sorunludur. Dal hazır olduğunda, bagaja geri dönmeniz gerekir. Değişiklikleri birleştiren tek kişi siz olmadığından, kamyonun sürümü geliştiricilerin dalları olarak kabul edilmeyebilir. Bu, şubenizde çakışmalara, eksik dosyalara ve karışık değişikliklere yol açabilir. |
Giriş kontrolu | Git, tüm katkıda bulunanların aynı izinlere sahip olacağını varsayar. | SVN, her bir dizin seviyesinde okuma / yazma erişim kontrolleri tanımlamanıza izin verir. |
Denetlenebilirlik | Git'te, değişiklikler depo düzeyinde izlenir. Git, deponuzda yapılan değişikliklerin kesin geçmişini koruma konusunda fazla uğraşmaz. Git'in dağıtılmış yapısı, herhangi bir ortak çalışanın yerel depo geçmişinin herhangi bir bölümünü değiştirmesine izin verir. Git ile kod tabanınızda gerçek bir değişiklik geçmişi bulmak zordur. Örneğin, Git'te yeniden adlandırdıktan sonra geçmişi kaybedeceksiniz. | SVN'de değişiklikler dosya düzeyinde izlenir. SVN oldukça tutarlı ve kesin bir değişiklik geçmişine sahiptir. Geçmişte herhangi bir anda olduğu gibi tamamen aynı verileri kurtarabilirsiniz. SVN geçmişi kalıcıdır ve her zaman kesindir. |
Depolama Gereksinimleri | Git ve SVN, verileri aynı şekilde depolar. Disk alanı kullanımı her ikisi için eşittir. İkili dosyalar durumunda tek fark resme gelir. Git, ikili dosyalar için uygun değildir. Büyük ikili dosyaların depolanmasını işleyemez. | SVN, hem ikili hem de metin dosyaları için çalışan bir xDelta sıkıştırma algoritmasına sahiptir. Dolayısıyla SVN, büyük ikili dosyaların Git'ten nispeten daha az alanda depolanmasını sağlayabilir. |
Kullanılabilirlik | Hem Git hem de SVN, birincil kullanıcı arayüzü olarak komut satırını kullanır. Git, büyük ölçüde geliştiriciler / teknik kullanıcılar tarafından kullanılır. | SVN, öğrenmesi daha kolay olduğu için büyük ölçüde teknik olmayan kullanıcılar tarafından kullanılır. |
Global Revizyon Numarası | Müsait değil | Mevcut |
S # 15) Git ve GitHub arasında nasıl bir ayrım yapacaksınız?
Cevap: Git, yüksek kaliteli bir sürüm kontrol sistemidir. Doğada dağıtılır ve yazılım geliştirme boyunca kaynak kodundaki değişiklikleri izlemek için kullanılır. Geliştiriciler arasında çalışmayı senkronize etmeye ve herhangi bir dosyadaki değişiklikleri izlemeye yardımcı olan benzersiz bir dallanma modeline sahiptir.
Git'in birincil hedefleri, dağıtılmış, doğrusal olmayan iş akışlarına destek sağlayan hız, veri bütünlüğüdür. Git, bulut yerine yerel makineye kurulur ve bakımı yapılır.
GitHub, ekipleri bir araya getiren bulut tabanlı bir Git deposu barındırma hizmetidir. Size web tabanlı bir GUI sağlamanın yanı sıra erişim kontrolü ve birçok işbirliği özelliği, her proje için temel görev yönetimi araçları sağlar.
Ayrıca GitHub bir açık kaynaktır, yani kod merkezi bir sunucuda tutulur ve herkes tarafından erişilebilir.
S # 16) Git'te çakışma nedir ve nasıl çözülür?
Cevap: Git, kod değişikliklerinin farklı satırlarda ve farklı dosyalarda meydana gelmesi koşuluyla, birleştirme işlemlerini kendi başına gerçekleştiren otomatik bir birleştirme özelliğine sahiptir.
Ancak, bir dosyanın aynı kod satırlarında değişikliklerin olduğu veya bir dosyanın bir dalda silindiği, ancak başka bir dalda var olduğu ve değiştirildiği, kaydetme için rekabet durumunda Git, farklılıkları otomatik olarak çözemez ve dolayısıyla birleştirme çakışmasına neden olur.
Bu gibi durumlarda, hangi kodun ekleneceğine ve son birleştirmede hangi kodun atılacağına karar vermek sizin yardımınıza ihtiyaç duyar.
Bir şubeyi birleştirirken, bir şubeyi yeniden oluştururken veya bir taahhüt seçerken bir birleştirme çakışması ortaya çıkabilir. Bir çakışma algılandığında, Git çakışan alanı vurgular ve sizden bunu çözmenizi ister. Çatışma çözüldükten sonra, birleştirmeye devam edebilirsiniz.
Rakip bir hat değişikliği birleştirme çakışmasını çözmek için aşağıdaki adımları izleyin:
- Git Bash'i (Git komut satırı) açın.
- Kullanım CD Birleştirme çakışması olan yerel Git deposuna gitmek için komut.
- Kullan git durumu Birleştirme çakışmasından etkilenen dosyaların listesini oluşturmak için komut.
- Kullandığınız metin düzenleyicisini açın ve birleştirme çakışmaları olan dosyaya gidin.
- Dosyanızda birleştirme çakışmasının başlangıcını görmek için, belgede çakışma işaretleyicisine bakın<<<<<<<. At the point when you open the file, you’ll observe the modifications from the HEAD or base branch after the line <<<<<<>>>>>> ŞUBE-ADI.
- Sadece şubenizin değişikliklerini tutmanız gerektiğinde seçin, sadece diğer şubenin değişikliklerini saklayın veya iki daldaki değişiklikleri içerebilecek yeni bir değişiklik yapın. Çatışma işaretlerini silin<<<<<<>>>>>> ve son birleştirmede ihtiyacınız olan değişiklikleri yapın.
- Kullanım git ekler. değişikliklerinizi eklemek veya düzenlemek için komut.
- Son olarak, git commit -m 'mesaj' Değişikliklerinizi bir yorumla uygulamak için komut.
Kaldırılan dosya birleştirme çakışmasını çözmek için aşağıdaki adımları izlemeniz gerekir:
- Git Bash'i (Git komut satırı) açın.
- Kullanım CD Birleştirme çakışması olan yerel Git deposuna gitmek için komut.
- Kullan git durumu Birleştirme çakışmasından etkilenen dosyaların listesini oluşturmak için komut.
- Kullandığınız metin düzenleyicisini açın ve birleştirme çakışmaları olan dosyaya gidin.
- Kaldırılan dosyayı saklamak isteyip istemediğinizi seçin. Kaldırılan dosyada yapılan en son değişiklikleri metin düzenleyicinizden kontrol edebilirsiniz.
- Kullanım git ekle kaldırılan dosyayı arşive geri eklemek için komut. Ya da kullan git rm Dosyayı deponuzdan kaldırmak için komut.
- Son olarak, git commit -m 'mesaj' Değişikliklerinizi bir yorumla uygulamak için komut.
S # 17) Bir Kırık İşlemi nasıl düzelteceksiniz?
Cevap: Bozuk bir kaydı düzeltmek veya son kaydetmeyi değiştirmek için en uygun yöntem ' git commit -amend ’ .
Tamamen yeni bir kaydetme oluşturmaya alternatif olarak, aşamalı değişiklikleri önceki işlemle birleştirmenize olanak tanır. Bu, en son taahhüdü değiştirilmiş taahhütle değiştirir.
(resim kaynak )
Bu komut aracılığıyla, anlık görüntüsünü değiştirmeden önceki tamamlama mesajını da düzenleyebilirsiniz.
S # 18) git instaweb'in kullanımı nedir?
Cevap: Bir web tarayıcısında çalışan Git deponuza anında göz atabileceğiniz bir komut dosyasıdır.
Bu komut dosyası gitweb'i ve yerel depoya göz atmak için bir web sunucusu kurar. Bir web tarayıcısını otomatik olarak yönlendirir ve bir web sunucusunu bir arayüz aracılığıyla yerel deponuza çalıştırır.
S # 19) git is-tree nedir?
Cevap: 'Git ağaçtır' blob veya ağacın SHA-1 değeri ile birlikte tüm öğelerin modunu ve adını içeren bir ağaç nesnesini belirtir.
S # 20) Zaten itilmiş ve herkese açık hale getirilmiş bir git taahhüdünü geri almanın bir yolu var mı?
Cevap: Evet, kötü bir taahhüdü düzeltmek veya geri döndürmek için senaryoya bağlı olarak kullanılabilecek iki yaklaşım vardır.
Onlar:
- En bariz yol, kötü dosyayı kaldırdığınız veya içindeki hataları düzelttiğiniz yeni bir kayıt yapmaktır. Tamamlandığında, uzak bir depoya gönderebilirsiniz.
- Diğer bir yaklaşım, önceki hatalı taahhütte yapılan tüm değişiklikleri geri almak için yeni bir taahhüt oluşturmaktır. Bu, git revert komutu ile yapılabilir - ' git revert ”
S # 21) Git çekme ve git getirme arasında nasıl bir ayrım yapacaksınız?
Cevap: Git çek komutu, merkezi depodaki belirli bir şubeden tüm yeni işlemleri çeker ve yerel deponuzdaki hedef şubeyi güncel hale getirir.
Git getir aynı şeyi hedefler, ancak temeldeki işlevselliği biraz farklıdır. Git getirme işlemi yaptığınızda, belirli bir şubeden gelen tüm yeni kayıtlar merkezi deponuza çekilecek ve bu değişiklikler yerel deponuzdaki yeni bir şubede saklanacaktır. Buna, getirilmiş dal denir.
Bu değişiklikleri hedef şubenizde görmek isterseniz, bir git merge git getirdikten sonra. Hedef dal, yalnızca getirilen dalla birleştirildikten sonra en son değişikliklerle güncellenecektir.
Bu nedenle, git çekme yerel şubeyi uzak sürümüyle güncel hale getirir, oysa git getirme doğrudan kendi yerel şubenizi veya aşağıdaki çalışma kopyanızı değiştirmez. referanslar / kafalar. Git getirme, uzaktan izleme dallarınızı güncellemek için kullanılabilir. refs / uzaktan kumandalar //.
Basit bir deyişle, git pull, git fetch ve ardından git birleştirme işlemine eşittir .
S # 22) Git'te Staging alanı veya İndekslemenin kullanımı nedir?
Cevap: Git’in bakış açısından, dosya değişikliklerinin saklanabileceği üç alan vardır, yani çalışma dizini, hazırlık alanı ve havuz.
İlk olarak, projenizin bilgisayar dosya sisteminizde depolanan çalışma dizininde değişiklikler yaparsınız. Tüm değişiklikler, siz bunları hazırlama alanı adı verilen bir ara alana ekleyene kadar burada kalır.
Değişiklikleri uygulayarak aşamalandırabilirsiniz. git ekle. komut. Bu hazırlık alanı size bir sonraki kaydetmenizin bir önizlemesini sunar ve temelde kaydetmelerinize ince ayar yapmanızı sağlar. Taahhüt edeceğiniz sürümden memnun kalana kadar hazırlık alanına değişiklikleri ekleyebilir veya kaldırabilirsiniz.
Değişikliklerinizi doğruladıktan ve değiştirilen aşamayı kapattıktan sonra, nihayet değişiklikleri uygulayabilirsiniz. Taahhüt üzerine, yerel depoya, yani .git / objects dizinine giderler.
Git GUI kullanıyorsanız, değişikliklerinizi aşamalı hale getirme seçeneğini göreceksiniz. Aşağıdaki ekran görüntüsünde, sample.txt dosyası aşamalı olmayan değişiklikler alanı altındadır, bu da onun çalışma dizininizde olduğu anlamına gelir.
Bir dosya seçebilir ve 'sahne değiştirildi' yi tıklayabilirsiniz, ardından evreleme alanına taşınacaktır. Örneğin , hello.txt dosyası değiştirilen (kaydedilecek) alanda aşama mevcuttur. Değişikliklerinizi doğrulayabilir ve ardından bir imzalama ve ardından bir onaylama yapabilirsiniz.
Aşamalandırma, indeksleme olarak da adlandırılır çünkü git, bu üç alandaki dosya değişikliklerinizi takip etmek için bir indeks dosyası tutar. Hazırlanan dosyalar şu anda dizininizdedir.
Aşama alanına değişiklikler eklediğinizde, dizindeki bilgiler güncellenir. Bir commit yaptığınızda, çalışma dizinindekiler değil, aslında endekste kaydedilenler vardır. Kullanabilirsiniz git durumu dizinde ne olduğunu görmek için komut.
S # 23) Git Stash nedir?
Cevap: GIT zulası, çalışma dizininin ve dizinin mevcut durumunu yakalar ve ileride kullanmak üzere yığında tutar. Gerçekleştirilmemiş değişiklikleri (hem aşamalı hem de aşamalı olmayan) çalışma dizininizden geri döndürür ve size temiz bir çalışma ağacı döndürür.
Şimdi başka bir şey üzerinde çalışabilirsiniz ve geri döndüğünüzde bu değişiklikleri yeniden uygulayabilirsiniz. Dolayısıyla, mevcut değişikliklerinizi kaybetmeden bir bağlamdan diğerine geçmek istiyorsanız, saklamayı kullanabilirsiniz.
Şu anda uygulamak veya geri almak istemediğiniz bir kod değişikliğinin ortasında olduğunuz ve üzerinde çalışmanız gereken başka bir şeyin olduğu, hızlı bağlam değiştirmede faydalıdır. Kullanılacak komut git stash'dir.
S # 24) Git Stash düşüşü nedir?
Cevap: Artık belirli bir zulaya ihtiyacınız kalmadığında, bunu çalıştırarak kaldırabilirsiniz. git stash drop komutu . Depodan tüm zulaları tek seferde kaldırmak istiyorsanız, git stash temizleme komutu .
S # 25) Git stash uygulaması nedir? Git stash pop'tan farkı nedir?
Cevap: Her iki komut da sakladığınız değişiklikleri yeniden uygulamak ve kaldığınız yerden çalışmaya başlamak için kullanılır.
İçinde git stash başvur komutunu kullanırsanız, değişiklikler çalışma kopyanıza yeniden uygulanacak ve ayrıca zulada tutulacaktır. Bu komut, aynı saklanan değişiklikleri birden çok dala uygulamak istediğinizde kullanılabilir.
İçinde git stash pop komutunda değişiklikler zuladan kaldırılır ve çalışan kopyaya yeniden uygulanır.
S # 26) git clone komutunun kullanımı nedir?
Cevap: git clone command mevcut merkezi Git deposunun bir kopyasını yerel makinenize oluşturur.
S # 27) git config komutu ne zaman kullanılır?
Cevap: git config komutu, Git kurulumunuz için yapılandırma seçeneklerini ayarlamak için kullanılır.
Örneğin, Git'i indirdikten sonra, sırasıyla Git'te kullanıcı adını ayarlamak ve e-posta adresini işlemek için aşağıdaki yapılandırma komutlarını kullanmanız gerekir:
android için en iyi mp3 müzik indiricisi
$ git config –global user.name “”
$ git config –global user.email ''
Dolayısıyla, esas olarak, deponun davranışı, kullanıcı bilgileri ve tercihleri gibi şeyler bu komut yardımı ile ayarlanabilir.
S # 28) Dalın zaten ana ile birleştirilip birleştirilmediğini nasıl anlayacaksınız?
Cevap:
Aşağıdaki komutları uygulayarak, şube birleştirme durumunu öğrenebilirsiniz:
- git şube - birleştirilmiş ana: Bu, ana olarak yeniden adlandırılan tüm dalları listeleyecektir.
- git şube - birleştirilmiş: Bu, HEAD ile birleştirilen tüm dalları listeleyecektir.
- git şube - birleştirme yok: Bu, henüz birleştirilmemiş tüm dalları listeleyecektir.
Varsayılan olarak, bu komut yalnızca yerel şubelerin birleştirme durumunu söyler. Hem yerel hem de uzaktan şube birleştirme durumu hakkında bilgi edinmek istiyorsanız, -e bayrak. Yalnızca uzak şubeleri kontrol etmek istiyorsanız, -r bayrak.
S # 29) Git'teki Hook'lar nedir?
Cevap: Git kancaları, Git'in kaydetme, gönderme, güncelleme veya alma gibi bir olaydan önce veya sonra çalıştırdığı belirli komut dosyalarıdır. Yerel deponuzda .git dizininin içinde 'hooks' klasörünü bulacaksınız. Yerleşik komut dosyalarını burada pre-commit, post-commit, pre-push, post push burada bulacaksınız.
Bu komut dosyaları, bir olayın meydana gelmesinden önce veya sonra yerel olarak yürütülür. Bu komut dosyalarını ihtiyaçlarınıza göre de değiştirebilirsiniz ve Git, bu belirli olay gerçekleştiğinde betiği çalıştıracaktır.
S # 30) Git çatalının kullanımı nedir? Çatallamanın klonlamadan farkı nedir?
Cevap: Bir projeyi çatallamak, orijinal deponun uzak, sunucu tarafı bir kopyasını oluşturmak anlamına gelir. Bu kopyayı yeniden adlandırabilir ve orijinal projeyi etkilemeden bunun etrafında yeni bir proje yapmaya başlayabilirsiniz. Çatal, Git'in temel kavramı değildir.
Çatal işlemi Git iş akışı tarafından kullanılır ve bu fikir GitHub gibi ücretsiz ve açık kaynaklı yazılımlar için daha uzun süredir mevcuttur. Genel olarak, projeyi çatalladıktan sonra, ana projeye tekrar nadiren katkıda bulunursunuz.
Örneğin, OpenBSD, başka bir Unix benzeri açık kaynaklı işletim sistemi olan NetBSD'nin çatallanmasıyla geliştirilen Unix benzeri açık kaynaklı bir İşletim sistemidir.
Bununla birlikte, çatalda, çatallanmış kopyanız ile orijinal deponuz arasında doğrudan bir bağlantı vardır. İstediğiniz zaman, çekme isteklerini kullanarak orijinal projeye geri katkıda bulunabilirsiniz.
Çatallı kopyada, kodlar ve dosyalar gibi tüm ana veriler orijinal depodan kopyalanır, ancak dallar, çekme istekleri ve diğer özellikler kopyalanmaz. Forking, açık kaynak işbirliği için ideal bir yoldur.
Klonlama aslında bir Git konseptidir. Klon, herhangi bir uzak deponun yerel kopyasıdır. Bir depoyu klonladığımızda, tüm kaynak deposu, geçmişi ve dalları ile birlikte yerel makinemize kopyalanır.
Çatallamanın tersine, klonlanmış depo ile orijinal uzak depo arasında doğrudan bir bağlantı yoktur. Çekme istekleri yapmak ve orijinal projeye geri dönmek istiyorsanız, kendinizi orijinal depoya bir ortak çalışan olarak eklemelisiniz.
Klonlama, klonlanan kopya da tüm kaydetme geçmişine sahip olduğundan, orijinal havuzun bir yedeğini oluşturmanın harika bir yoludur.
S # 31) Belirli bir Git kaydında hangi tüm dosyaların değiştiğini nasıl öğreneceksiniz?
Cevap: Belirli bir işlemenin karma değerini kullanarak, belirli bir işlemede değiştirilen dosyaların listesini almak için aşağıdaki komutu çalıştırabilirsiniz:
git diff-ağaç -r {karma}
Bu, değiştirilen tüm dosyaları ve ayrıca eklenen dosyaları listeler. -R bayrağı, tek tek dosyaları yalnızca kök dizin adlarında daraltmak yerine yollarıyla birlikte listelemek için kullanılır.
Ayrıca aşağıdaki komutu da kullanabilirsiniz:
git diff-tree –no-commit-id –sadece ad -r {karma}
–No-commit-id, çıktıya gelmek için commit karma numaralarını yeniden eğitir. Oysa -name dosya yollarını dışarıda bırakır ve çıktıda yalnızca dosya adlarını verir.
S # 32) Git checkout (şube adı) ile git checkout -b (şube adı) arasındaki fark nedir?
Cevap: Komuta git checkout (şube adı) bir şubeden diğerine geçecek.
Komuta git checkout -b (şube adı) yeni bir şube oluşturacak ve ona geçecektir.
S # 33) SubGit nedir?
Cevap: SubGit, SVN'den Git'e Geçiş için kullanılan bir araçtır. TMate adlı bir şirket tarafından geliştirilmiştir. SVN depolarını Git'e dönüştürür ve her iki sistemde aynı anda çalışmanıza izin verir. SVN'yi Git ile otomatik olarak senkronize eder.
(resim kaynak )
Bu aracı kullanarak bir SVN || Git aynası oluşturabilirsiniz. SubGit, Git sunucunuza kurulmalıdır. SVN revizyonları, dalları ve etiketleri dahil olmak üzere uzak SVN deponuzun tüm ayarlarını algılar ve bunları Git commit'lerine dönüştürür.
Ayrıca, birleştirme verilerini izleme dahil olmak üzere geçmişi de korur.
S # 34) Git'te silinmiş bir dalı kurtarabilir misiniz?
Cevap: Evet yapabilirsin. Silinmiş bir dalı kurtarmak için, SHA'yı başınızdan beri bilmelisiniz. SHA veya karma, Git'in her işlemle oluşturduğu benzersiz bir kimliktir.
Bir dalı sildiğinizde, terminalde gösterilen SHA'yı alırsınız:
Dal silindi (önceki)
Silinen dalı kurtarmak için aşağıdaki komutu kullanabilirsiniz:
git checkout -b
Şubenizin ucundaki yürütme için SHA'yı bilmiyorsanız, önce git reflog SHA değerini bilmek için komut verin ve ardından şubenizi geri yüklemek için yukarıdaki kullanıma alma komutunu uygulayın.
S # 35) Nedir git fark komut? Nasıl farklıdır git durumu?
Cevap: Git fark iki rastgele kaydetme arasındaki farkları, çalışma ağacı ile işleme arasındaki değişiklikleri, çalışma ağacı ve bir dizin arasındaki değişiklikleri, iki dosya arasındaki değişiklikleri, dizin ve ağaç arasındaki değişiklikleri vb. göstermek için yürütülebilen çok kullanımlı bir komuttur.
git durumu komutu, bir depoyu incelemek için kullanılır. Çalışma dizininin ve hazırlık alanının durumunu gösterir. Hazırlanmış, hazırlanmamış ve izlenmeyen dosyaları listeler.
S # 36) Bir Commit nesnesi ne içerir?
Cevap: Commit nesnesi, en üst düzey ağaç nesnesi özetini, üst düzey karmayı (varsa), yazar ve kaydedici bilgilerini, commit tarihini ve commit mesajını içerir.
Bunu şuradan görüntüleyebilirsiniz: git günlüğü komut.
Misal:
(resim kaynak )
S # 37) git kiraz-çekme nedir? Git cherry-pick'in kullanılabileceği senaryolar nelerdir?
Cevap: Git kiraz seç bir veya daha fazla mevcut kaydetme tarafından getirilen değişiklikleri uygulamak için güçlü bir komuttur. Bir daldan bir kesinleştirme seçip diğerine uygulamanıza izin verir.
git kiraz çekme commitSha kiraz toplama için kullanılan komuttur. commitSha, commit referansıdır.
Bu komut, değişiklikleri geri almak için kullanılabilir. Örneğin, yanlışlıkla yanlış bir şubeye bir taahhütte bulunduysanız, doğru şubeyi kontrol edebilir ve ait olması gereken taahhüdü kesin olarak seçebilirsiniz.
Ekip işbirliğinde de kullanılabilir. Ürünün iki bileşeni arasında aynı kodun paylaşılması gereken senaryolar olabilir. Bu durumda, bir geliştirici bu kodu zaten yazdıysa, diğeri de aynı şeyi seçebilir.
Kiraz toplama, sorunu mümkün olan en kısa sürede çözmek için bir yama işleminin doğrudan ana dalda seçilebildiği hata düzeltmelerinde de yararlıdır.
S # 38) 'git reset' ne için kullanılır? Bu komutun varsayılan modu nedir?
Cevap: Git sıfırlama bir Git deposunun durumundaki yerel değişiklikleri geri almak için güçlü bir komuttur. Bu komut mevcut HEAD'i belirtilen aşamaya sıfırlar.
Hem dizini hem de çalışma dizinini son kaydetmenizin durumuna sıfırlar. Git sıfırlamanın üç modu vardır, yani yumuşak, sert ve karışık. Varsayılan çalışma modu karışıktır.
S # 39) 'HEAD', 'çalışma ağacı' ve 'dizin' arasındaki fark nedir?
Cevap: Çalışma ağacı veya çalışma alanı, şu anda üzerinde çalışmakta olduğunuz kaynak dosyaları içeren dizindir.
İndeks, Git'te taahhütlerin hazırlandığı aşamalandırma alanıdır. Taahhüt ile çalışma ağacınız arasında yer alır. Git dizini, geçerli daldaki tüm dosyaları, adlarını, sha1 sağlama toplamlarını ve zaman damgalarını listeleyen büyük bir ikili dosyadır.
Bu dosya /.git/index adresinde mevcuttur. HEAD, geçerli ödeme dalındaki en son işlemin referansı veya işaretçisidir.
S # 40) Yeniden bağlama ve birleştirme arasındaki fark nedir? Ne zaman yeniden kredilendirmelisiniz ve ne zaman birleşmelisiniz?
Cevap: Hem yeniden tabanlama hem de birleştirme komutları, değişiklikleri bir şubeden diğerine ancak farklı bir şekilde entegre etmek için kullanılır.
Aşağıdaki iki resimde görüldüğü gibi, taahhütleriniz olduğunu varsayalım (bu, birleştirmeden / yeniden düzenlemeden önce). Birleştirmeden sonra, sonucu, taahhütlerin bir kombinasyonu olarak alacaksınız. Her iki dalın geçmişini birbirine bağlar ve özellik dalında yeni bir 'birleştirme taahhüdü' oluşturur.
Öte yandan, yeniden temelleme, tüm özellik dalını ana dalın ucundan başlayacak şekilde hareket ettirecektir.
(resim kaynak )
Kayıtlar şöyle görünecek:
Tutarsız depolar oluşturduğundan, genel şubeler için yeniden yükleme önerilmez. Ancak, yeniden düzenleme, özel şubeler / bireysel geliştiriciler için iyi bir seçenektir. Özellik başına dal modu için çok uygun değildir. Ancak geliştirici başına şube modeliniz varsa, yeniden düzenlemenin hiçbir zararı yoktur.
Ayrıca, geri ödeme yıkıcı bir işlemdir, bu nedenle geliştirme ekibiniz bunu doğru şekilde uygulayacak kadar yetenekli olmalıdır. Aksi takdirde, taahhüt edilen iş kaybedilebilir.
Dahası, bir birleştirmeyi geri almak, yeniden ödemeyi geri almaktan daha kolaydır. Bu nedenle, geri dönüş için gerekli olasılıklar olabileceğini biliyorsanız, o zaman birleştirmeyi kullanmalısınız.
Birleştirme tarihi olduğu gibi sürdürürken, yeniden yapılanma tarihi yeniden yazar. Bu nedenle, geçmişi olduğu gibi tamamen görmek istiyorsanız, o zaman birleştirmeyi kullanmalısınız.
linux ve unix işletim sistemi nedir
S # 41) Yeniden adlandırma için sözdizimi nedir?
Cevap: Rebase komutunun sözdizimi şöyledir: git rebase (yeni-kaydetme)
S # 42) Yerel dosya sisteminizden gerçekten kaldırmadan bir dosyayı Git'ten nasıl kaldıracaksınız?
Cevap: Bunun için 'önbelleğe alınmış' seçeneğini kullanabilirsiniz:
git rm -rf - $ FILES önbelleğe alındı
Bu komut, dosyaları diskinizden silmeden deponuzdan kaldıracaktır.
S # 43) Git'teki yaygın dallanma modeli nedir?
Cevap: Yaygın dallanma modeli git akışına dayanır. Master ve geliştirme olmak üzere iki ana dalı vardır.
- Ana dal, üretim kodunu içerir. Tüm geliştirme kodu, herhangi bir zamanda ana dalda birleştirilir.
- Geliştirme dalı, üretim öncesi kodu içerir. Özellikler tamamlandığında, genellikle bir CI / CD ardışık düzeni aracılığıyla ana dalla birleştirilirler.
Bu modelde ayrıca geliştirme döngüsü sırasında kullanılan bazı destek dalları vardır:
- Özellik Dalları / Konu Dalları: Gelecek sürümler için yeni özellikler geliştirmek için kullanılırlar. Geliştirme dalından ayrılabilir ve geliştirme dalına geri birleştirilmesi gerekir. Genel olarak, bu dallar yalnızca geliştirici havuzlarında bulunur ve kökeninde yoktur.
- Düzeltme Dalları: Canlı üretim sürümünde herhangi bir kritik hatayı hemen düzeltmeye ihtiyaç duyulduğunda planlanmamış üretim sürümü için kullanılırlar. Ustadan ayrılabilirler ve gelişmek ve ustalaşmak için yeniden birleştirilmeleri gerekir.
- Yayın Dalları: Yeni üretim sürümünün hazırlanması için kullanılırlar. Sürüm dalı, küçük hata düzeltmeleri yapmanızı ve meta verileri yayınlanmak üzere hazırlamanızı sağlar. Gelişimden ayrılabilirler ve yeniden ustalaşıp geliştirilmeleri için birleştirilmeleri gerekir.
Sonuç
Bu eğitimde genellikle Git röportajları sırasında sorulan önemli soruların üzerinden geçtik.
Bu sadece yaklaşan röportajlara hazırlanmanıza yardımcı olmayacak, aynı zamanda git konseptlerinizi de netleştirecektir.
Röportajınız için en iyisi!
Önerilen Kaynaklar
- Mülakat Soruları ve Cevapları
- Bazı İlginç Yazılım Testi Görüşme Soruları
- En İyi 40 C Programlama Mülakat Soruları ve Cevapları
- En Popüler 40 J2EE Mülakat Sorusu ve Okumanız Gereken Cevapları
- ETL Test Mülakat Soruları ve Cevapları
- 20+ En Sık Sorulan Çıkış Röportaj Soruları ve Cevapları
- En Popüler Oracle Formları ve Raporları Mülakat Soruları
- Bazı Zor Manuel Test Soruları ve Cevapları