Git – .gitignore dosyası (git deposundan bazı dosyaları hariç tutma)

Bu yazımızda .gitignore dosyası ile bazı dosyalarımızı git versiyon kontrol sisteminden hariç tutma işlemini göreceğiz …

Projemizde bazı dosyalarımızı versiyon kontrol sisteminden hariç tutmak isteyebiliriz.Örneğin veritabanı dosyamızı hariç tutmak isteyebiliriz … örneklemek amacı ile istediğiniz dizinde klasör yaratalım ve git depomuz için ayarlamalarını yapalım ;

mkdir git-ignore
cd git-ignore
git init

Sırası ile yukarıda ki kodları girdiğimizde “git-ignore” dizinizi oluşturup içine gittik ve bu klasör için git ayarlamasını yaptık.Şimdi ise uzak depomuzun ayarlamasını yapalım ;

git remote add origin https://github.com/serkankaya/create-repository.git

Yukarıda ki kod ile uzak depomuzu da ayarlamış olduk.Şimdi git ignore dosyamızı oluşturalım ;

touch .gitignore

gitignore dosyamızı oluşturduk ancak dizinde görememeniz çok normal… çünkü “.” ile başlayan gitignore dosyamız gizli dosya … görmek istersek aşağıdaki kodu yazın ;

ls -a
.  ..  .git  .gitignore

Görmüş olduğunuz gibi dosyamız oluşturuldu.Şimdi db bilgilerimizin olduğunuz varsaydığımız “db.txt” dosyamızı oluşturup git status ile durumuna bakalım ;

nano db.txt 
git status

Sonuç :

On branch master
No commits yet
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
	db.txt

nothing added to commit but untracked files present (use "git add" to track)

Şu anda .gitignore ve db.txt dosyamızın index bölümüne atılmaya hazır olduğunu görüyoruz ancak bizim istediğimiz “db.txt” dosyasını git versiyon kontol sisteminin görmemesini istiyoruz bunun için “.gitignore” dosyamıza db.txt dosyamızı tanımlamamız gerekmekte … bunun için nano ile dosyamızı açıp içerisine “db.txt” yazıp kaydedin. daha sonra “git status” komutunu çalıştırdığınızda aşağıdaki çıktıyı alacaksınız …

On branch master
No commits yet
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
nothing added to commit but untracked files present (use "git add" to track)

Yukarıda ki çıktı da görmüş olacağınız üzere “db.txt” dosyamızı git’in görmezden gelmesini sağladık.

Önemli Not : git in görmezden gelmesini istediğimiz dosyaları add ve commit işleminden önce “.gitignore” dosyasına yazmanız şiddet ile tavsiye olunur. Daha sonra dosyalarınız görmezden gelinmeden yok sayılmadan versiyonlanabilir …

Buraya kadar tek bir dosyayı yoksaymayı gördük şimdi farklı bir örnek için dosyalarımızı versiyonlayalım ;

git add .
git commit -m "first commit with .gitignore"

commit işlemimizi de yaptığımızda göre , git in bir klasörü nasıl yoksayabilildiğini örnekleyelim.Bunun için “ghost_folder” adında bir klasör oluşturup içerisinde 3 adet dosya oluşturalım. daha sonra .gitignore dosyamızı düzenleme yapalım ;

mkdir ghost_folder
touch dosya{1..3}
cd ..
nano .gitignore

.gitignore dosyamızı düzenlerken önceki düzenlememize bir boşluk bırakarak “ghost_folder/*” yazıp kaydeder isek ;

Bu klasör tamamen git de yoksayılacaktır.git status ile durumu kontrol edebilirsiniz …

Klasörü de yoksaydırdık güzel peki bu klasör içerisinde bir dosyayı hariç tutmak istersek ne yapacağız ? bunun da çözümü basit … hatırladığınız üzere 3 adet dosya oluşturmuştuk varsayalım ki “dosya1” in versiyonlanmasını klasörde ki diğer dosyaların versiyonlanmamasını istiyoruz.Bunun için yine .gitignore dosyamızı açıp görmesini istediğimiz dosya1 için aşağıdaki satırı ekleyin ;

!ghost_folder/dosya1

Burada ki ünlem işareti bu dosyayı yoksaymamazlık yapma ! demek …dosyamızı kaydedip kapatın ve git status komutu ile inceleyin …

git status ghost_folder/
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	ghost_folder/dosya1
nothing added to commit but untracked files present (use "git add" to track)

Gördüğünüz üzere dosya1 in index kısmına atılmadığını söylemekte …

Şimdi dosyalarımızı index e atıp commitleyip uzak sunucumuza atalım

git add .
git commit -m "gitignore ile örnek yapıldı"
git push -u origin master

yukarıda ki komutlardan sonra uzak sunucu kullanıcı adı ve şifrenizi girdikten sonra github repository nizi kontol ettiğinizde sadece belirttiğimiz dosyaların uzak sunucuya gittiğini görmüş olacaksınız …

gitignore ile yapılan işlemlerimizde bu kadar 🙂

Umarım faydalı olmuştur  🙂

Serkan Kaya
Full Stack Java Developer

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.