Git Taahhüdü: Bir Ustalık Sınıfı

fatmawati achmad zaenuri/Shutterstock.com
Git commit komutu, çalışma dizininizdeki değişikliklerin kopyalarını Git deponuzda depolar. Ancak mevcut taahhütleri değiştirmek ve taahhütleri geri almak için de kullanılabilir.

Herhangi bir sürüm kontrol sisteminin temel gereksinimi, dosyaların farklı sürümlerini sizin için depolamaktır. Git’te bunu yapan komut şudur: commit. İşte bilmeniz gereken her şey.

Git’te Taahhüt Nedir?

Taahhütler, bir projenin geliştirme geçmişini oluşturan yaşam döngüsü boyunca yapılan anlık görüntüler dizisidir. Taahhütler, geçmişte farklı noktalarda olduğu gibi projenin bir versiyonunu çıkarmamıza izin veren şeydir. Bu neden önemli?

Sürüm kontrol sistemleri (VCS’ler) en yaygın olarak yazılım kaynak kodu ve geliştirme projelerinde kullanılır. Ancak, bir kitabın bölümlerini içeren Markdown dosyaları gibi herhangi bir metin dosyası koleksiyonuyla başarılı bir şekilde kullanılabilirler.

Proje dizinlerinizdeki her dosyanın VCS tarafından işlenmesini istemeyebilirsiniz, bu nedenle sürüm kontrollü olmasını istediğiniz dosyaları aday gösterebilmeniz gerekir. Bu onları projenin sürüm kontrol görünümüne ekler. Değişiklikler için izlenecekler.

Bunu başarmanın başka bir yolu da yoksayma listesi kullanmaktır. Bu, Git’e hangi dosyaları, dizinleri veya dosya türlerini her zaman yok sayması gerektiğini söyler.

Zamanla, projeye yeni dosyalar eklendikçe, bazılarının sürüm kontrol sistemine eklenmesi gerekecektir. Git’te bu, add emretmek. Aslında, add göreceğimiz gibi, komut çifte hizmet yapar.

Projede yapılan değişikliklerin geçmişini tutmak için, Git’ten periyodik olarak projenin durumunun bir anlık görüntüsünü depolamasını isteyeceksiniz. commit emretmek. Burası add komutu iş akışımızda yeniden belirir. biz kullanıyoruz add Git’e hangisi olduğunu söyleme komutu değişti anlık görüntüye dahil etmek istediğimiz dosyalar. Sonra kullanırız commit Git’e anlık görüntüyü oluşturmasını söylemek için.

Kesinleştirme Komutunu Yapılandırma

Taahhütle ilgili bilgiler onunla birlikte saklanır, böylece taahhüdü kimin, ne zaman yaptığını ve taahhüdün ne içerdiğini bilmek her zaman mümkündür. Bu meta verilerin bir kısmı, taahhüt mesajı gibi, taahhüt zamanında yakalanır.

Geliştirme ekibi üyelerinin kimliğiyle ilgili meta veriler, aynı bilgilerin tekrar tekrar sağlanmasını önlemek için her kullanıcı tarafından yapılandırılabilir.

Bilgisayarınızdaki tüm depolar için adınızı global olarak ayarlamak için bu komutu kullanın.

git config --global user.name "Dave McKay"

Genel Git kullanıcı adını ayarlama

Adınızın ayarlandığını doğrulamak için bu komutu kullanın.

git config --global user.name

Git genel kullanıcı adını kontrol etme

Belirli bir depoda farklı bir ad kullanmanız gerekiyorsa, projenin dizinine geçin ve aynı komutu --global seçenek.

git config user.name "McKay, David"
git config user.name

Havuza özgü bir Git kullanıcı adı ayarlama

Artık bu havuz için farklı bir varsayılan kullanıcı adımız var ve genel adımız diğer havuzlar için hala kullanılıyor.

Benzer bir şekilde, bir e-posta adresini global olarak veya tek bir havuz için ayarlayarak veya atlayarak ayarlayabiliriz. --global seçenek.

git config user.email "dave@phony-domain.com"
git config --global user.email "dave@fake-domain.com"
git config user.email
git config --global user.email

Genel ve depoya özgü Git varsayılan kullanıcı e-posta adreslerini ayarlama

Bu ayarlar yapılandırma dosyalarında tutulur. Global Git ayarları “~/.gitconfig” içinde tutulur ve havuza özel ayarlar deponun “.git/config” dosyasında tutulur.

bu commit komut, çalışırken bu değerleri referans alır ve kullanır.

taahhüt Komutunu kullanma

Temel kullanımı commit komut, dizin olarak bilinen hazırlama alanında bulunan dosyaları almak ve bunları deponun geçerli dalında bir taahhüt olarak depolamaktır.

Temel Bir Taahhüt

Dosyası değiştirilmiş bir projemiz var. biz kullanacağız add dosyayı hazırlamak için komut verin, ardından kesinleştirin. biz kullanıyoruz -m (mesaj taahhüt) seçeneği, böylece değişikliklerin amacının kısa bir açıklamasını sağlayabiliriz. Bu seçeneği kullanmazsak, taahhüt gerçekleşirken bizden bir taahhüt mesajı istenir. Komut satırına bir tane eklemek daha uygundur.

