Remote branch local branch’in içermediği commitlere sahipse push reddedilir. Güvenli çözüm fetch sonrası farkı incelemek ve proje politikasına göre merge veya rebase uygulamaktır. Doğrudan `--force` ekip commitlerini silebilir.
rejected non-fast-forward
Updates were rejected because the remote contains work
fetch first
refusing to merge unrelated historiesRemote branch local branch’in içermediği commitlere sahipse push reddedilir. Güvenli çözüm fetch sonrası farkı incelemek ve proje politikasına göre merge veya rebase uygulamaktır. Doğrudan `--force` ekip commitlerini silebilir.
`git status`, aktif branch, remote ve son commitleri görmeden reset veya force işlemi yapmayın.
HTTPS credential, SSH key, remote URL ve GitHub hesabının doğru olduğunu kontrol edin.
Fetch, merge veya rebase öncesinde commit ya da backup branch ile geri dönüş noktası bırakın.
Protected branch, review, CI ve secret scanning kurallarını aşmak yerine feature branch akışını kullanın.
Remote farkını incelemeden `--force` kullanmayın.
Anlamı: Remote localden ileride.
Muhtemel neden: README veya başka kullanıcının commit’i.
Anlamı: Push remote tarihçeyi ileri taşımıyor.
Muhtemel neden: Branch ayrışmış.
Anlamı: Commitlenmemiş değişiklik var.
Muhtemel neden: Working tree temiz değil.
Anlamı: Local ve remote ortak ancestor yok.
Muhtemel neden: İki ayrı init.
Anlamı: Commit uygulanırken çakışma oldu.
Muhtemel neden: Aynı dosya/satırlar değişti.
Anlamı: Branch force push’a kapalı.
Muhtemel neden: Main protection.
Anlamı: Remote commit kaybı riski.
Muhtemel neden: Kontrolsüz force.
Anlamı: GitHub ilk commit ekledi.
Muhtemel neden: README/lisans ile repo oluşturuldu.
Bu ifadeyle eşleşen kayıt bulunamadı.
git fetch origin --pruneRemote referansları günceller.
git log --oneline --graph --decorate --all --max-count=40Ayrışmayı gösterir.
git rev-list --left-right --count HEAD...@{upstream}Branch farkı sayısını gösterir.
git status --short --branchCommitlenmemiş değişiklikleri gösterir.
git pull --no-rebase origin mainMerge yaklaşımıyla remote’u alır.
git pull --rebase origin mainLocal commitleri remote üzerine taşır.
git push --force origin maingit fetch origin
git log --oneline --graph --all
git pull --rebase
git pushgit pullgit status
git add .
git commit -m "WIP kayıt"
git pull --rebasegit push --forcegit fetch origin
git merge origin/main --allow-unrelated-historiesgit push --forcegit push --force-with-leaseGit for Windows, PowerShell, Git Bash ve VS Code Source Control birlikte kullanılabilir.
HTTPS credential manager; SSH ise uzun süreli ve çoklu hesaplı geliştirme ortamlarında kullanılabilir.
Repository rolü, protected branch, Pull Request ve CI politikaları birlikte yönetilmelidir.
Kolay başlangıç için HTTPS ve Git Credential Manager; otomasyon ve çoklu hesap için SSH uygundur.
Git işlemlerinde hesap parolası yerine PAT, credential manager, GitHub CLI veya SSH kullanılır.
Yalnız erişimi sınırlar; secret, parola, private key ve müşteri verileri yine commit edilmemelidir.
Yalnız geçmişi bilinçli yeniden yazılan kişisel feature branch’te ve mümkünse `--force-with-lease` ile kullanılmalıdır.
Branch protection gerektiriyorsa zorunludur; tek kişilik projede de review ve güvenli main geçmişi sağlar.
OWNER, REPO, branch, URL ve dosya değerlerini projenize göre değiştirip önce `git status` ve `git remote -v` ile doğrulayın.
Genellikle hayır. `.git` klasörünü silmek commit geçmişini, branch ve remote bilgilerini kaybettirebilir.
Windows, VS Code, Git Bash, SSH, private repository, protected branch, merge conflict ve GitHub Actions sorunlarını güvenli Git akışıyla inceliyoruz.