⚠ Uyarı:
Commit edilmemiş tüm local değişiklikler, tracked dosyalar da dahil olmak üzere kaybolur. Hatta bu değişiklikler staged bile olsa. Ancak, Git tarafından takip edilmeyen dosyalar etkilenmez ve olduğu gibi kalır.
İlk olarak, tüm origin/ referanslarını güncellemek için aşağıdaki komutu kullanın:
git fetch --all
Şu anki branch’inizi yedekleyin (örneğin main):
git branch backup-main
Ardından, origin/main üzerindeki son commit’e geçin ve bu dosyaları checkout yapın:
git reset --hard origin/main
Açıklama:
git fetch
, remote’daki son güncellemeleri indirir, ancak hiçbir merge ya da rebase işlemi yapmaz.
git reset --hard
, local branch’inizi fetch ettiğiniz duruma sıfırlar. Bu komut, tüm local dosyalarınızı origin/main’deki dosyalarla aynı hale getirir.
Mevcut local commit’leri koruma:
Eğer local commit’lerinizi kaybetmek istemiyorsanız, reset işleminden önce bir branch oluşturabilirsiniz. Bu sayede mevcut commit’ler korunur:
git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/main
Bu işlemin ardından eski commit’ler, yeni oluşturduğunuz branch’de korunur.
Commit edilmemiş değişiklikler:
Commit edilmemiş tüm değişiklikler, staged olsa dahi kaybolur. İhtiyacınız olan dosyaları kaybetmemek için, bu değişiklikleri stash’e alabilir ya da commit edebilirsiniz. Aşağıdaki komutla stash’e alabilirsiniz:
git stash
git reset
işleminden sonra, bu uncommitted changes’larınızı geri yüklemek için şu komutu kullanın:
git stash pop
Bu rehberle, local dosyalarınız üzerine yazdırarak git pull işlemi gerçekleştirebilir ve mevcut commit’lerinizi koruma altına alabilirsiniz.