Menu
Coddy logo textTech

Git Force Push

Son güncelleme

Yerel dalınız uzak daldan ayrıştığında normal bir git push reddedilir - Git, görmemiş olabileceğiniz commit'lerin üzerine yazmaz. Force push bu kontrolü geçersiz kılar ve uzak dalı yerel dalınızla eşleştirir. Geçmişi yeniden yazdıktan (bir rebase veya amend) sonra buna ihtiyacınız olur, ancak başkalarının commit'lerini silebilir; bu yüzden daha güvenli olan --force-with-lease'i tercih edin.

Bunları terminal playground'da deneyin - tarayıcınızda gerçek bir shell, kurulacak hiçbir şey yok.

Force push, uzak dalı yeniden yazılmış yerel geçmişinle eşitler - uzak depodaki ayrışan commit silinir.

Sözdizimi

CommandWhat it does
git push --forceUzak dalın üzerine yazar, güvenlik kontrolü yok
git push -f--force'un kısa biçimi
git push --force-with-leaseYalnızca bu arada başkası push yapmadıysa zorlar
git push --force-with-lease origin featureAdlandırılmış bir dala daha güvenli force push

--force vs --force-with-lease

Behavior--force--force-with-lease
Uzağın üzerine yazarHer zamanYalnızca son fetch'inizden bu yana değişmediyse
Başkalarının commit'lerini silebilirEvetBir fetch lease'i yenilemedikçe reddeder
Ekipler için önerilirHayırEvet

Git force push SSS

Force push'a ne zaman ihtiyacım olur?
Uzakta zaten bulunan bir geçmişi yeniden yazdığınızda - bir git rebase, bir git commit --amend veya commit'leri sıkıştıran etkileşimli bir rebase sonrasında. Yerel dalınız artık uzağın geçmişiyle eşleşmez, bu yüzden normal bir push reddedilir ve onu yalnızca bir force push güncelleyebilir.
--force ile --force-with-lease arasındaki fark nedir?
--force uzak dalın üzerine koşulsuz yazar; bu, bir takım arkadaşınızın son fetch'inizden sonra push ettiği commit'leri sessizce silebilir. --force-with-lease yalnızca uzak, en son gördüğünüz commit'te ise üzerine yazar - bu arada başkası push yaptıysa reddeder ve onların işini korur. Bir uyarı: herhangi bir fetch (bir IDE'nin arka plandaki otomatik fetch'i dahil) lease'i yeniler; bu yüzden uzağı kontrol ettikten hemen sonra push yapın. Yine de herhangi bir paylaşılan dalda --force yerine onu tercih edin.
Force push tehlikeli mi?
Olabilir. Paylaşılan bir dalda, düz bir --force başkalarının push ettiği commit'lerin üzerine yazabilir ve işlerini uzaktan fiilen siler. Yalnızca sizin kullandığınız bir dalda güvenlidir. Şüpheye düştüğünüzde, görülmemiş değişiklikleri ezmek yerine güvenli biçimde başarısız olan --force-with-lease'i kullanın.
Force push'u nasıl geri alırım?
Eski commit'ler hâlâ yerelde veya git reflog'da duruyorsa, dalınızı onlara geri sıfırlayıp önceki durumu yeniden oluşturmak için tekrar force push yapabilirsiniz. Bu, --force-with-lease kullanmak için bir neden daha - kazara üzerine yazmaları en baştan çok daha olası olmaktan çıkarır.
Bunu çevrimiçi olarak deneyebilir miyim?
Evet. git push komutlarını tarayıcınızdaki gerçek bir shell'de çalıştırmak için terminal playground'ı açın - kurulacak hiçbir şey yok. Coddy'nin ücretsiz etkileşimli Git kursu, uzaklarla çalışmayı da adım adım ele alır.
Coddy programming languages illustration

Coddy ile Git öğren

BAŞLA