git add jibber.c
git commit -m "Updated help text"

Tek bir dosyayı hazırlama ve taahhüt etme

Eğer kullanırsak git log komutu, taahhütlerin ayrıntılarını kronolojik sırayla, en son taahhüt listenin başında olacak şekilde gözden geçirebiliriz.

git log

Git deposu günlüğünü kontrol etme

Taahhütler şurada görüntülenir: less.

Git günlüğünün en üstündeki en son işlem

Taahhüt, daha önce verdiğimiz ad ve e-posta adresi ile etiketlendi ve taahhüt mesajımız da kaydedildi.

Dosyaları Otomatik Hazırlama

Birçok dosyanın hazırlanması biraz zaman alabilir. kullanmak farklı bir yaklaşımdır. -A (tümü) seçeneği ile add.

Bu otomatik olarak tüm aşamaları değiştirilmiş şu anda tüm dosyalar ile birlikte izlenmemiş Dosyalar. İzlenmeyen dosyaların hazırlanması, “.gitignore” dosyanızdaki ayarlara uygundur. Git, dahil edilmesini istemediğinizi söylediğiniz dosyaları hazırlamaz. Son olarak, artık çalışma dizininde olmayan dizindeki dosyalar kaldırıldı dizinden.

Açıkça, -A seçenek bir anda çok şeyin olmasına neden olabilir. bu --dry-run seçeneği, değişiklikleri gerçekten gerçekleştirmeden size değişikliklerin bir önizlemesini sunar.

git add -A --dry-run

Hazırlanacak ve hazırlanacak dosyaları önizlemek için --dry-run kullanma

Örneğimizde, değiştirilmiş iki mevcut dosyayı ve iki yeni dosyayı hazırlayacaktır. Devam edelim ve kullanalım -A seçeneği kullanmadan önce commit emretmek.

git add -A
git commit -m "Enhanced parsing"

Add -A seçeneğini kullandıktan sonra değiştirilen ve yeni oluşturulan dosyaların işlenmesi

Toplamda dört dosyanın değiştiğini görebiliriz. Bunlardan ikisi, listelenen yeni oluşturulan dosyalardır.

Aynı Anda Hazırlık ve Taahhüt

bu commit komutun küçük harfi vardır -a (tümü) seçeneği. Bu, dosyaların hazırlanmasını ve işlenmesini tek adımda gerçekleştirir.

bu commit -a seçenek aşamaları ve taahhütler değiştirildi mevcut dosyalar ve kaldırır çalışma dizininizden kaldırılmışlarsa dizindeki dosyaları. BT yapmaz izlenmeyen dosyaları otomatik olarak hazırlar.

Gibi add komutu, commit komutunun bir --dry-run yürütmeden önce eylemlerini önizlemenizi sağlayan seçenek.

git commit -a --dry-run

Değişiklikleri gerçekleştirmeden önizlemek için taahhüt -a seçeneğini kullanma

Şimdi komutu uygulayalım.

git commit -a --dry-run

Taahhüdü kullanma -a seçeneği tek adımda hazırlama ve taahhüt etme

Dosyalar bizim için hazırlanır ve işlenir.

Farklı Bir Şubeye Taahhüt

Çalışma dizininizdeki dosyalarda bazı değişiklikler yaptıysanız ve doğru dalı teslim almadığınızı fark ettiyseniz, mevcut dalı etkilemeden değişikliklerinizi doğru dala kaydetmeniz gerekir.

Git’in farklı bir dala işlemek için bir komutu yoktur. Ancak bu durumu biraz Git becerisiyle düzeltebilirsiniz.

Git’i kullanacağız stash değişikliklerin bir kopyasını yapmak için komut. Ardından doğru dalı kontrol edeceğiz ve değişiklikleri zuladan uygulayacağız. Saklanan değişiklikleri uygulamak için kullanıyoruz pop komut yerine apply emretmek. bu pop komutu, değişiklikleri uygular ve ayrıca onları zuladan kaldırır.

Depomuzda bazı değişiklikler yaptık. new-parser dal. Onlar yapılmış olmalıdır classic-parser dal.

git stash
git checkout classic-parser
git stash pop

Değişiklikleri saklamak, bir dalı kontrol etmek ve değişiklikleri saklamaktan uygulamak

Şimdi bir gerçekleştirebiliriz commitve bu dalı güncelleyin.

git commit -a -m "Added pre-parser functions"

Zuladan alınan değişiklikleri gerçekleştirme

geri dönersek new-parser şubesinin güncel olduğunu görebiliriz, bu da değişikliklerin çalışma dizininizden kaldırıldığı ve deponuz ile dosyalarınız senkronize olduğu anlamına gelir.

git checkout new-parser
git status

Güncel olduğundan emin olmak için bir şubenin durumunu kontrol etme

İLGİLİ: Ayrı Git Dalları Nasıl Güncellenir ve Korunur?

Taahhütlerde Değişiklik Yapma

