GIT depolarımı Git Online üzerinden düzenledim. Yerel kod değişikliklerimi göndermeyi denedikten sonra bir hata aldım:
Git push failed, To prevent from losing history, non-fast forward updates were rejected.
Bunu nasıl düzeltebilirim?
Yanıtlar:
Önce değişiklikleri çekin:
git pull origin branch_name
git pull
:? Uzaktan eşittir origin
aslında çalışır, böylece: git pull origin
. Tüm şubeleri güncellemeli mi?
Basmak istediğinizden eminseniz --force komutunu ekleyin. Örneğin kullanın git push origin --force
(Komut satırı ile diğer kullanıcılardan çok daha fazla destek bulacağınız için komut satırını tavsiye ederim. Ayrıca SmartGit ile bu mümkün olmayabilir.) Daha fazla bilgi için bu siteye bakın: http://help.github.com/ uzaktan kumandalar /
--force
Bu dalı kullanan tek kişi sizseniz, kullanmaktan çekinmeyin . Diğer geliştiricilerle bir şube paylaşırken sorunlara neden oluyor.
İtmeden önce, rebase seçeneğiyle bir git pull yapın. Bu, çevrimiçi yaptığınız değişiklikleri (kaynağınızda) alacak ve bunları yerel olarak uygulayacak, ardından yerel değişikliklerinizi bunun üzerine ekleyecektir.
git pull --rebase
Şimdi, uzaktan kumandaya itebilirsiniz
git push
Daha fazla bilgi için Git yeniden tabanında açıklanan ve Bölüm 3.6 Git Dallanma - Yeniden Oluşturma'ya bakın .
git pull --rebase
, There is no tracking information for the current branch. Please specify which branch you want to rebase against.
Aynı hatayla karşılaştım, komuta sadece "--force" ekleyin , işe yarıyor
git push origin master --force
--force
da yardımcı olabilir.
Ben de aynı sorunu yaşadım.
Bunun nedeni, yerel şubemin bir şekilde uzaktaki muadiline olan takibi kaybetmesiydi.
Sonra
git branch branch_name --set-upstream-to=origin/branch_name
git pull
ve birleşen çatışmaları çözerken, zorlamayı başardım.
Komuta --force-with-lease ekleyebilirsiniz , çalışacaktır.
git push --force-with-lease
--force yıkıcıdır çünkü kayıtsız şartsız uzak deponun üzerine yerel olarak sahip olduğunuz her şeyi yazar. Ancak --force-with-lease, başkalarının çalışmalarının üzerine yazmamanızı sağlar .
Daha fazla bilgiyi burada görün .
(Bir) Netbeans 7.1 için Çözüm: Çekmeyi deneyin. Bu da muhtemelen başarısız olacaktır. Şimdi günlüklere bir göz atın (bunlar genellikle şimdi IDE'de gösterilir). Bir / daha fazla satır var:
"Bu dosya nedeniyle çekme başarısız oldu:"
Bu dosyayı arayın, silin (daha önce bir yedekleme yapın). Genellikle bir .gitignore dosyasıdır, bu nedenle kodu silmeyeceksiniz. İtmeyi yeniden yapın. Şimdi her şey yolunda gitmeli.
--rebase
Seçeneği kullanmak benim için çalıştı.
git pull <remote> <branch> --rebase
Ardından depoya itin.
git push <remote> <branch>
Örneğin
git pull origin master --rebase
git push origin master
Ben de aynı sorunu yaşadım. İle çözdüm
git checkout <name branch>
git pull origin <name branch>
git push origin <name branch>
checkout
bu değişikliklerin üzerine yazacak veya en azından bunları push'a dahil etmeyecektir.
Bu benim için çalıştı. Git belgelerinde bulunabilir burada
İstediğiniz şubede iseniz bunu yapabilirsiniz:
git fetch origin
# Fetches updates made to an online repository
git merge origin YOUR_BRANCH_NAME
# Merges updates made online with your local work
Aynı problemle karşılaştım, çözmek için aşağıdaki git
komutları çalıştırın .
git pull {url} --rebase
git push --set-upstream {url} master
Depoyu önce github'da oluşturmuş olmalısınız.