Git logosu

Git & GitHub

Versiyon kontrol sistemi ve işbirliği platformu.

Git & GitHub Nedir?

Git, dağıtık bir versiyon kontrol sistemidir; kaynak kodu güvenle sürümleyip, geçmişe dönük değişiklikleri takip etmenizi sağlar. GitHub ise Git depolarınızı barındırdığınız, ekiplerle işbirliği yaptığınız; review, issue, proje ve otomasyon (Actions) özelliklerini içeren bir platformdur.

NUVIA olarak; kod kalitesi ve izlenebilirliği artırmak için Git akışlarını PR zorunluluğu, kod sahipliği ve otomatik kalite kontrolleri ile standartlaştırırız.

Temel Kavramlar

Branching Stratejileri

Çalışma Akışları

  1. Issue aç: Kapsam ve kabul kriterlerini yaz.
  2. Branch oluştur: feat/, fix/ önekleriyle isimlendir.
  3. Commit et: Anlamlı, tek amaçlı commit’ler. Conventional Commits tercih edilir.
  4. PR aç: Otomatik testler, lint ve güvenlik taramaları çalışır.
  5. Code review: En az 1–2 onay; değişiklik isteği varsa güncelle.
  6. Merge & Release: Squash/merge politikaları; sürümleme ve notlar (release notes).

Pull Request En İyi Uygulamalar

Güvenlik ve Uyumluluk

GitHub Actions ile CI/CD

# .github/workflows/ci.yml
name: CI

on:
  pull_request:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - run: npm ci
      - run: npm test -- --ci
      - run: npm run build

Kurumsal projelerde iş akışları; cache, matris stratejisi ve ortam gizlileriyle optimize edilir.

Hızlı Komut Özeti

# Depoyu klonla
git clone https://github.com/org/repo.git
cd repo

# Yeni dal aç
git checkout -b feat/login

# Değişiklik ve commit
git add .
git commit -m "feat(login): kullanıcı girişi eklendi"

# Uzak depoya gönder ve PR aç
git push -u origin feat/login
# PR, GitHub üzerinden oluşturulur

# Güncel kal
git fetch origin
git rebase origin/main

# Sürüm etiketle
git tag -a v1.2.0 -m "Release 1.2.0"
git push origin v1.2.0

Sık Sorulanlar

Takım standardına bağlıdır. Temiz bir geçmiş için rebase + squash; bağlamı korumak için merge tercih edilebilir.

Git LFS kullanın; artefact’lar için harici depolar (Nexus/Artifactory) tercih edin.