Neden boş bir taahhütte bulunamıyorum?


35
  git commit --amend --allow-empty

sonra

  git push origin master

git dedi ki

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'remoteurl'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

Niye ya? Bu nasıl düzeltilir?

git 

Yanıtlar:


56

Mesele boş bir taahhütte bulunmanız değil .
Bu, zaten itilmiş olandan farklı bir taahhüdü (farklı bir SHA1 olan) zorlamakla ilgilidir .
İşte git commit --amendbu: son sözü değiştirdi, yeni bir tane yaratmadı.

Bu, diğerlerinin klonladığından farklı bir tarihi bastırdığınız anlamına gelir .
Bunun bir sorun olmayacağından eminseniz, zorlamayı zorlamanız gerekir:

git push -f origin master

Yapmalı mıydın:

git commit --allow-empty

Herhangi bir sorun olmadan zorlayabileceğiniz yeni (boş) bir taahhüt yaratmış olacaktınız .


5

Github'da çekme isteği oluşturmak istiyorsanız. Yapabilirsin:

git commit --allow-empty -m "make pull request"

Sonra değişiklik olmadan çekme isteği oluşturun.


3

Kabul edilecek cevabı netleştirmek için:

Ne zaman kullanırsın

git commit --amend

o does yeni işlemek oluşturun. Bununla birlikte, mevcut taahhüdün içine eklemez, mevcut taahhüdün ebeveyine ekler. Görsel olarak, bir çatal gibi görünürdü.

  O (old commit)
 /
O-O (amended commit)

Git bunu uzaktan kumandadan bir sapma olarak yorumluyor. Bu yüzden zorlamadan zorlamana izin vermeyecek.


0

Basmaya çalıştığınız uzak dalın şu anda kullanıma hazır olmadığından emin olun. Sunucularımdan birine bir git deposu yaptım ve neden zorlayamadığımı bulamadım. Sorun giderme gününden bir süre sonra, sunucu deposuna bakarken havuza (veya istediğim şubeye) itemediğimi öğrendim. Bu yüzden, sadece sunucuda değişiklik yaptığım zaman kontrol ettiğim yeni bir şube oluşturdum ve daha sonra sunucuya gönderebilirim. Bu sizin sorununuz olmayabilir, ancak sunucumda boş bir yere gitme sorunum olduğunda buna benzer bir hata ile karşılaşıyordum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.