.gitignore Dosyası
import { Aside } from ‘@astrojs/starlight/components’;
Bu örnekler, .gitignore
dosyasının nasıl kullanılacağını göstermektedir. Bu dosya, projenizin Git depo yönetimini daha temiz ve daha yönetilebilir hale getirmenize yardımcı olur. .gitignore
dosyanızı oluştururken, projenizin ihtiyaçlarına göre hangi dosya ve dizinlerin yoksayılması gerektiğini dikkatle değerlendirin.
.gitignore Dosyası Nedir?
.gitignore
dosyası, Git’in takip etmemesi gereken dosya ve dizinleri belirtmek için kullanılır. Bu, genellikle hassas bilgiler içeren, geliştirme sırasında oluşturulan geçici dosyalar veya derleme ürünleri gibi, kaynak kodu depolarında bulunmaması gereken öğeler içindir.
.gitignore Dosyası Nasıl Kullanılır?
-
.gitignore Dosyası Oluşturun:
- Proje kök dizininde bir
.gitignore
dosyası oluşturun. Bu, genellikle projenin en üst seviyesinde bulunur.
- Proje kök dizininde bir
-
Yoksayılacak Öğeleri Belirtin:
.gitignore
dosyasına, Git tarafından takip edilmemesi gereken dosya ve dizinlerin adlarını ekleyin. Her satır, bir deseni temsil eder.
-
Desenleri Kullanın:
- Yıldız
*
karakteri, herhangi bir karakter dizisini temsil eder. - Eğik çizgi
/
, dizin sınırlarını belirtir. - Ünlem işareti
!
, bir deseni yoksayma kuralından hariç tutar.
- Yıldız
.gitignore Dosyası Örnekleri
# Geçici dosyaları yoksay*.tmp
# Log dosyalarını yoksay*.log
# Özel bir dizindeki tüm dosyaları yoksay, örneğin node_modulesnode_modules/
# Derleme ürünlerini yoksay/build/
# Belirli bir dosyayı yoksay (örneğin, env dosyası).env
# Dizin adı ile başlayan tüm dosyaları yoksaytemp*/
# Ünlem işareti ile başlayan bir deseni hariç tut!important.txt
# Belirli bir uzantıya sahip dosyaları, belirli bir dizin dışında her yerde yoksay*.log!/logs/important.log
Ekleme ve Kaldirma
Bir dosyayi git takibine ekleme ve cikarma konusunu da isleyelim.
Bazen .gitignore dosyasi olusturdugunuzda bazi dosyalari ekleymeyi veya cikarmayi unutmus olabilirsiniz. Bu durumda bu dosyalar github’a yuklenmis veya yuklenmemis olabilir.
Peki bu durumu nasil duzeltecegiz.
Ekleme
Bir dosya turunu git takibi icin eklemek kolaydir. Oncelikle .gitignore dosyasinda bu dosya (dosya turu, klasor vs de olabilir) kaldirildigindan emin olun sonra;
git add dosya-adi
komutu ile bu dosyayi git takibine alabilirsiniz.
Kaldirma
Bir dosya veya klasor zaten git takibinde ise ve dosyalarinizi github’a yuklediginizde bu dosya ve klasorlerde yukleniyorsa ve siz de bunlari artik git takibinden cikarmak ve github’dan da kaldirmak isterseniz islemler nasil olmali?
Ornegin .env dosyasini haric tutmayi unuttunuz ve .env dosyasi icindeki hassas bilgileriniz github’a yuklendi.
- Oncelikle .env dosyasini .gitignore dosyasina ekleyin
.env
eger bir alt klasorde ise orneginbackend/.env
olarak ekleyin. git rm --cached .env
komutu ile dosyayi yerel depodan kaldirin. Bu komut dosyayı fiziksel olarak silmez, sadece Git’in takibinden çıkarır.
bu asamadan sonra eger gorsel bir git duzenleyeci kullaniyorsaniz degisiklikleri gorecek ve guncellemeleri yapabileceksiniz. Eger tamamen git komutlari ile devam ediyorsaniz;
- Değişiklikleri işleyin ve GitHub’a gönderin:
git add .gitignore
komutuyla.gitignore
dosyasındaki değişiklikleri vegit rm --cached .env
komutuyla dosyanın kaldırılmasını işleyin. Ardındangit commit -m ".envdosyası .gitignore dosyasına eklendi"
komutuyla değişiklikleri GitHub’a gönderin.
-r Farki
git rm --cached
komutu, belirtilen dosyaları Git deposunun indeksinden (staging area) kaldırır, ancak dosyaları çalışma dizininizde bırakır. Bu, dosyaları yerel olarak saklamak istediğinizde, ancak Git’in bunları izlemesini istemediğinizde kullanışlıdır.
git rm -r --cached
komutu ise aynı işlemi özyinelemeli olarak gerçekleştirir. Yani, belirtilen dizindeki tüm dosya ve alt dizinleri indeksden kaldırır. Bu, bir dizini ve içindeki tüm içeriği Git’in takibinden çıkarmak istediğinizde kullanışlıdır.
Özetle, -r
seçeneği, komutun belirtilen dizindeki tüm dosya ve alt dizinlere özyinelemeli olarak uygulanmasını sağlar.
İşte bir örnek:
git rm --cached dosya.txt
komutu,dosya.txt
dosyasını indeksden kaldırır.git rm -r --cached klasor
komutu,klasor
dizinini ve içindeki tüm dosya ve alt dizinleri indeksden kaldırır.