Linux'ta Git Sürüm Kontrol Sistemi Nasıl Kullanılır [Kapsamlı Kılavuz]


Sürüm Kontrolü (revizyon kontrolü veya kaynak kontrolü), belirli sürümleri daha sonra geri çağırabilmeniz için bir dosyada veya dosya koleksiyonunda zaman içinde yapılan değişiklikleri kaydetmenin bir yoludur. Sürüm kontrol sistemi (veya kısaca VCS), bir dosya sistemindeki dosyalar üzerinde yapılan değişiklikleri kaydeden bir araçtır.

Piyasada pek çok sürüm kontrol sistemi mevcut ancak Git şu anda en popüler olanıdır ve özellikle kaynak kodu yönetimi için en sık kullanılanıdır. Sürüm kontrolü aslında yalnızca kaynak kodu için değil, bilgisayardaki hemen hemen her tür dosya için kullanılabilir.

Sürüm kontrol sistemleri/araçları, bireylerin veya bir grup insanın şunları yapmasına olanak tanıyan çeşitli özellikler sunar:

  • Bir projenin versiyonlarını oluşturun.
  • Değişiklikleri doğru bir şekilde takip edin ve çatışmaları çözün.
  • değişiklikleri ortak bir sürümde birleştirin.
  • Seçilen dosyalarda veya projenin tamamında yapılan değişiklikleri geri alma ve geri alma.
  • Zaman içindeki değişiklikleri karşılaştırmak için bir projenin geçmiş versiyonlarına erişin.
  • Soruna neden olabilecek bir şeyi en son kimin değiştirdiğini görün.
  • Bir projenin güvenli bir tesis dışı yedeğini oluşturun.
  • Tek bir proje üzerinde çalışmak için birden fazla makine kullanın ve çok daha fazlasını yapın.

Git gibi bir sürüm kontrol sistemi altındaki bir projenin temel olarak üç bölümü olacaktır:

  • depo: proje dosyalarınızın durumunu veya değişiklikleri kaydetmek için kullanılan bir veritabanı. Yeni proje için gerekli tüm Git meta verilerini ve nesnelerini içerir. Bunun normalde bir ağdaki veya uzak sunucudaki başka bir bilgisayardan bir depoyu kopyaladığınızda kopyalanan şey olduğunu unutmayın.
  • bir çalışma dizini veya alanı: üzerinde çalışabileceğiniz (eklemeler, silmeler ve diğer değişiklik işlemleri yapabileceğiniz) proje dosyalarının bir kopyasını saklar.
  • hazırlama alanı: Git dizini içindeki, depoya göndermeye hazır olduğunuz (bir dosyanın veya dosya kümesinin durumunu kaydedin) değişikliklerle ilgili bilgileri depolayan bir dosya (Git altında dizin olarak bilinir).

