Soru Git / gerrit, itme uzaktan reddedildi değişiklik yapılmadı


Yapılan değişiklik için yapılan değişiklikler, yapılan değişiklik. Bir itme ve hatayı alıyorum:

! [remote rejected] master -> refs/for/master (no changes made)

İşlem mesajında ​​değişiklik kimliğini kontrol etti ve hala geçerli bir taahhüt.

Bir dosyayı değiştirmeyi denedim, kontrolün bir değişiklik olarak gösterildiğini kontrol ettikten sonra hazırlama alanına ekledim ve başka bir değişiklik yaptım. İtmeyi tekrar deneyin ve aynı sorunu yaşayın. Bunun hakkında bir fikrim yok.

Düzenleme: Bu, gerriti bastırır, doğrudan gitmez.

Koşuyorum:

git push origin master:refs/for/master

Ve menşe ayrıntılarının elde edilmesinin sonucu (şirket detayları düzenlenir):

$ git remote show origin
* remote origin
  Fetch URL: ssh://lytee@gerrit.mycompany.net:29418/myrepo
  Push  URL: ssh://lytee@gerrit.mycompany.net:29418/myrepo
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master rebases onto remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

32
2017-12-21 14:49


Menşei


Hangi itme komutunu kullanıyorsunuz ve yerel olarak hangi şubede yaşıyorsunuz? - Amber
Yerel olarak ustayım ve koşuyorum git push origin master:refs/for/master ve kökeni geçerli getirme ve push URL'leri ile ayarlanır. - edwardmlyte
Kullandığınız göz önüne alındığında refs/for/... ziyade refs/heads/... sözdizimi, Gerrit kullanıyor musunuz? Eğer öyleyse, bu sizin sorularınızla çok ilgili olacaktır ve belirtilmelidir. - Amber
Ah evet, gerrit kullanıyorum. Soruyu güncelleyeceğim. - edwardmlyte
Genellikle yaparım git push origin HEAD:refs/for/master gerrit için bastırırken. - Ilion


Cevaplar:


Bu sorun, daha önce yaptığım eylemlerden kaynaklanıyor. deniyordum push Halen gözden geçirilmek üzere olan bir değişikliğin üstündeki yeni bir değişiklik, ebeveynin de gözden geçirilmesi için hazırlandı.

 Trunk ------ Parent A ----- Parent B ----- New change
(merged)     (unmerged)     (unmerged)

Kullandım cherry-pick Bu iki değişikliği yerel olarak elde etmek için (A ve A B) ve sonra üçüncü cherry-pick denemeden önce yerel şubeden değişiklikimi almak için push. Soruna neyin sebep olduğu budur, çünkü kişisel değişimin esasen tarihin yeniden yazılmaya çalışılmasıdır.

Doğru süreç sadece pull Ana varken bagajda. Bu, otomatik olarak gövde arasındaki herhangi bir işi (bu durumda yalnızca Ana A) çeker. Sonra cherry-pick Bunun üzerine yeni değişimim ve push iyi çalışır.


47
2018-01-09 16:01



Bugün bununla ilgili bir problemimiz vardı. Sorun, gerritte olduğumuzydu: Değişim1 (birleştirilmiş) - Değişim2 (değişmemiş) - Değişim3 (değişmemiş) Biz, Change3'e yeni bir yama yayınlamak istedik, ancak reddedildi. Mesaj: ! [remote rejected] master -> refs/for/master (no changes made)  Kafalarımızı kaşıttıktan sonra, yerel olarak yeniden inşal ettiğimizi ve Change2'nin de yeni bir işlem hastası aldığını ancak yeni bir değişikliği olmadığını öğrendik. Tekrar yerel olarak etkileşime girerek çözdük ve bu mesajın sonunda bir karakter ekleyerek Change2'i yeniden düzenledik. Bundan sonra yayınlamak güzeldi. - mortb


Lütfen bu konuyla ilgili resmi belgelere bakın:

https://gerrit-review.googlesource.com/Documentation/error-no-new-changes.html

Aynı sorunu yaşadım, meselem değişmeyi ittiğimi, sonra bu birleşmeyi terk ettim, sonra birkaç ayar yaptım. haksız yere taahhüdümü değiştirdi ve tekrar itti. Hatayı aldığım yer burası.