Taahhüt mesajınızı iyileştirmeniz gerekiyorsa (belki bir yazım hatası fark ettiniz) veya taahhüde dahil edilmesi gereken bir dosyayı hazırlamayı unuttuysanız, --amend işleri düzeltme seçeneği. Uyarı, bunun uzak bir depoya aktarılan taahhütlerde kullanılmaması gerektiğidir.

Son taahhüt mesajımızda, “fraze”, “phrase” olmalıydı. eğer kullanırsak git log bunu görebiliriz.

Bir türün vurgulandığı Git günlüğü

Bunu düzeltmek için, --amend bunun gibi bir seçenek.

git commit --amend -m "Optimized phrase identification"

Bir kesinleştirme mesajını düzeltmek için commit --amend seçeneğini kullanma

eğer kullanırsak git log bir kez daha, eski taahhüdün düzeltilmiş taahhüt mesajıyla yenisiyle değiştirildiğini görebiliriz.

Düzeltilmiş taahhüt mesajını gösteren Git günlüğü

Hazırlamayı unuttuğumuz bir dosyayı eklemek istiyorsak, o dosyayı bir önceki işlemin parçası olarak görünecek şekilde teslim edebiliriz.

kullanacağız add dosyayı hazırlamak için, ardından ile bir taahhütte bulunun --amend seçenek. bu --no-edit seçeneği, yeni bir taahhüt mesajı vermemize gerek olmadığı anlamına gelir. Önceki taahhüt mesajı korunur.

git add jibber.c
git commit --amend --no-edit

Bir dosyayı önceki işleme kaydetme

Bir Taahhütten Değişiklikleri Kaldırma

İstemediğiniz bir dosyayı yanlışlıkla hazırladıysanız ve işlediyseniz, bu dosyayı reset emretmek. Taahhüdü hazırlama alanına veya dizine geri sıfırlayacağız. Ardından dosyayı kaldıracağız ve geri kalan dosyaları yeniden işleyeceğiz.

Hazırlama alanına yapılan son taahhüdü sıfırlamak için reset --soft emretmek. HEAD~ “proje taahhüt zaman çizelgesinin HEAD’inin arkasındaki taahhüt” veya İngilizce’de “son taahhüt” için kısaltmadır.

git reset --soft HEAD~

Son taahhüdün hazırlama alanına geri gönderilmesi

Dahil edilmemesi gereken dosyayı kaldırmak için reset --mixed emretmek. Bu, bu değişiklikleri tekrar çalışma dizinine sıfırlar ve değiştirilen dosyayı aşamalandırılmamış, kaydedilmemiş bir dosya olarak yeniden oluşturur.

git reset --mixed jibber.c

Git hazırlama alanından bir dosyayı kaldırma

Dizinde kalan diğer dosyaları işlememiz gerekiyor.

git commit -m "Experimental tweaks"

Hazırlama alanında kalan dosyaların işlenmesi

Orijinal taahhütte bulunan diğer iki dosya bizim için yeniden taahhüt edildi.

İLGİLİ: Git İşlemlerini Düzeltme, Düzenleme veya Geri Alma (Git Geçmişini Değiştirme)

Tüm Taahhüdü Geri Alma

Bazen bir taahhüdün tamamını geri almak yapılacak en kolay şeydir. Çalışma dizininizi ve deponuzu, siz taahhüt etmeden önceki durumuna geri getirir.

Taahhüdün karma referans kimliğini kullanmamız gerekiyor. Bunu kullanarak bulabiliriz git log:

Kayıt tanımlayıcısının vurgulandığı Git günlüğü

Bu referansı kopyalayın ve revert emretmek:

git revert e5bd4560aef8164c6ca9d6d4620b9db7f66aecc8

Taahhüt kimliği tarafından tanımlanan bir taahhüdü geri alma

Bu, bir geri alma mesajını düzenleyebilmeniz için varsayılan düzenleyicinizi açacaktır. Sizin için girilen varsayılan bir mesaj var. Bunu kullanabilir veya beğeninize göre düzenleyebilirsiniz.

Geri dönüş mesajını, varsayılan mesaj vurgulanmış olarak düzenleme

Geri dönüş mesajınızdan memnun olduğunuzda, dosyayı kaydedin ve editörden çıkın. Nano’da bunu “Ctrl+O” ve “Ctrl+X” ile yaparsınız.

Tamamlanan geri alma işlemi, tüm taahhüdü geri alıyor

kullanma git log bir kez daha, geri alınan taahhüdün değişikliklerini geri alan yeni bir taahhüdün eklendiğini görebiliriz.

Git İsviçre Çakısı

Açıkça, commit en önemli Git komutlarından biridir. Çok şey yapabilir, bu yüzden öğrenecek çok şey var. Daha az kullanılan özellikleriyle uğraşmak, iyi harcanan zamandır. Bir hatayı düzeltmeniz gerektiğinde – hemen şimdi – önceden hazırlandığınız için mutlu olacaksınız.

İLGİLİ: Git birleştirme nasıl kullanılır?

LEAVE A REPLY

Please enter your comment!
Please enter your name here