İki ana VCS türü vardır; temel fark depo sayısıdır:

  • Merkezi Sürüm Kontrol Sistemleri (CVCS'ler): burada her proje ekibi üyesi kendi yerel çalışma dizinini alır, ancak değişiklikleri yalnızca tek bir merkezi depoya uygularlar.
  • Dağıtılmış Sürüm Kontrol Sistemleri (DVCS'ler): Bunun altında, her proje ekibi üyesi kendi yerel çalışma dizinine ve taahhütte bulunabilecekleri Git dizinine sahip olur. Bir kişi yerel olarak taahhütte bulunduktan sonra diğer ekip üyeleri, bu kişi değişiklikleri merkezi depoya gönderene kadar değişikliklere erişemez. Git bir DVCS örneğidir.

Ayrıca, bir Git deposu çıplak (çalışma dizini olmayan bir depo) veya çıplak olmayan (çalışan bir dizine sahip olan) olabilir. dizin). Paylaşılan (veya genel veya merkezi) depolar her zaman çıplak olmalıdır; tüm Github depoları çıplaktır.

Git ile Sürüm Kontrolünü Öğrenin

Git, büyük projelerde oldukça verimli olan, dikkat çekici bir dallanma ve birleştirme sistemine sahip, ücretsiz ve açık kaynaklı, hızlı, güçlü, dağıtılmış, kullanımı kolay ve popüler bir sürüm kontrol sistemidir. Verileri Git dizininde depolanan bir mini dosya sisteminin bir dizi anlık görüntüsü gibi işlemek için tasarlanmıştır.

Git altındaki iş akışı çok basittir: Çalışma dizininizdeki dosyalarda değişiklikler yaparsınız, ardından bir sonraki işleminizin parçası olmak üzere yalnızca değişen dosyaları seçerek hazırlama alanına eklersiniz.

Hazır olduğunuzda, dosyaları hazırlama alanından alan ve bu anlık görüntüyü kalıcı olarak Git dizinine kaydeden bir işlem gerçekleştirirsiniz.

Git'i Linux'a yüklemek için tercih ettiğiniz dağıtıma uygun komutu kullanın:

sudo apt install git   [On Debian/Ubuntu]
sudo yum install git   [On CentOS/RHEL]

Git'i yükledikten sonra, tam adınızı ve e-posta adresinizi aşağıdaki şekilde sağlayarak Git'e kim olduğunuzu söylemeniz önerilir:

git config --global user.name “Aaron Kili”
git config --global user.email “[email ”

Git ayarlarınızı kontrol etmek için aşağıdaki komutu kullanın.

git config --list 

Yeni bir Git Deposu Oluşturur

Paylaşılan depolar veya merkezi iş akışları çok yaygındır ve burada bunu göstereceğiz. Örneğin, kuruluşunuzdaki çeşitli departmanlardaki sistem yöneticileri/programcıları için bashscripts adlı bir proje üzerinde çalışmak üzere uzak bir merkezi veri havuzu kurmanız için görevlendirildiğinizi varsayıyoruz; bu proje, altında depolanacaktır. >/projects/scritpts/ sunucuda.

Uzak sunucuya SSH girin ve gerekli dizini oluşturun, sysadmins adında bir grup oluşturun (tüm proje ekibi üyelerini bu gruba ekleyin, örneğin kullanıcı yöneticisi) ve uygun izinleri ayarlayın. bu dizin.

mkdir-p /projects/scripts/
groupadd sysadmins
usermod -aG sysadmins admin
chown :sysadmins -R /projects/scripts/
chmod 770 -R /projects/scripts/

Daha sonra çıplak bir proje deposunu başlatın.

git init --bare /projects/scripts/bashscripts

Bu noktada, projenin merkezi depolama olanağı olan çıplak bir Git dizinini başarıyla başlattınız. Oradaki tüm dosyaları ve dizinleri görmek için dizinin bir listesini yapmayı deneyin:

ls -la /projects/scripts/bashscripts/

Git Deposunu Klonlama

Şimdi uzaktaki paylaşılan Git deposunu SSH aracılığıyla yerel bilgisayarınıza kopyalayın (bir web sunucunuz yüklüyse ve uygun şekilde yapılandırılmışsa HTTP/HTTPS aracılığıyla da klonlayabilirsiniz. Github'daki çoğu halka açık depoda bulunan durum), örneğin:

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts 

Belirli bir dizine (~/bin/bashscripts) kopyalamak için aşağıdaki komutu kullanın.

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

Artık çıplak olmayan bir depoda (çalışma dizini olan) projenin yerel bir örneğine sahipsiniz; projenin ilk yapısını oluşturabilirsiniz (ör. README.md ekleyin). Strong> dosyası, farklı komut dosyaları kategorileri için alt dizinler, örneğin keşif komut dosyalarını saklamak için recon, sysadmin ro mağaza sysadmin komut dosyalarını vb.):

cd ~/bin/bashscripts/
ls -la

Git Durum Özetini Kontrol Edin

Çalışma dizininizin durumunu görüntülemek için, yaptığınız değişiklikleri size gösterecek olan durum komutunu kullanın; hangi dosyalar Git tarafından izlenmiyor; gerçekleştirilen değişiklikler vb.

git status 

Git Aşaması Değişiklikleri ve Taahhüt

Daha sonra, add komutunu kullanarak -A anahtarıyla tüm değişiklikleri yapın ve ilk işlemi gerçekleştirin. -a bayrağı, komuta değiştirilmiş dosyaları otomatik olarak hazırlaması talimatını verir ve -m bir onaylama mesajı belirtmek için kullanılır:

git add -A
git commit -a -m "Initial Commit"

Yerel Taahhütleri Uzak Git Deposunda Yayınlama

Proje ekibi liderliğinde, artık proje yapısını oluşturduğunuza göre, gösterildiği gibi push komutunu kullanarak değişiklikleri merkezi depoda yayınlayabilirsiniz.

git push origin master

Şu anda yerel git deponuzun proje merkezi deposuyla (origin) güncel olması gerekir, bunu status komutunu bir kez daha çalıştırarak doğrulayabilirsiniz.

git status

Ayrıca iş arkadaşlarınızı, depoyu yerel bilgisayarlarına kopyalayarak proje üzerinde çalışmaya başlamaları konusunda bilgilendirebilirsiniz.

Yeni Git Şubesi Oluşturun

Dallanma, projenizin bir özelliği üzerinde çalışmanıza veya kod tabanına (ana dal) dokunmadan sorunları hızla çözmenize olanak tanır. Yeni bir şube oluşturmak ve daha sonra bu şubeye geçiş yapmak için sırasıyla şube ve ödeme komutlarını kullanın.

git branch latest
git checkout latest

Alternatif olarak, yeni bir şube oluşturabilir ve ödeme komutunu -b işaretiyle kullanarak tek adımda bu şubeye geçebilirsiniz.

git checkout -b latest

Örneğin başka bir dalı temel alarak yeni bir dal da oluşturabilirsiniz.

git checkout -b latest master

Hangi dalda olduğunuzu kontrol etmek için dal komutunu kullanın (yıldız işareti etkin dalı belirtir):

git branch

Yeni dalı oluşturup ona geçtikten sonra, onun altında bazı değişiklikler yapın ve bazı taahhütler yapın.

vim sysadmin/topprocs.sh
git status
git commit add  sysadmin/topprocs.sh
git commit -a -m 'modified topprocs.sh'

Değişiklikleri Bir Şubeden Diğerine Birleştir

Dal testi altındaki değişiklikleri ana dalda birleştirmek için ana dalda geçiş yapın ve birleştirme işlemini yapın.

git checkout master 
git merge test 

Belirli bir dala artık ihtiyacınız yoksa -d anahtarını kullanarak onu silebilirsiniz.

git branch -d test

Değişiklikleri Remote Central Repository'den İndirin

Ekip üyelerinizin değişiklikleri merkezi proje deposuna aktardığını varsayarsak, çekme komutunu kullanarak projenin yerel örneğine herhangi bir değişiklik indirebilirsiniz.

git pull origin
OR
git pull origin master	#if you have switched to another branch

Git Deposunu İnceleyin ve Karşılaştırmalar Yapın

Bu son bölümde, deponuzda gerçekleşen tüm etkinlikleri takip eden ve böylece proje geçmişini görüntülemenizi sağlayan bazı kullanışlı Git özelliklerini ele alacağız.

İlk özellik, taahhüt günlüklerini görüntüleyen Git günlüğüdür:

git log

Bir diğer önemli özellik ise çeşitli nesne türlerini (taahhütler, etiketler, ağaçlar vb. gibi) görüntüleyen show komutu'dur:

git show

Bilmeniz gereken üçüncü hayati özellik, dallar arasındaki farkı karşılaştırmak veya göstermek, çalışma dizini ile dizin arasındaki değişiklikleri görüntülemek, diskteki iki dosya arasındaki değişiklikleri ve çok daha fazlasını görüntülemek için kullanılan diff komutudur.

Örneğin ana dal ile en son dal arasındaki farkı göstermek için aşağıdaki komutu çalıştırabilirsiniz.

git diff master latest

Ayrıca Okuyun: Açık Kaynak Projelerine Ev Sahipliği Yapmak için En İyi 10 Git Alternatifi

Özet

Git, insanlardan oluşan bir ekibin aynı dosyaları kullanarak birlikte çalışmasına ve belirli sürümleri daha sonra geri çağırabilmeleri için zaman içinde dosya(lar)da yapılan değişiklikleri kaydetmesine olanak tanır.

Bu şekilde Git'i kaynak kodunu, yapılandırma dosyalarını veya bilgisayarda depolanan herhangi bir dosyayı yönetmek için kullanabilirsiniz. Daha fazla belge için Git Çevrimiçi Belgelerine başvurmak isteyebilirsiniz.