Düzeltmem:

  1. Bu sorunu hızlıca çözmek istiyorsanız, git commit --amendmevcut olanı kaldırın change-IdGit kancalarının kurulduğunu varsayarak, işi bitirebilir ve yeni change-Id size atanmalıdır.
  2. Gerrite git ve var olanı ara change-Id, neler olduğunu anlayın ve buna göre düzeltin. (Tavsiye edilen)

3
2018-03-15 19:00





Bir dizi incelemeyi güncellemeye çalışıyorsanız, bunların her biri, korumak istediğiniz kendi değişiklik kimliğine sahipse (örneğin, iki işlemin sırasını değiştirdiğiniz bir yeniden işleme koyulduktan sonra), söz konusu sözleşmelerden bazılarının reddedilmesi durumunda reddedilmiş olabilirsiniz. kazık değişmeden kalır. İşlemleri ya da benzerlerini yeniden yayınlayarak yeni bir karma oluşturmaya zorlamalısınız.


2
2018-01-15 02:38



Hiçbir değişiklik yapmadan bir "git commit --amend" yapmak zorunda kaldım ve bu benim problemimi düzeltmek için görünüyordu. - Stuart


Gerrit'in alması gereken bir değişiklik yaptığınızı doğrulamak için her şeyi doğru yaptığınız gibi geliyor.

git push origin master:refs/for/master

Belkide sorun budur? Değişiklikleriniz ana şubenin yerel sürümünde değilse, değişikliklerinizi zorlamazsınız. Bunun yerine deneyin:

git push origin HEAD:refs/for/master

HEAD şu andaki işleminizi temsil eden bir kısayoldur.


1
2017-12-21 20:51



Bu kısayolla aynı hata. HEAD mevcut daldaki mevcut değişime mi, yoksa sadece ana daldaki mevcut değişikliğe mi işaret ediyor? - edwardmlyte
HEAD, mevcut değişikliğinizi ifade eder. Üzerinde olduğunuz dalın önemi yok. Eğer HEAD ile bastırmak işe yaramıyorsa, değişimin taahhüdünü değiştirmediğinden şüpheleniyorum. Değiştirdiğinizde ve sonra tekrar iterken taahhüt mesajını güncellemeyi / değiştirmeyi deneyin. - Brad
Yardımın için teşekkürler Brad, git yanlış gittiğimi öğrendim. - edwardmlyte
Aynı hata, hiçbir şey değişmedi. - jjalonso


Bende aynı sorun vardı. Aynı zamanda, ustalıkla birleştirilmemiş ve gerrit incelemesinde ve gerritte yeniden birleştirilmiş bir başka taahhüt de vardı. yani kod gözden geçirilmek için itti. gerritte rebased ve gözden geçirilmesi beklemede. Kod incelendiğinde hata olmadan basabiliyordum.


0
2018-04-25 09:30





Aynı hata mesajını aldım, ama itmeye çalıştığım değişiklikler orijinal Değişim kümesinden farklı taahhütlerin başındaydı ( git cherry-pick ve gerrit bu hoşuna gitmedi gibi görünüyor). Orijinal değişikliğimi terk ettim, sonra sorunu çözebileceğimi fark ettiğimde tekrar açtım, ancak git review.

Bu noktada, benim hızlı çözüm gerrit web sitesinden orijinal değişiklikten vazgeçmek ve kaldırarak yeni bir değişiklik yaratmak oldu. change-Id: sha1 taahhüt mesajından son satır git commit --amend.


0
2017-11-25 20:17





Bu hata mesajıyla Gerrit, bir değişiklik, bu değişiklikteki mevcut yama kümesiyle aynı ise, bir değişikliği bir değişiklik için yeni bir yama kümesi olarak itmeyi reddeder.

Bir itilmiş taahhüt mevcut yama seti ile aynı olduğu düşünülürse

  • dosyadaki dosyalar,
  • taahhüt mesajı
  • yazarın yazarı ve
  • taahhüdün ebeveynleri

hepsi aynıdır.


0
2017-08-16 10:19